From 469aa100974072bbec469608a84cd181b503f336 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 29 Mar 2019 07:27:29 +0100 Subject: [PATCH 001/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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/361] 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 b6bcb901f35a2558c349e468b28c9e3b04c8e022 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 27 Jun 2019 12:50:53 +0200 Subject: [PATCH 058/361] 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 9ff1f6c3ee827d5af07af19109e7f44662c32aed Mon Sep 17 00:00:00 2001 From: leptun Date: Tue, 30 Jul 2019 16:05:40 +0300 Subject: [PATCH 059/361] 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 060/361] 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 061/361] 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 608aa6ff3c1293cec62393c395adc188fb7a3b4c Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 10 Sep 2019 18:49:23 +0200 Subject: [PATCH 062/361] 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 570b5989f4972b399e39ee2d74330928292e4cce Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 6 Oct 2019 10:50:11 +0300 Subject: [PATCH 063/361] 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 064/361] 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 065/361] 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 350e27810af6ab36ffb8dfdea7b0bb9ae12e8870 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 11 Oct 2019 21:00:51 +0300 Subject: [PATCH 066/361] fix selftest Z crash. Use stallGuard when testing Z --- Firmware/Marlin.h | 4 ++-- Firmware/Marlin_main.cpp | 17 +++++++---------- Firmware/planner.h | 3 +++ Firmware/tmc2130.cpp | 2 +- Firmware/ultralcd.cpp | 27 ++++++++++++++++----------- 5 files changed, 29 insertions(+), 24 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index c1a7b5627..aa862907e 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -309,9 +309,9 @@ extern int fanSpeed; extern int8_t lcd_change_fil_state; #ifdef TMC2130 -void homeaxis(int axis, uint8_t cnt = 1, uint8_t* pstep = 0); +bool homeaxis(int axis, bool doError = 1, uint8_t cnt = 1, uint8_t* pstep = 0); #else -void homeaxis(int axis, uint8_t cnt = 1); +bool homeaxis(int axis, bool doError = 1, uint8_t cnt = 1); #endif //TMC2130 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 45dd118c4..0f58aad0a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1898,10 +1898,6 @@ static void axis_is_at_home(int axis) { max_pos[axis] = base_max_pos(axis) + cs.add_homing[axis]; } - -inline void set_current_to_destination() { memcpy(current_position, destination, sizeof(current_position)); } -inline void set_destination_to_current() { memcpy(destination, current_position, sizeof(destination)); } - //! @return original feedmultiply static int setup_for_endstop_move(bool enable_endstops_now = true) { saved_feedrate = feedrate; @@ -2144,9 +2140,9 @@ bool calibrate_z_auto() #endif //TMC2130 #ifdef TMC2130 -void homeaxis(int axis, uint8_t cnt, uint8_t* pstep) +bool homeaxis(int axis, bool doError, uint8_t cnt, uint8_t* pstep) #else -void homeaxis(int axis, uint8_t cnt) +bool homeaxis(int axis, bool doError, uint8_t cnt) #endif //TMC2130 { bool endstops_enabled = enable_endstops(true); //RP: endstops should be allways enabled durring homing @@ -2261,8 +2257,8 @@ void homeaxis(int axis, uint8_t cnt) #ifdef TMC2130 if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; - kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - return; + if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + return 0; } #endif //TMC2130 current_position[axis] = 0; @@ -2277,8 +2273,8 @@ void homeaxis(int axis, uint8_t cnt) #ifdef TMC2130 if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; - kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - return; + if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + return 0; } #endif //TMC2130 axis_is_at_home(axis); @@ -2291,6 +2287,7 @@ void homeaxis(int axis, uint8_t cnt) #endif } enable_endstops(endstops_enabled); + return 1; } /**/ diff --git a/Firmware/planner.h b/Firmware/planner.h index 7904c45a5..79126fc20 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -161,6 +161,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); +inline void set_current_to_destination() { memcpy(current_position, destination, sizeof(current_position)); } +inline void set_destination_to_current() { memcpy(destination, current_position, sizeof(destination)); } + extern bool e_active(); void check_axes_activity(); diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 42359ba84..3a1f523c6 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -994,7 +994,7 @@ bool tmc2130_home_calibrate(uint8_t axis) uint8_t step[16]; uint8_t cnt[16]; uint8_t val[16]; - homeaxis(axis, 16, step); + homeaxis(axis, 1, 16, step); bubblesort_uint8(step, 16, 0); printf_P(PSTR("sorted samples:\n")); for (uint8_t i = 0; i < 16; i++) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f49528025..a18687519 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7468,21 +7468,27 @@ bool lcd_selftest() #ifdef TMC2130 tmc2130_home_exit(); enable_endstops(false); - current_position[X_AXIS] = current_position[X_AXIS] + 14; - current_position[Y_AXIS] = current_position[Y_AXIS] + 12; #endif //homeaxis(X_AXIS); //homeaxis(Y_AXIS); + current_position[X_AXIS] += pgm_read_float(bed_ref_points_4); + current_position[Y_AXIS] += pgm_read_float(bed_ref_points_4+1); +#ifdef TMC2130 + //current_position[X_AXIS] += 0; + current_position[Y_AXIS] += 4; +#endif //TMC2130 current_position[Z_AXIS] = current_position[Z_AXIS] + 10; plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); + set_destination_to_current(); _progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500); - _result = lcd_selfcheck_axis(2, Z_MAX_POS); - if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) != 1) { - enquecommand_P(PSTR("G28 W")); - enquecommand_P(PSTR("G1 Z15 F1000")); - } + _result = homeaxis(Z_AXIS, 0); + + //raise Z to not damage the bed during and hotend testing + current_position[Z_AXIS] += 20; + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + st_synchronize(); } #ifdef TMC2130 @@ -7793,7 +7799,9 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) { lcd_selftest_error(TestError::Motor, _error_1, _error_2); } - } + } + current_position[_axis] = 0; //simulate axis home to avoid negative numbers for axis position, especially Z. + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); return _stepresult; } @@ -7843,9 +7851,6 @@ static bool lcd_selfcheck_pulleys(int axis) ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) { endstop_triggered = true; if (current_position_init - 1 <= current_position[axis] && current_position_init + 1 >= current_position[axis]) { - current_position[axis] += (axis == X_AXIS) ? 13 : 9; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); - st_synchronize(); return(true); } else { From 4703853a3d3f450e62922299c5b2f8f15035868c Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 12 Oct 2019 13:19:17 +0300 Subject: [PATCH 067/361] Small fixes --- Firmware/Marlin_main.cpp | 4 ++++ Firmware/ultralcd.cpp | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0f58aad0a..51e57818f 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2258,6 +2258,8 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + current_position[axis] = -5; //assume that nozzle crashed into bed + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); return 0; } #endif //TMC2130 @@ -2274,6 +2276,8 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + current_position[axis] = -5; //assume that nozzle crashed into bed + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); return 0; } #endif //TMC2130 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a18687519..38076f535 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7483,7 +7483,11 @@ bool lcd_selftest() st_synchronize(); set_destination_to_current(); _progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500); +#ifdef TMC2130 _result = homeaxis(Z_AXIS, 0); +#else + _result = lcd_selfcheck_axis(Z_AXIS, Z_MAX_POS); +#endif //TMC2130 //raise Z to not damage the bed during and hotend testing current_position[Z_AXIS] += 20; @@ -7700,7 +7704,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { } #endif //TMC2130 -//#ifndef TMC2130 +#ifndef TMC2130 static bool lcd_selfcheck_axis(int _axis, int _travel) { @@ -7806,7 +7810,6 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) return _stepresult; } -#ifndef TMC2130 static bool lcd_selfcheck_pulleys(int axis) { float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; 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 068/361] 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 069/361] 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 070/361] 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 071/361] 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 072/361] 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 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 073/361] 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 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 074/361] 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 075/361] 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 076/361] 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 077/361] 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 28e812d91fe2b4633c9427abdf554e5a9449dd17 Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 2 Oct 2019 17:34:09 +0300 Subject: [PATCH 078/361] 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 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 079/361] 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 080/361] 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 081/361] 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 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 082/361] 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 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 083/361] 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 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 084/361] 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 085/361] 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 086/361] 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 087/361] 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 088/361] 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 089/361] 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 0b9123ce24a31f9247cc0af2282ede488dd8b641 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 5 Dec 2019 15:18:24 +0100 Subject: [PATCH 090/361] 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 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 091/361] 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 a8e6020238c4c88a0d9a78e70ae22788af625bb9 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 16 Dec 2019 15:21:55 +0200 Subject: [PATCH 092/361] Fix VERBOSITY --- 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 4970091ea..a08b3aa34 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4840,7 +4840,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef SUPPORT_VERBOSITY if (verbosity_level >= 1) { - clamped = world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); + bool clamped = world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); SERIAL_PROTOCOL(mesh_point); clamped ? SERIAL_PROTOCOLPGM(": xy clamped.\n") : SERIAL_PROTOCOLPGM(": no xy clamping\n"); } From 0cc68228f8c7b00ec99693e6da4bd6cfa7b1a524 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 14 Dec 2019 18:05:08 +0100 Subject: [PATCH 093/361] 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 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 094/361] 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 7b29ce29b45c0bef41bfe604c43014ba88c2c139 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 21 Dec 2019 22:48:30 +0100 Subject: [PATCH 095/361] 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 096/361] 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 097/361] 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 098/361] 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 099/361] 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 100/361] 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 101/361] 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 102/361] 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 103/361] 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 104/361] 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 105/361] 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 106/361] 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 107/361] 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 f8a0d5d7737476f13c0699b1b9a879df4eddd78a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Jan 2020 19:51:30 +0200 Subject: [PATCH 108/361] 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 109/361] 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 110/361] 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 111/361] 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 bab756699f182a1733e62b2d59926bb09f8a9152 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 14 Jan 2020 20:24:14 +0100 Subject: [PATCH 112/361] 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 113/361] 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 114/361] 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 115/361] 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 116/361] 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 117/361] 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 118/361] 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 119/361] 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 120/361] 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 121/361] 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 122/361] 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 123/361] 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 124/361] 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 125/361] 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 126/361] 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 127/361] 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 e6ba9e633c9eaeea7eef5d9ba876c380503dd19a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 21 Jan 2020 14:50:53 +0200 Subject: [PATCH 128/361] Adjusted hotend, bed and Ambient mintemp values --- Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 8 ++++---- Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 400d098ff..a2c0c3d8e 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -151,8 +151,8 @@ // this value is litlebit higher that real limit, because ambient termistor is on the board and is temperated from it, // temperature inside the case is around 31C for ambient temperature 25C, when the printer is powered on long time and idle // the real limit is 15C (same as MINTEMP limit), this is because 15C is end of scale for both used thermistors (bed, heater) -#define MINTEMP_MINAMBIENT 25 -#define MINTEMP_MINAMBIENT_RAW 978 +#define MINTEMP_MINAMBIENT 10 +#define MINTEMP_MINAMBIENT_RAW 1002 #define DEBUG_DCODE3 @@ -282,14 +282,14 @@ *------------------------------------*/ // Mintemps -#define HEATER_0_MINTEMP 15 +#define HEATER_0_MINTEMP 10 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_MINTEMP_DELAY 15000 // [ms] ! if changed, check maximal allowed value @ ShortTimer #if HEATER_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see HEATER_MINTEMP_DELAY definition)" #endif -#define BED_MINTEMP 15 +#define BED_MINTEMP 10 #define BED_MINTEMP_DELAY 50000 // [ms] ! if changed, check maximal allowed value @ ShortTimer #if BED_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)" diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 48ed91392..1c92bfbc0 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -153,8 +153,8 @@ // this value is litlebit higher that real limit, because ambient termistor is on the board and is temperated from it, // temperature inside the case is around 31C for ambient temperature 25C, when the printer is powered on long time and idle // the real limit is 15C (same as MINTEMP limit), this is because 15C is end of scale for both used thermistors (bed, heater) -#define MINTEMP_MINAMBIENT 25 -#define MINTEMP_MINAMBIENT_RAW 978 +#define MINTEMP_MINAMBIENT 10 +#define MINTEMP_MINAMBIENT_RAW 1002 #define DEBUG_DCODE3 @@ -284,14 +284,14 @@ *------------------------------------*/ // Mintemps -#define HEATER_0_MINTEMP 15 +#define HEATER_0_MINTEMP 10 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_MINTEMP_DELAY 15000 // [ms] ! if changed, check maximal allowed value @ ShortTimer #if HEATER_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see HEATER_MINTEMP_DELAY definition)" #endif -#define BED_MINTEMP 15 +#define BED_MINTEMP 10 #define BED_MINTEMP_DELAY 50000 // [ms] ! if changed, check maximal allowed value @ ShortTimer #if BED_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)" From 67decb466d478c487dfa6192f8f8cafb787faf06 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:24:19 +0100 Subject: [PATCH 129/361] 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 130/361] 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 131/361] 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 132/361] 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 133/361] 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 134/361] 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 135/361] 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 136/361] 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 137/361] 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 138/361] 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 139/361] 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 140/361] 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 141/361] 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 142/361] 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 143/361] 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 144/361] 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 145/361] 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 3e70b73a1fb21f76267ffb68957656bee42cfccc Mon Sep 17 00:00:00 2001 From: DRracer Date: Mon, 27 Jan 2020 19:02:15 +0100 Subject: [PATCH 146/361] Remove unnecessary delay in lcd_selftest, which occured there as a result of merge. --- Firmware/ultralcd.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d291f35c..df9000c4f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7547,13 +7547,10 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 + FORCE_BL_ON_START; #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; From 200cdde1af99ffc3d3c981f6d431cf0bc936ca2d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Jan 2020 21:50:12 +0100 Subject: [PATCH 147/361] 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 148/361] 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 149/361] 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 150/361] 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 151/361] 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 152/361] 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 153/361] 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 154/361] 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 155/361] 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 156/361] 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 157/361] 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 158/361] 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 857f9d8d9e6f707b41888be0d221de5a80cae697 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 31 Jan 2020 14:47:44 +0100 Subject: [PATCH 159/361] Hard reset and readded change --- Firmware/language.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Firmware/language.h b/Firmware/language.h index 36c18dba9..1e4137bf3 100644 --- a/Firmware/language.h +++ b/Firmware/language.h @@ -6,7 +6,9 @@ #include "config.h" #include -//#include +#ifdef DEBUG_SEC_LANG + #include +#endif //DEBUG_SEC_LANG #define PROTOCOL_VERSION "1.0" From 84ecf96be50a3af450bff5d506962ef0a0158f57 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 31 Jan 2020 15:08:24 +0100 Subject: [PATCH 160/361] 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 161/361] 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 162/361] 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 fd42361236060319313f56a3a02652a7726baff2 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 31 Jan 2020 16:55:40 +0100 Subject: [PATCH 163/361] Update ultralcd.cpp do delay(2000) everytime, even if IR_SENSOR_ANALOG --- Firmware/ultralcd.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index dc93fe53a..1045f831b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7554,9 +7554,7 @@ bool lcd_selftest() FORCE_HIGH_POWER_START; #endif // TMC2130 FORCE_BL_ON_START; -#if !IR_SENSOR_ANALOG _delay(2000); -#endif //!IR_SENSOR_ANALOG KEEPALIVE_STATE(IN_HANDLER); _progress = lcd_selftest_screen(TestScreen::ExtruderFan, _progress, 3, true, 2000); From d6522a643c3a9169681f6a345645942e752543ef Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 31 Jan 2020 16:57:18 +0100 Subject: [PATCH 164/361] Update ultralcd.cpp indent --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 1045f831b..03a1d44a2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7554,7 +7554,7 @@ bool lcd_selftest() FORCE_HIGH_POWER_START; #endif // TMC2130 FORCE_BL_ON_START; - _delay(2000); + _delay(2000); KEEPALIVE_STATE(IN_HANDLER); _progress = lcd_selftest_screen(TestScreen::ExtruderFan, _progress, 3, true, 2000); From 3bbc14382103e711f6b5b304e7522f25aeb85f28 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Feb 2020 18:01:06 +0100 Subject: [PATCH 165/361] 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 166/361] 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 167/361] 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 168/361] 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 169/361] 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 170/361] 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 171/361] 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 172/361] 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); From e8ce5e140e98bb3de1b690bb6aed014a276acd41 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 1 Jun 2019 22:06:55 +0200 Subject: [PATCH 173/361] FS: Detect runout earlier --- Firmware/fsensor.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index fce8f6fed..f4cb647a9 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -19,7 +19,7 @@ //! @name Basic parameters //! @{ #define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm -#define FSENSOR_ERR_MAX 17 //!< filament sensor maximum error count for runout detection +#define FSENSOR_ERR_MAX 9 //!< filament sensor maximum error count for runout detection //! @} //! @name Optical quality measurement parameters @@ -453,10 +453,7 @@ ISR(FSENSOR_INT_PIN_VECT) { if (pat9125_y < 0) { - if (fsensor_err_cnt) - fsensor_err_cnt += 2; - else - fsensor_err_cnt++; + fsensor_err_cnt++; } else if (pat9125_y > 0) { From 8fb8ff4bf43eb371217ba9b80b4ea64cf8f7cee0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Jun 2019 18:00:31 +0200 Subject: [PATCH 174/361] Include fsensor recovery stats in the last print stats --- Firmware/Marlin_main.cpp | 1 + Firmware/fsensor.cpp | 5 +++++ Firmware/fsensor.h | 1 + Firmware/ultralcd.cpp | 13 ++++++++----- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 43e3081fe..0a1e5439b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -634,6 +634,7 @@ void crashdet_cancel() void failstats_reset_print() { + fsensor_softfail = 0; eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0); eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0); eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0); diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index f4cb647a9..19c8b1f81 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -83,6 +83,8 @@ uint8_t fsensor_autoload_c; uint32_t fsensor_autoload_last_millis; // uint8_t fsensor_autoload_sum; +// +uint8_t fsensor_softfail = 0; //! @} @@ -598,7 +600,10 @@ void fsensor_update(void) fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; if (!err) + { printf_P(PSTR("fsensor_err_cnt = 0\n")); + ++fsensor_softfail; + } else fsensor_enque_M600(); } diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 5ed7f7fc8..fba131db3 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -14,6 +14,7 @@ extern bool fsensor_enabled; extern bool fsensor_not_responding; //enable/disable quality meassurement extern bool fsensor_oq_meassure_enabled; +extern uint8_t fsensor_softfail; //! @name save restore printing diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cefd9b8c5..0461ff803 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1796,11 +1796,14 @@ static void lcd_menu_fails_stats_print() uint8_t crashX = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_X); uint8_t crashY = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_Y); lcd_home(); - lcd_printf_P(failStatsFmt, - _i("Last print failures"), ////c=20 r=1 - _i("Power failures"), power, ////c=14 r=1 - _i("Filam. runouts"), filam, ////c=14 r=1 - _i("Crash"), crashX, crashY); ////c=7 r=1 + lcd_printf_P(PSTR("%S\n" + " %S %-3d\n" + " %S H %-3d S %-3d\n" + " %S X %-3d Y %-3d"), + _i("Last print failures"), + _i("Power failures"), power, + _i("Runouts"), filam, fsensor_softfail, + _i("Crash"), crashX, crashY); menu_back_if_clicked_fb(); } From ce74b746f14cf8ea54be925b154838cf0cb0de47 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Jun 2019 17:31:19 +0200 Subject: [PATCH 175/361] FS: Trigger a runout with repeated soft-failures (clog?) --- Firmware/fsensor.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 19c8b1f81..7daea8dac 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -20,6 +20,9 @@ //! @{ #define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm #define FSENSOR_ERR_MAX 9 //!< filament sensor maximum error count for runout detection + +#define FSENSOR_SOFTERR_CMAX 3 //!< number of contiguous soft failures before a triggering a runout +#define FSENSOR_SOFTERR_DELTA 30000 //!< maximum interval (ms) to consider soft failures contiguous //! @} //! @name Optical quality measurement parameters @@ -85,6 +88,8 @@ uint32_t fsensor_autoload_last_millis; uint8_t fsensor_autoload_sum; // uint8_t fsensor_softfail = 0; +uint8_t fsensor_softfail_ccnt = 0; +unsigned long fsensor_softfail_last = 0; //! @} @@ -596,16 +601,25 @@ void fsensor_update(void) err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD)); fsensor_restore_print_and_continue(); - fsensor_autoload_enabled = autoload_enabled_tmp; - fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; + fsensor_autoload_enabled = autoload_enabled_tmp; + fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; - if (!err) + unsigned long now = _millis(); + if (!err && (now - fsensor_softfail_last) > FSENSOR_SOFTERR_DELTA) + fsensor_softfail_ccnt = 0; + if (!err && fsensor_softfail_ccnt <= FSENSOR_SOFTERR_CMAX) { - printf_P(PSTR("fsensor_err_cnt = 0\n")); + printf_P(PSTR("fsensor_err_cnt = 0\n")); ++fsensor_softfail; - } - else - fsensor_enque_M600(); + ++fsensor_softfail_ccnt; + fsensor_softfail_last = now; + } + else + { + fsensor_softfail_ccnt = 0; + fsensor_softfail_last = 0; + fsensor_enque_M600(); + } } #else //PAT9125 if (CHECK_FSENSOR && ir_sensor_detected) From d47363d85a5a813e86af8458bacc0f4970904615 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 14:23:41 +0100 Subject: [PATCH 176/361] Update the filament axis resolution when E resolution is changed The filament sensor "chunk lenght" needs to be updated every time the E axis resolution is changed in order to trigger at the same distance. Introduce a new function fsensor_set_axis_steps_per_unit() and use it consistent during init, in M92 and M350. --- Firmware/Marlin_main.cpp | 6 ++++-- Firmware/fsensor.cpp | 7 ++++++- Firmware/fsensor.h | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0a1e5439b..047b7082b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6673,7 +6673,7 @@ Sigma_Exit: { if(code_seen(axis_codes[i])) { - if(i == 3) { // E + if(i == E_AXIS) { // E float value = code_value(); if(value < 20.0) { float factor = cs.axis_steps_per_unit[i] / value; // increase e constants if M92 E14 is given for netfab. @@ -6682,6 +6682,7 @@ Sigma_Exit: axis_steps_per_sqr_second[i] *= factor; } cs.axis_steps_per_unit[i] = value; + fsensor_set_axis_steps_per_unit(value); } else { cs.axis_steps_per_unit[i] = code_value(); @@ -8429,7 +8430,6 @@ Sigma_Exit: res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only if (res_valid) { - st_synchronize(); uint16_t res = tmc2130_get_res(i); tmc2130_set_res(i, res_new); @@ -8446,6 +8446,8 @@ Sigma_Exit: cs.axis_steps_per_unit[i] /= fac; position[i] /= fac; } + if (i == E_AXIS) + fsensor_set_axis_steps_per_unit(cs.axis_steps_per_unit[i]); } } } diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 7daea8dac..297460d61 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -149,6 +149,11 @@ void fsensor_checkpoint_print(void) restore_print_from_ram_and_continue(0); } +void fsensor_set_axis_steps_per_unit(float u) +{ + fsensor_chunk_len = (int16_t)(FSENSOR_CHUNK_LEN * u); +} + void fsensor_init(void) { #ifdef PAT9125 @@ -161,7 +166,7 @@ void fsensor_init(void) #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; - fsensor_chunk_len = (int16_t)(FSENSOR_CHUNK_LEN * cs.axis_steps_per_unit[E_AXIS]); + fsensor_set_axis_steps_per_unit(cs.axis_steps_per_unit[E_AXIS]); if (!pat9125) { diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index fba131db3..0c791d412 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -29,6 +29,9 @@ extern void fsensor_checkpoint_print(void); //! initialize extern void fsensor_init(void); +//! update axis resolution +extern void fsensor_set_axis_steps_per_unit(float u); + //! @name enable/disable //! @{ extern bool fsensor_enable(bool bUpdateEEPROM=true); From 6fbd632c844c527bb0812e36bc03318097d54087 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 15:17:19 +0100 Subject: [PATCH 177/361] Isolate all PAT9125-specific code, fix build on !MK3 variants - Hide all prototypes related to PAT9125 to force all callers to check for the proper sensor, since the handling differences are substantial - Remove unneeded lenght accounting from the stepper isr as as consequence. - Keep detailed soft failure counts for the MK3 on the "last print failures" status screen, but fix build on variants without a PAT9125 by fixing the lcd stats function. --- Firmware/Marlin_main.cpp | 8 +++++++- Firmware/fsensor.cpp | 32 ++++++++++++++++++++------------ Firmware/fsensor.h | 15 ++++++++++----- Firmware/stepper.cpp | 14 +++++++------- Firmware/ultralcd.cpp | 25 ++++++++++++++++++------- 5 files changed, 62 insertions(+), 32 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 047b7082b..1dcb89389 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -634,13 +634,15 @@ void crashdet_cancel() void failstats_reset_print() { - fsensor_softfail = 0; eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0); eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0); eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0); eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0); eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0); eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0); +#if defined(FILAMENT_SENSOR) && defined(PAT9125) + fsensor_softfail = 0; +#endif } @@ -6682,7 +6684,9 @@ Sigma_Exit: axis_steps_per_sqr_second[i] *= factor; } cs.axis_steps_per_unit[i] = value; +#if defined(FILAMENT_SENSOR) && defined(PAT9125) fsensor_set_axis_steps_per_unit(value); +#endif } else { cs.axis_steps_per_unit[i] = code_value(); @@ -8446,8 +8450,10 @@ Sigma_Exit: cs.axis_steps_per_unit[i] /= fac; position[i] /= fac; } +#if defined(FILAMENT_SENSOR) && defined(PAT9125) if (i == E_AXIS) fsensor_set_axis_steps_per_unit(cs.axis_steps_per_unit[i]); +#endif } } } diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 297460d61..c1f9f27b0 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -47,25 +47,32 @@ const char ERRMSG_PAT9125_NOT_RESP[] PROGMEM = "PAT9125 not responding (%d)!\n"; #define FSENSOR_INT_PIN_PCMSK_BIT PCINT13 // PinChange Interrupt / PinChange Enable Mask @ PJ4 #define FSENSOR_INT_PIN_PCICR_BIT PCIE1 // PinChange Interrupt Enable / Flag @ PJ4 -//uint8_t fsensor_int_pin = FSENSOR_INT_PIN; -uint8_t fsensor_int_pin_old = 0; -int16_t fsensor_chunk_len = 0; - //! enabled = initialized and sampled every chunk event bool fsensor_enabled = true; //! runout watching is done in fsensor_update (called from main loop) bool fsensor_watch_runout = true; //! not responding - is set if any communication error occurred during initialization or readout bool fsensor_not_responding = false; + +#ifdef PAT9125 +uint8_t fsensor_int_pin_old = 0; +//! optical checking "chunk lenght" (already in steps) +int16_t fsensor_chunk_len = 0; //! enable/disable quality meassurement bool fsensor_oq_meassure_enabled = false; - //! number of errors, updated in ISR uint8_t fsensor_err_cnt = 0; //! variable for accumulating step count (updated callbacks from stepper and ISR) int16_t fsensor_st_cnt = 0; //! last dy value from pat9125 sensor (used in ISR) int16_t fsensor_dy_old = 0; +//! count of total sensor "soft" failures (filament status checks) +uint8_t fsensor_softfail = 0; +//! timestamp of last soft failure +unsigned long fsensor_softfail_last = 0; +//! count of soft failures within the configured time +uint8_t fsensor_softfail_ccnt = 0; +#endif //! log flag: 0=log disabled, 1=log enabled uint8_t fsensor_log = 1; @@ -78,6 +85,8 @@ uint8_t fsensor_log = 1; bool fsensor_autoload_enabled = true; //! autoload watching enable/disable flag bool fsensor_watch_autoload = false; + +#ifdef PAT9125 // uint16_t fsensor_autoload_y; // @@ -86,11 +95,8 @@ uint8_t fsensor_autoload_c; uint32_t fsensor_autoload_last_millis; // uint8_t fsensor_autoload_sum; -// -uint8_t fsensor_softfail = 0; -uint8_t fsensor_softfail_ccnt = 0; -unsigned long fsensor_softfail_last = 0; //! @} +#endif //! @name filament optical quality measurement variables @@ -136,7 +142,9 @@ void fsensor_restore_print_and_continue(void) { printf_P(PSTR("fsensor_restore_print_and_continue\n")); fsensor_watch_runout = true; +#ifdef PAT9125 fsensor_err_cnt = 0; +#endif restore_print_from_ram_and_continue(0); } @@ -368,6 +376,7 @@ bool fsensor_check_autoload(void) return false; } +#ifdef PAT9125 void fsensor_oq_meassure_set(bool State) { fsensor_oq_meassure_enabled = State; @@ -439,7 +448,7 @@ bool fsensor_oq_result(void) printf_P(_N("fsensor_oq_result %S\n"), (res?_OK:_NG)); return res; } -#ifdef PAT9125 + ISR(FSENSOR_INT_PIN_VECT) { if (mmu_enabled || ir_sensor_detected) return; @@ -538,8 +547,6 @@ void fsensor_setup_interrupt(void) PCICR |= bit(FSENSOR_INT_PIN_PCICR_BIT); // enable corresponding PinChangeInterrupt (set of pins) } -#endif //PAT9125 - void fsensor_st_block_chunk(int cnt) { if (!fsensor_enabled) return; @@ -551,6 +558,7 @@ void fsensor_st_block_chunk(int cnt) else {PIN_VAL(FSENSOR_INT_PIN, HIGH);} } } +#endif //PAT9125 //! Common code for enqueing M600 and supplemental codes into the command queue. diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 0c791d412..373200dc8 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -6,16 +6,16 @@ #include "config.h" -//! minimum meassured chunk length in steps -extern int16_t fsensor_chunk_len; // enable/disable flag extern bool fsensor_enabled; // not responding flag extern bool fsensor_not_responding; -//enable/disable quality meassurement -extern bool fsensor_oq_meassure_enabled; +#ifdef PAT9125 +// optical checking "chunk lenght" (already in steps) +extern int16_t fsensor_chunk_len; +// count of soft failures extern uint8_t fsensor_softfail; - +#endif //! @name save restore printing //! @{ @@ -29,8 +29,10 @@ extern void fsensor_checkpoint_print(void); //! initialize extern void fsensor_init(void); +#ifdef PAT9125 //! update axis resolution extern void fsensor_set_axis_steps_per_unit(float u); +#endif //! @name enable/disable //! @{ @@ -56,8 +58,10 @@ extern void fsensor_autoload_check_stop(void); extern bool fsensor_check_autoload(void); //! @} +#ifdef PAT9125 //! @name optical quality measurement support //! @{ +extern bool fsensor_oq_meassure_enabled; extern void fsensor_oq_meassure_set(bool State); extern void fsensor_oq_meassure_start(uint8_t skip); extern void fsensor_oq_meassure_stop(void); @@ -74,6 +78,7 @@ extern void fsensor_st_block_chunk(int cnt); // 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 //PAT9125 #if IR_SENSOR_ANALOG diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 74625a633..93b3d0397 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -36,9 +36,9 @@ #include "tmc2130.h" #endif //TMC2130 -#ifdef FILAMENT_SENSOR +#if defined(FILAMENT_SENSOR) && defined(PAT9125) #include "fsensor.h" -int fsensor_counter = 0; //counter for e-steps +int fsensor_counter; //counter for e-steps #endif //FILAMENT_SENSOR #include "mmu.h" @@ -421,9 +421,9 @@ 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); +#if defined(FILAMENT_SENSOR) && defined(PAT9125) + fsensor_counter = 0; + fsensor_st_block_begin(count_direction[E_AXIS] < 0); #endif //FILAMENT_SENSOR } else { @@ -973,13 +973,13 @@ FORCE_INLINE void advance_isr_scheduler() { 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 +#if defined(FILAMENT_SENSOR) && defined(PAT9125) fsensor_counter += (rev? -1: 1); #endif } while(--max_ticks); -#ifdef FILAMENT_SENSOR +#if defined(FILAMENT_SENSOR) && defined(PAT9125) if (abs(fsensor_counter) >= fsensor_chunk_len) { fsensor_st_block_chunk(fsensor_counter); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0461ff803..fc39b1405 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1796,14 +1796,23 @@ static void lcd_menu_fails_stats_print() uint8_t crashX = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_X); uint8_t crashY = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_Y); lcd_home(); +#ifndef PAT9125 + lcd_printf_P(failStatsFmt, + _i("Last print failures"), ////c=20 r=1 + _i("Power failures"), power, ////c=14 r=1 + _i("Filam. runouts"), filam, ////c=14 r=1 + _i("Crash"), crashX, crashY); ////c=7 r=1 +#else + // On the MK3 include detailed PAT9125 statistics about soft failures lcd_printf_P(PSTR("%S\n" - " %S %-3d\n" - " %S H %-3d S %-3d\n" - " %S X %-3d Y %-3d"), - _i("Last print failures"), - _i("Power failures"), power, - _i("Runouts"), filam, fsensor_softfail, - _i("Crash"), crashX, crashY); + " %-16.16S%-3d\n" + " %-7.7S H %-3d S %-3d\n" + " %-7.7S X %-3d Y %-3d"), + _i("Last print failures"), ////c=20 r=1 + _i("Power failures"), power, ////c=14 r=1 + _i("Runouts"), filam, fsensor_softfail, //c=7 r=1 + _i("Crash"), crashX, crashY); ////c=7 r=1 +#endif menu_back_if_clicked_fb(); } @@ -2234,10 +2243,12 @@ void lcd_set_filament_autoload() { fsensor_autoload_set(!fsensor_autoload_enabled); } +#if defined(FILAMENT_SENSOR) && defined(PAT9125) void lcd_set_filament_oq_meass() { fsensor_oq_meassure_set(!fsensor_oq_meassure_enabled); } +#endif FilamentAction eFilamentAction=FilamentAction::None; // must be initialized as 'non-autoLoad' From 5c4235b886b678335146bee4dca85ad7635ff497 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 15:38:39 +0100 Subject: [PATCH 178/361] Correctly reset the PAT9125 filament counters When the error count is cleared, the cumulative deltas as well as the segment lenght which is kept inside the stepper isr need to be reset. Introduce a helper function fsensor_reset_err_cnt to clear all the required variables in one place which can be used in most cases (the only exceptions being quality measument). Introduce a new function st_reset_fsensor to also clear the segment lenght within the isr. --- Firmware/fsensor.cpp | 38 ++++++++++++++++++++++---------------- Firmware/stepper.cpp | 12 ++++++++++-- Firmware/stepper.h | 5 ++++- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index c1f9f27b0..3c42a3424 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -138,12 +138,28 @@ void fsensor_stop_and_save_print(void) fsensor_watch_runout = false; } +#ifdef PAT9125 +// Reset all internal counters to zero, including stepper callbacks +void fsensor_reset_err_cnt() +{ + fsensor_err_cnt = 0; + pat9125_y = 0; + st_reset_fsensor(); +} + +void fsensor_set_axis_steps_per_unit(float u) +{ + fsensor_chunk_len = (int16_t)(FSENSOR_CHUNK_LEN * u); +} +#endif + + void fsensor_restore_print_and_continue(void) { printf_P(PSTR("fsensor_restore_print_and_continue\n")); fsensor_watch_runout = true; #ifdef PAT9125 - fsensor_err_cnt = 0; + fsensor_reset_err_cnt(); #endif restore_print_from_ram_and_continue(0); } @@ -157,11 +173,6 @@ void fsensor_checkpoint_print(void) restore_print_from_ram_and_continue(0); } -void fsensor_set_axis_steps_per_unit(float u) -{ - fsensor_chunk_len = (int16_t)(FSENSOR_CHUNK_LEN * u); -} - void fsensor_init(void) { #ifdef PAT9125 @@ -214,7 +225,7 @@ bool fsensor_enable(bool bUpdateEEPROM) fsensor_enabled = pat9125 ? true : false; fsensor_watch_runout = true; fsensor_oq_meassure = false; - fsensor_err_cnt = 0; + fsensor_reset_err_cnt(); fsensor_dy_old = 0; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, fsensor_enabled ? 0x01 : 0x00); FSensorStateMenu = fsensor_enabled ? 1 : 0; @@ -295,12 +306,11 @@ void fsensor_autoload_check_start(void) fsensor_autoload_last_millis = _millis(); fsensor_watch_runout = false; fsensor_watch_autoload = true; - fsensor_err_cnt = 0; } + void fsensor_autoload_check_stop(void) { - // puts_P(_N("fsensor_autoload_check_stop\n")); if (!fsensor_enabled) return; // puts_P(_N("fsensor_autoload_check_stop 1\n")); @@ -311,7 +321,7 @@ void fsensor_autoload_check_stop(void) fsensor_autoload_sum = 0; fsensor_watch_autoload = false; fsensor_watch_runout = true; - fsensor_err_cnt = 0; + fsensor_reset_err_cnt(); } #endif //PAT9125 @@ -410,7 +420,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_err_cnt = 0; } const char _OK[] PROGMEM = "OK"; @@ -595,7 +604,7 @@ void fsensor_update(void) st_synchronize(); // check the filament in isolation - fsensor_err_cnt = 0; + fsensor_reset_err_cnt(); fsensor_oq_meassure_start(0); float e_tmp = current_position[E_AXIS]; current_position[E_AXIS] -= 3; @@ -603,13 +612,10 @@ void fsensor_update(void) 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(); bool err = false; - err |= (err_cnt > 1); - + err |= (fsensor_err_cnt > 1); err |= (fsensor_oq_er_sum > 2); err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD)); diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 93b3d0397..93e4ad8fa 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -1357,8 +1357,6 @@ void quickStop() } #ifdef BABYSTEPPING - - void babystep(const uint8_t axis,const bool direction) { //MUST ONLY BE CALLED BY A ISR, it depends on that no other ISR interrupts this @@ -1594,3 +1592,13 @@ void microstep_readings() #endif } #endif //TMC2130 + + +#if defined(FILAMENT_SENSOR) && defined(PAT9125) +void st_reset_fsensor() +{ + CRITICAL_SECTION_START; + fsensor_counter = 0; + CRITICAL_SECTION_END; +} +#endif //FILAMENT_SENSOR diff --git a/Firmware/stepper.h b/Firmware/stepper.h index 7c41743cd..7fdf426f3 100644 --- a/Firmware/stepper.h +++ b/Firmware/stepper.h @@ -92,7 +92,10 @@ void microstep_readings(); #ifdef BABYSTEPPING void babystep(const uint8_t axis,const bool direction); // perform a short step with a single stepper motor, outside of any convention #endif - +#if defined(FILAMENT_SENSOR) && defined(PAT9125) +// reset the internal filament sensor state +void st_reset_fsensor(); +#endif #endif From 34f43d73898b74e58c37f5fa439ebb581589a07d Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Wed, 5 Feb 2020 21:41:31 -0500 Subject: [PATCH 179/361] Update mmu.cpp Fix runout if filament is unknown --- Firmware/mmu.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index b34658287..85beeb616 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -383,8 +383,9 @@ void mmu_loop(void) //printf_P(PSTR("Eact: %d\n"), int(e_active())); if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) { fsensor_checkpoint_print(); - ad_markDepleted(mmu_extruder); - if (lcd_autoDepleteEnabled() && !ad_allDepleted()) + if (mmu_extruder != MMU_FILAMENT_UNKNOWN) // Can't deplete unknown extruder. + ad_markDepleted(mmu_extruder); + if (lcd_autoDepleteEnabled() && !ad_allDepleted() && mmu_extruder != MMU_FILAMENT_UNKNOWN) // Can't auto if F=? { enquecommand_front_P(PSTR("M600 AUTO")); //save print and run M600 command } From e84f82a6757ec3bfe3a9473b71f145775f631bae Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 15:46:45 +0100 Subject: [PATCH 180/361] Rewrite filament sensor PAT9125 error handling Rewrite the logic behind the "chunking"/error count behind the PAT9125. Basic idea: check the _direction_ of movement returned by the optical sensor and compare it to the direction of the stepper. To avoid doing this continuosly (and because the optical sensor doesn't necessarily have the accuracy to track small distances), do so in chunks. Each time a chunk doesn't match the expected direction, increase the error count. Several improvements were done to the previous code: - Increase the chunk window: this ensures that a filament with poor response returns an usable direction, while also moving the average return values from the sensor in the middle of the 12 bits available for maximum effectiveness. - Since the returned values are more reliable, reduce the error count (1.25mm*4 = ~5mm before runout detection) - Track _both_ positive and negative movement, although only trigger errors during extrusion (necessary due to several assumptions made in the mmu/unloading code) - Do not reset the counters for each block: accumulate distances correctly, allowing detection of any block lenght. --- Firmware/config.h | 3 +- Firmware/fsensor.cpp | 104 +++++++++++++++++++++---------------------- Firmware/stepper.cpp | 1 - 3 files changed, 53 insertions(+), 55 deletions(-) diff --git a/Firmware/config.h b/Firmware/config.h index 241a2f20b..5c8f7cd98 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -34,7 +34,8 @@ //#define PAT9125_I2C_ADDR 0x79 //ID=HI //#define PAT9125_I2C_ADDR 0x73 //ID=NC #define PAT9125_XRES 0 -#define PAT9125_YRES 240 +#define PAT9125_YRES 240 // maximum resolution (5*X cpi) +#define PAT9124_YRES_MM (5*PAT9125_YRES/25.4) // counts per mm //SM4 configuration #define SM4_DEFDELAY 500 //default step delay [us] diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 3c42a3424..ea171906f 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -18,8 +18,8 @@ //! @name Basic parameters //! @{ -#define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm -#define FSENSOR_ERR_MAX 9 //!< filament sensor maximum error count for runout detection +#define FSENSOR_CHUNK_LEN 1.25 //!< filament sensor chunk length (mm) +#define FSENSOR_ERR_MAX 4 //!< filament sensor maximum error/chunk count for runout detection #define FSENSOR_SOFTERR_CMAX 3 //!< number of contiguous soft failures before a triggering a runout #define FSENSOR_SOFTERR_DELTA 30000 //!< maximum interval (ms) to consider soft failures contiguous @@ -64,8 +64,6 @@ bool fsensor_oq_meassure_enabled = false; uint8_t fsensor_err_cnt = 0; //! variable for accumulating step count (updated callbacks from stepper and ISR) int16_t fsensor_st_cnt = 0; -//! last dy value from pat9125 sensor (used in ISR) -int16_t fsensor_dy_old = 0; //! count of total sensor "soft" failures (filament status checks) uint8_t fsensor_softfail = 0; //! timestamp of last soft failure @@ -226,7 +224,6 @@ bool fsensor_enable(bool bUpdateEEPROM) fsensor_watch_runout = true; fsensor_oq_meassure = false; fsensor_reset_err_cnt(); - fsensor_dy_old = 0; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, fsensor_enabled ? 0x01 : 0x00); FSensorStateMenu = fsensor_enabled ? 1 : 0; } @@ -477,53 +474,56 @@ ISR(FSENSOR_INT_PIN_VECT) fsensor_not_responding = true; printf_P(ERRMSG_PAT9125_NOT_RESP, 1); } + if (st_cnt != 0) - { //movement - if (st_cnt > 0) //positive movement - { - if (pat9125_y < 0) - { - fsensor_err_cnt++; - } - else if (pat9125_y > 0) - { - if (fsensor_err_cnt) - fsensor_err_cnt--; - } - else //(pat9125_y == 0) - if (((fsensor_dy_old <= 0) || (fsensor_err_cnt)) && (st_cnt > (fsensor_chunk_len >> 1))) - fsensor_err_cnt++; - if (fsensor_oq_meassure) - { - if (fsensor_oq_skipchunk) - { - fsensor_oq_skipchunk--; - fsensor_err_cnt = 0; - } - else - { - if (st_cnt == fsensor_chunk_len) - { - if (pat9125_y > 0) if (fsensor_oq_yd_min > pat9125_y) fsensor_oq_yd_min = (fsensor_oq_yd_min + pat9125_y) / 2; - if (pat9125_y >= 0) if (fsensor_oq_yd_max < pat9125_y) fsensor_oq_yd_max = (fsensor_oq_yd_max + pat9125_y) / 2; - } - fsensor_oq_samples++; - fsensor_oq_st_sum += st_cnt; - if (pat9125_y > 0) fsensor_oq_yd_sum += pat9125_y; - if (fsensor_err_cnt > old_err_cnt) - fsensor_oq_er_sum += (fsensor_err_cnt - old_err_cnt); - if (fsensor_oq_er_max < fsensor_err_cnt) - fsensor_oq_er_max = fsensor_err_cnt; - fsensor_oq_sh_sum += pat9125_s; - } - } - } - else //negative movement - { - } - } - else - { //no movement + { + // movement was planned, check for sensor movement + int8_t st_dir = st_cnt >= 0; + int8_t pat9125_dir = pat9125_y >= 0; + + if (pat9125_y == 0) + { + // no movement detected: increase error count only when extruding, since fast retracts + // cannot always be seen. We also need to ensure that no runout is generated while + // retracting as it's not currently handled everywhere + if (st_dir) ++fsensor_err_cnt; + } + else if (pat9125_dir != st_dir) + { + // detected direction opposite of motor movement + if (st_dir) ++fsensor_err_cnt; + } + else if (pat9125_dir == st_dir) + { + // direction agreeing with planned movement + if (fsensor_err_cnt) --fsensor_err_cnt; + } + + if (st_dir && fsensor_oq_meassure) + { + // extruding with quality assessment + if (fsensor_oq_skipchunk) + { + fsensor_oq_skipchunk--; + fsensor_err_cnt = 0; + } + else + { + if (st_cnt == fsensor_chunk_len) + { + if (pat9125_y > 0) if (fsensor_oq_yd_min > pat9125_y) fsensor_oq_yd_min = (fsensor_oq_yd_min + pat9125_y) / 2; + if (pat9125_y >= 0) if (fsensor_oq_yd_max < pat9125_y) fsensor_oq_yd_max = (fsensor_oq_yd_max + pat9125_y) / 2; + } + fsensor_oq_samples++; + fsensor_oq_st_sum += st_cnt; + if (pat9125_y > 0) fsensor_oq_yd_sum += pat9125_y; + if (fsensor_err_cnt > old_err_cnt) + fsensor_oq_er_sum += (fsensor_err_cnt - old_err_cnt); + if (fsensor_oq_er_max < fsensor_err_cnt) + fsensor_oq_er_max = fsensor_err_cnt; + fsensor_oq_sh_sum += pat9125_s; + } + } } #ifdef DEBUG_FSENSOR_LOG @@ -534,9 +534,7 @@ ISR(FSENSOR_INT_PIN_VECT) } #endif //DEBUG_FSENSOR_LOG - fsensor_dy_old = pat9125_y; pat9125_y = 0; - _lock = false; return; } diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 93e4ad8fa..6e0937cfd 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -422,7 +422,6 @@ FORCE_INLINE void stepper_next_block() count_direction[E_AXIS] = 1; } #if defined(FILAMENT_SENSOR) && defined(PAT9125) - fsensor_counter = 0; fsensor_st_block_begin(count_direction[E_AXIS] < 0); #endif //FILAMENT_SENSOR } From 1eddc40ed46cb74192e792ba2326e9ac174aa157 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 22:05:04 +0100 Subject: [PATCH 181/361] Comment existing code --- Firmware/fsensor.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index ea171906f..2cf336a6e 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -460,12 +460,17 @@ ISR(FSENSOR_INT_PIN_VECT) if (mmu_enabled || ir_sensor_detected) return; if (!((fsensor_int_pin_old ^ FSENSOR_INT_PIN_PIN_REG) & FSENSOR_INT_PIN_MASK)) return; fsensor_int_pin_old = FSENSOR_INT_PIN_PIN_REG; + + // prevent isr re-entry static bool _lock = false; if (_lock) return; _lock = true; + + // fetch fsensor_st_cnt atomically int st_cnt = fsensor_st_cnt; fsensor_st_cnt = 0; sei(); + uint8_t old_err_cnt = fsensor_err_cnt; uint8_t pat9125_res = fsensor_oq_meassure?pat9125_update():pat9125_update_y(); if (!pat9125_res) From 3af35844e11c95147befa708c3f75f7546ef90dd Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 22:05:24 +0100 Subject: [PATCH 182/361] Remove redundant check (always trigger the fsensor isr) Since fsensor_st_block_chunk is already called on fsensor_chunk_size boundaries, there's no need to check a second time. --- Firmware/fsensor.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 2cf336a6e..41d9a5065 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -563,12 +563,10 @@ void fsensor_st_block_chunk(int cnt) { if (!fsensor_enabled) return; 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);} - else {PIN_VAL(FSENSOR_INT_PIN, HIGH);} - } + + // !!! 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);} } #endif //PAT9125 From cdc17e8da1b88a6fd10fec6e7a875f3e5caf30c5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Feb 2020 22:06:56 +0100 Subject: [PATCH 183/361] Read all 12 bits correctly from PAT9125 DELTA_* registers Widen ucXL/ucYL/ucXYH types to 16 bits, since the following shifts will otherwise truncate the results. --- Firmware/pat9125.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/pat9125.c b/Firmware/pat9125.c index 7b7353dde..5b17345c2 100644 --- a/Firmware/pat9125.c +++ b/Firmware/pat9125.c @@ -183,9 +183,9 @@ uint8_t pat9125_update(void) if (pat9125_PID1 == 0xff) return 0; if (ucMotion & 0x80) { - uint8_t ucXL = pat9125_rd_reg(PAT9125_DELTA_XL); - uint8_t ucYL = pat9125_rd_reg(PAT9125_DELTA_YL); - uint8_t ucXYH = pat9125_rd_reg(PAT9125_DELTA_XYH); + uint16_t ucXL = pat9125_rd_reg(PAT9125_DELTA_XL); + uint16_t ucYL = pat9125_rd_reg(PAT9125_DELTA_YL); + uint16_t ucXYH = pat9125_rd_reg(PAT9125_DELTA_XYH); if (pat9125_PID1 == 0xff) return 0; int16_t iDX = ucXL | ((ucXYH << 4) & 0xf00); int16_t iDY = ucYL | ((ucXYH << 8) & 0xf00); @@ -207,8 +207,8 @@ uint8_t pat9125_update_y(void) if (pat9125_PID1 == 0xff) return 0; if (ucMotion & 0x80) { - uint8_t ucYL = pat9125_rd_reg(PAT9125_DELTA_YL); - uint8_t ucXYH = pat9125_rd_reg(PAT9125_DELTA_XYH); + uint16_t ucYL = pat9125_rd_reg(PAT9125_DELTA_YL); + uint16_t ucXYH = pat9125_rd_reg(PAT9125_DELTA_XYH); if (pat9125_PID1 == 0xff) return 0; int16_t iDY = ucYL | ((ucXYH << 8) & 0xf00); if (iDY & 0x800) iDY -= 4096; From 3be859ece951c6c4bdeb8ed112c7e14a439636d6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 6 Feb 2020 13:48:23 +0100 Subject: [PATCH 184/361] FS: Improve reliability on speeds with poor optical tracking Depending on the filament surface and moving speed, the PAT9125 sensor can stop being able to track movement. In such cases, instead of triggering false errors and/or relying on previous states, read and use the exposure data off the sensor and increase error counts only for poorly exposed images instead, which is a good indicator of a far-away (or missing!) tracking surface. --- Firmware/fsensor.cpp | 23 +++++++++++++++++++---- Firmware/pat9125.c | 14 ++++---------- Firmware/pat9125.h | 6 +++--- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 41d9a5065..9e7b2f6cf 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -488,10 +488,25 @@ ISR(FSENSOR_INT_PIN_VECT) if (pat9125_y == 0) { - // no movement detected: increase error count only when extruding, since fast retracts - // cannot always be seen. We also need to ensure that no runout is generated while - // retracting as it's not currently handled everywhere - if (st_dir) ++fsensor_err_cnt; + if (st_dir) + { + // no movement detected: we might be within a blind sensor range, + // update the frame and shutter parameters we didn't earlier + if (!fsensor_oq_meassure) + pat9125_update_bs(); + + // increment the error count only if underexposed: filament likely missing + if ((pat9125_b < 80) && (pat9125_s > 10)) + { + // check for a dark frame (<30% avg brightness) with long exposure + ++fsensor_err_cnt; + } + else + { + // good frame, filament likely present + if(fsensor_err_cnt) --fsensor_err_cnt; + } + } } else if (pat9125_dir != st_dir) { diff --git a/Firmware/pat9125.c b/Firmware/pat9125.c index 5b17345c2..ae291c217 100644 --- a/Firmware/pat9125.c +++ b/Firmware/pat9125.c @@ -219,19 +219,13 @@ uint8_t pat9125_update_y(void) return 0; } -uint8_t pat9125_update_y2(void) +uint8_t pat9125_update_bs(void) { if ((pat9125_PID1 == 0x31) && (pat9125_PID2 == 0x91)) { - uint8_t ucMotion = pat9125_rd_reg(PAT9125_MOTION); - if (pat9125_PID1 == 0xff) return 0; //NOACK error - if (ucMotion & 0x80) - { - int8_t dy = pat9125_rd_reg(PAT9125_DELTA_YL); - if (pat9125_PID1 == 0xff) return 0; //NOACK error - pat9125_y -= dy; //negative number, because direction switching does not work - } - return 1; + pat9125_b = pat9125_rd_reg(PAT9125_FRAME); + pat9125_s = pat9125_rd_reg(PAT9125_SHUTTER); + if (pat9125_PID1 == 0xff) return 0; } return 0; } diff --git a/Firmware/pat9125.h b/Firmware/pat9125.h index 6d36a82e8..12f7fe949 100755 --- a/Firmware/pat9125.h +++ b/Firmware/pat9125.h @@ -19,9 +19,9 @@ extern uint8_t pat9125_b; extern uint8_t pat9125_s; extern uint8_t pat9125_init(void); -extern uint8_t pat9125_update(void); -extern uint8_t pat9125_update_y(void); -extern uint8_t pat9125_update_y2(void); +extern uint8_t pat9125_update(void); // update all sensor data +extern uint8_t pat9125_update_y(void); // update _y only +extern uint8_t pat9125_update_bs(void); // update _b/_s only #if defined(__cplusplus) From bd0544fe9e028ffb32d3696533340dc0319152b4 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 6 Feb 2020 14:44:43 +0100 Subject: [PATCH 185/361] FS: Use two different speeds when checking for runout When doing a PAT9125 "soft check", use two different speeds between retraction and extrusion. This increases the chances that we can track the surface. --- Firmware/fsensor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 9e7b2f6cf..7f291d7a2 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -624,7 +624,7 @@ void fsensor_update(void) fsensor_oq_meassure_start(0); float e_tmp = current_position[E_AXIS]; current_position[E_AXIS] -= 3; - plan_buffer_line_curposXYZE(200/60, active_extruder); + plan_buffer_line_curposXYZE(250/60, active_extruder); current_position[E_AXIS] = e_tmp; plan_buffer_line_curposXYZE(200/60, active_extruder); st_synchronize(); From 853bb79b6b4ac485537fd410f432229a9c45817f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 6 Feb 2020 16:39:08 +0100 Subject: [PATCH 186/361] Return correct status from pat9125_update_bs --- Firmware/pat9125.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/pat9125.c b/Firmware/pat9125.c index ae291c217..de4693d29 100644 --- a/Firmware/pat9125.c +++ b/Firmware/pat9125.c @@ -226,6 +226,7 @@ uint8_t pat9125_update_bs(void) pat9125_b = pat9125_rd_reg(PAT9125_FRAME); pat9125_s = pat9125_rd_reg(PAT9125_SHUTTER); if (pat9125_PID1 == 0xff) return 0; + return 1; } return 0; } From 9e45b5d41e49ec6abe3b62263745ef741fca9167 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 6 Feb 2020 18:01:54 +0100 Subject: [PATCH 187/361] Improve PAT9125 filament / optical quality checks Tune the "soft" filament recheck to be more in-line with the latest changes. Relax the thresholds so that a poorly tracking filament that managed to trigger a recheck can still pass as long as /some/ motion is detected. Hide the unused fsensor_oq_result() behind the FSENSOR_QUALITY define, which is likely broken currently anyway. Cleanup and simplify all the OQ defines. --- Firmware/fsensor.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 7f291d7a2..4894d29ce 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -27,13 +27,10 @@ //! @name Optical quality measurement parameters //! @{ -#define FSENSOR_OQ_MAX_ES 6 //!< maximum error sum while loading (length ~64mm = 100chunks) -#define FSENSOR_OQ_MAX_EM 2 //!< maximum error counter value while loading -#define FSENSOR_OQ_MIN_YD 2 //!< minimum yd per chunk (applied to avg value) -#define FSENSOR_OQ_MAX_YD 200 //!< maximum yd per chunk (applied to avg value) -#define FSENSOR_OQ_MAX_PD 4 //!< maximum positive deviation (= yd_max/yd_avg) -#define FSENSOR_OQ_MAX_ND 5 //!< maximum negative deviation (= yd_avg/yd_min) -#define FSENSOR_OQ_MAX_SH 13 //!< maximum shutter value +#define FSENSOR_OQ_MAX_ES 2 //!< maximum sum of error blocks during filament recheck +#define FSENSOR_OQ_MIN_YD 2 //!< minimum yd sum during filament check (counts per inch) +#define FSENSOR_OQ_MIN_BR 80 //!< minimum brightness value +#define FSENSOR_OQ_MAX_SH 10 //!< maximum shutter value //! @} const char ERRMSG_PAT9125_NOT_RESP[] PROGMEM = "PAT9125 not responding (%d)!\n"; @@ -401,7 +398,7 @@ void fsensor_oq_meassure_start(uint8_t skip) fsensor_oq_yd_sum = 0; fsensor_oq_er_sum = 0; fsensor_oq_er_max = 0; - fsensor_oq_yd_min = FSENSOR_OQ_MAX_YD; + fsensor_oq_yd_min = INT16_MAX; fsensor_oq_yd_max = 0; fsensor_oq_sh_sum = 0; pat9125_update(); @@ -419,6 +416,7 @@ void fsensor_oq_meassure_stop(void) fsensor_oq_meassure = false; } +#ifdef FSENSOR_QUALITY const char _OK[] PROGMEM = "OK"; const char _NG[] PROGMEM = "NG!"; @@ -454,6 +452,7 @@ bool fsensor_oq_result(void) printf_P(_N("fsensor_oq_result %S\n"), (res?_OK:_NG)); return res; } +#endif //FSENSOR_QUALITY ISR(FSENSOR_INT_PIN_VECT) { @@ -496,7 +495,7 @@ ISR(FSENSOR_INT_PIN_VECT) pat9125_update_bs(); // increment the error count only if underexposed: filament likely missing - if ((pat9125_b < 80) && (pat9125_s > 10)) + if ((pat9125_b < FSENSOR_OQ_MIN_BR) && (pat9125_s > FSENSOR_OQ_MAX_SH)) { // check for a dark frame (<30% avg brightness) with long exposure ++fsensor_err_cnt; @@ -631,9 +630,9 @@ void fsensor_update(void) fsensor_oq_meassure_stop(); bool err = false; - err |= (fsensor_err_cnt > 1); - err |= (fsensor_oq_er_sum > 2); - err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD)); + err |= (fsensor_err_cnt > 0); // final error count is non-zero + err |= (fsensor_oq_er_sum > FSENSOR_OQ_MAX_ES); // total error count is above limit + err |= (fsensor_oq_yd_sum < FSENSOR_OQ_MIN_YD); // total measured distance is below limit fsensor_restore_print_and_continue(); fsensor_autoload_enabled = autoload_enabled_tmp; From f1618bfbd687e40147d382fb5c0e83a2899d1f04 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 6 Feb 2020 22:41:47 +0100 Subject: [PATCH 188/361] Initialize current_position correctly during startup Just after setting up the w2m matrix, call "clamp_to_software_endstops" on the current_position (initially [0,0,0]) to move it to the effective minimal position, which is usually [0,0,non-zero] due to MIN_Z and the negative probe offset. This is required to calculate correctly the first relative move: planning X+10 would unexpectedly calculate a Z shift otherwise. --- Firmware/Marlin_main.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 43e3081fe..e33ad37c6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1310,10 +1310,17 @@ void setup() setup_photpin(); servo_init(); + // Reset the machine correction matrix. // It does not make sense to load the correction matrix until the machine is homed. world2machine_reset(); - + + // Initialize current_position accounting for software endstops to + // avoid unexpected initial shifts on the first move + clamp_to_software_endstops(current_position); + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], + current_position[Z_AXIS], current_position[E_AXIS]); + #ifdef FILAMENT_SENSOR fsensor_init(); #endif //FILAMENT_SENSOR From 1384e783bfb422afe25bc88b8705203ecc6b26e4 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Fri, 7 Feb 2020 16:14:33 -0500 Subject: [PATCH 189/361] Force high power mode when running belt test --- Firmware/ultralcd.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cefd9b8c5..4e0057acd 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7455,6 +7455,11 @@ void lcd_belttest() { int _progress = 0; bool _result = true; + + #ifdef TMC2130 // Belttest requires high power mode. Enable it. + FORCE_HIGH_POWER_START; + #endif + 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); @@ -7482,6 +7487,10 @@ void lcd_belttest() lcd_belttest_print(_i("Done"), X, Y); + #ifdef TMC2130 + FORCE_HIGH_POWER_END; + #endif + KEEPALIVE_STATE(NOT_BUSY); _delay(3000); } From 721b27fcb6984d11f009ea77d21a93923e2397aa Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Sat, 8 Feb 2020 12:33:23 -0500 Subject: [PATCH 190/361] Reorg/cleanup Removed unused progress variable reorganized flow to avoid early returns (ensures forced high power mode is disabled regardless of outcome) --- Firmware/ultralcd.cpp | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 4e0057acd..a4b524772 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7453,7 +7453,6 @@ void lcd_belttest_print(const char* msg, uint16_t X, uint16_t Y) } void lcd_belttest() { - int _progress = 0; bool _result = true; #ifdef TMC2130 // Belttest requires high power mode. Enable it. @@ -7466,26 +7465,20 @@ void lcd_belttest() _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; + if (_result){ + lcd_belttest_print(_i("Checking Y..."), X, Y); + _result = lcd_selfcheck_axis_sg(Y_AXIS); + Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); } - - 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){ + + if (!_result) { lcd_belttest_print(_i("Error"), X, Y); - lcd_clear(); - return; - } - - - lcd_belttest_print(_i("Done"), X, Y); + } else { + lcd_belttest_print(_i("Done"), X, Y); + } #ifdef TMC2130 FORCE_HIGH_POWER_END; From e4b1a1e9c4d265a7b76a74ea172efdfd4f6859f2 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Sun, 9 Feb 2020 21:39:48 -0500 Subject: [PATCH 191/361] Remove delay for belttest, similar to #2439 There's a separate PR to remove the first delay in the selftest. (#2439). Mirroring that to the belt test function, which I suspect also inherited it. --- Firmware/ultralcd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a4b524772..af6399f3d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7463,7 +7463,6 @@ void lcd_belttest() 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); From a4458fb57b6ea78569c3b9cb49e6e468545d59ba Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 11 Feb 2020 18:33:40 -0500 Subject: [PATCH 192/361] Removed duplicate #defines cleaned up display routine --- Firmware/ultralcd.cpp | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index af6399f3d..7321d70e7 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7436,52 +7436,39 @@ 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( - "%S:\n" - "%S\n" - "X:%d\n" - "Y:%d" - ), - _i("Belt status"), - msg, - X,Y - ); -} + void lcd_belttest() { bool _result = true; - #ifdef TMC2130 // Belttest requires high power mode. Enable it. - FORCE_HIGH_POWER_START; - #endif + // Belttest requires high power mode. Enable it. + FORCE_HIGH_POWER_START; 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); + lcd_puts_at_P(0,0,_i("Checking X...")); KEEPALIVE_STATE(IN_HANDLER); _result = lcd_selfcheck_axis_sg(X_AXIS); X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); + lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X); // Trailing space for done/error spacing if !_result if (_result){ - lcd_belttest_print(_i("Checking Y..."), X, Y); + lcd_printf_P(_i("Done")); + lcd_puts_at_P(0,2,_i("Checking Y...")); _result = lcd_selfcheck_axis_sg(Y_AXIS); Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); + lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d "),Y); } - if (!_result) { - lcd_belttest_print(_i("Error"), X, Y); + if (!_result) { // If error on X, error appears after X measurement, else done or error after Y measurement. + lcd_printf_P(_i("Error")); } else { - lcd_belttest_print(_i("Done"), X, Y); + lcd_printf_P(_i("Done")); } - #ifdef TMC2130 - FORCE_HIGH_POWER_END; - #endif + lcd_puts_at_P(19,3,char(2)); // Checkmark + FORCE_HIGH_POWER_END; KEEPALIVE_STATE(NOT_BUSY); _delay(3000); From 278bb032d797843dc84ba0b4332b8fc65a5d3b37 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 11 Feb 2020 18:37:26 -0500 Subject: [PATCH 193/361] Change to raise_z_above() --- Firmware/ultralcd.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 7321d70e7..3dbb68310 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7797,9 +7797,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { enable_endstops(true); if (axis == X_AXIS) { //there is collision between cables and PSU cover in X axis if Z coordinate is too low - - current_position[Z_AXIS] += 17; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + raise_z_above(17,true); tmc2130_home_enter(Z_AXIS_MASK); st_synchronize(); tmc2130_home_exit(); From 5abee3d3e51acaabe2ec25f1ab717c3a835c3590 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 11 Feb 2020 19:44:26 -0500 Subject: [PATCH 194/361] Better display handling --- Firmware/ultralcd.cpp | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 3dbb68310..ed1b91d46 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7439,39 +7439,37 @@ static void lcd_belttest_v() void lcd_belttest() { - bool _result = true; - + lcd_clear(); // Belttest requires high power mode. Enable it. FORCE_HIGH_POWER_START; uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); - lcd_puts_at_P(0,0,_i("Checking X...")); - + lcd_puts_at_P(0,0,_i("Checking X axis ")); // share message with selftest + lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X); KEEPALIVE_STATE(IN_HANDLER); - _result = lcd_selfcheck_axis_sg(X_AXIS); - X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); - lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X); // Trailing space for done/error spacing if !_result - if (_result){ - lcd_printf_P(_i("Done")); - lcd_puts_at_P(0,2,_i("Checking Y...")); - _result = lcd_selfcheck_axis_sg(Y_AXIS); - Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); + // N.B: it doesn't make sense to handle !lcd_selfcheck...() because selftest_sg throws its own error screen + // that clobbers ours, with more info than we could provide. So on fail we just fall through to take us back to status. + if (lcd_selfcheck_axis_sg(X_AXIS)){ + X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); + lcd_printf_P(PSTR("-> %d"),X); // Show new X value next to old one. + lcd_puts_at_P(0,2,_i("Checking Y axis ")); lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d "),Y); + if (lcd_selfcheck_axis_sg(Y_AXIS)) + { + Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); + lcd_printf_P(PSTR("-> %d"),Y); + lcd_set_custom_characters_nextpage(); + lcd_set_cursor(19, 3); + lcd_print(char(2)); + lcd_wait_for_click_delay(10); + } } - - if (!_result) { // If error on X, error appears after X measurement, else done or error after Y measurement. - lcd_printf_P(_i("Error")); - } else { - lcd_printf_P(_i("Done")); - } - - lcd_puts_at_P(19,3,char(2)); // Checkmark + FORCE_HIGH_POWER_END; - KEEPALIVE_STATE(NOT_BUSY); - _delay(3000); + lcd_set_custom_characters(); // restore status screen chars. } #endif //TMC2130 From 04588ee5cba673979737c9317e86e7082c318f73 Mon Sep 17 00:00:00 2001 From: Thelvaen Date: Wed, 12 Feb 2020 13:25:16 +0100 Subject: [PATCH 195/361] removing sudo for normal build --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54070dce2..9d62d9ae3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ - For MK3 --> skip to step 3. - If you have a different printer model, follow step [2.b](#2b) from Windows build -3. Run `sudo ./build.sh` +3. Run `./build.sh` - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well. 4. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE. From 1aaefffdb04a94f9ea451f05d2437983f3172c39 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 11 Feb 2020 18:37:26 -0500 Subject: [PATCH 196/361] Change to raise_z_above() --- Firmware/ultralcd.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index af6399f3d..5c7def256 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7810,9 +7810,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { enable_endstops(true); if (axis == X_AXIS) { //there is collision between cables and PSU cover in X axis if Z coordinate is too low - - current_position[Z_AXIS] += 17; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + raise_z_above(17,true); tmc2130_home_enter(Z_AXIS_MASK); st_synchronize(); tmc2130_home_exit(); From f234ef2104cbf7808a8aa21bfa745165ce42e3d1 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 14 Feb 2020 09:09:15 +0100 Subject: [PATCH 197/361] Use combined creation/modification file time stamps for sorting --- Firmware/cardreader.cpp | 29 +++++++++++++++++++---------- Firmware/cardreader.h | 4 +++- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index 545316d39..1c2cbf3c5 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -136,8 +136,17 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m SERIAL_ECHOPGM("Access date: "); MYSERIAL.println(p.lastAccessDate); SERIAL_ECHOLNPGM("");*/ - modificationDate = p.lastWriteDate; - modificationTime = p.lastWriteTime; + crmodDate = p.lastWriteDate; + crmodTime = p.lastWriteTime; + // There are scenarios when simple modification time is not enough (on MS Windows) + // For example - extract an old g-code from an archive onto the SD card. + // In such case the creation time is current time (which is correct), but the modification time + // stays the same - i.e. old. + // Therefore let's pick the most recent timestamp from both creation and modification timestamps + if( crmodDate < p.creationDate || ( crmodDate == p.creationDate && crmodTime < p.creationTime ) ){ + crmodDate = p.creationDate; + crmodTime = p.creationTime; + } //writeDate = p.lastAccessDate; if (match != NULL) { if (strcasecmp(match, filename) == 0) return; @@ -773,8 +782,8 @@ void CardReader::presort() { // retaining only two filenames at a time. This is very // slow but is safest and uses minimal RAM. char name1[LONG_FILENAME_LENGTH + 1]; - uint16_t modification_time_bckp; - uint16_t modification_date_bckp; + uint16_t crmod_time_bckp; + uint16_t crmod_date_bckp; #endif position = 0; @@ -800,8 +809,8 @@ void CardReader::presort() { #else // Copy filenames into the static array strcpy(sortnames[i], LONGEST_FILENAME); - modification_time[i] = modificationTime; - modification_date[i] = modificationDate; + modification_time[i] = crmodTime; + modification_date[i] = crmodDate; #if SDSORT_CACHE_NAMES strcpy(sortshort[i], filename); #endif @@ -830,8 +839,8 @@ void CardReader::presort() { (modification_date[o1] < modification_date [o2])) #else #define _SORT_CMP_NODIR() (strcasecmp(name1, name2) > 0) //true if lowercase(name1) > lowercase(name2) - #define _SORT_CMP_TIME_NODIR() (((modification_date_bckp == modificationDate) && (modification_time_bckp > modificationTime)) || \ - (modification_date_bckp > modificationDate)) + #define _SORT_CMP_TIME_NODIR() (((crmod_date_bckp == crmodDate) && (crmod_time_bckp > crmodTime)) || \ + (crmod_date_bckp > crmodDate)) #endif @@ -882,8 +891,8 @@ void CardReader::presort() { counter++; getfilename_simple(positions[o1]); strcpy(name1, LONGEST_FILENAME); // save (or getfilename below will trounce it) - modification_date_bckp = modificationDate; - modification_time_bckp = modificationTime; + crmod_date_bckp = crmodDate; + crmod_time_bckp = crmodTime; #if HAS_FOLDER_SORTING bool dir1 = filenameIsDir; #endif diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index 9a7d0f697..12e83d969 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -75,7 +75,9 @@ public: bool sdprinting ; bool cardOK ; char filename[13]; - uint16_t modificationTime, modificationDate; + // There are scenarios when simple modification time is not enough (on MS Windows) + // Therefore these timestamps hold the most recent one of creation/modification date/times + uint16_t crmodTime, crmodDate; uint32_t cluster, position; char longFilename[LONG_FILENAME_LENGTH]; bool filenameIsDir; From 2e18a48b8778308e1ebf1782dbf95df51dff59fe Mon Sep 17 00:00:00 2001 From: DRracer Date: Mon, 17 Feb 2020 16:47:56 +0100 Subject: [PATCH 198/361] Version changed (3.9.0-RC1 build 3272) --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 694247fbd..98923ef4f 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.9.0" -#define FW_COMMIT_NR 3175 +#define FW_VERSION "3.9.0-RC1" +#define FW_COMMIT_NR 3272 // 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 e06beb61c30785fb93f314120fb91ad155795b9c Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Fri, 21 Feb 2020 18:14:13 -0500 Subject: [PATCH 199/361] Ditch charswitch, show ... for measuring --- Firmware/ultralcd.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ed1b91d46..2ecf7ddca 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7446,30 +7446,28 @@ void lcd_belttest() uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); lcd_puts_at_P(0,0,_i("Checking X axis ")); // share message with selftest - lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d "),X); + lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d -> ..."),X); KEEPALIVE_STATE(IN_HANDLER); // N.B: it doesn't make sense to handle !lcd_selfcheck...() because selftest_sg throws its own error screen // that clobbers ours, with more info than we could provide. So on fail we just fall through to take us back to status. if (lcd_selfcheck_axis_sg(X_AXIS)){ X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); - lcd_printf_P(PSTR("-> %d"),X); // Show new X value next to old one. + lcd_set_cursor(9,1), lcd_printf_P(PSTR("%d"),X); // Show new X value next to old one. lcd_puts_at_P(0,2,_i("Checking Y axis ")); - lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d "),Y); + lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d -> ..."),Y); if (lcd_selfcheck_axis_sg(Y_AXIS)) { Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); - lcd_printf_P(PSTR("-> %d"),Y); - lcd_set_custom_characters_nextpage(); + lcd_set_cursor(9,3),lcd_printf_P(PSTR("%d"),Y); lcd_set_cursor(19, 3); - lcd_print(char(2)); + lcd_print(LCD_STR_UPLEVEL); lcd_wait_for_click_delay(10); } } FORCE_HIGH_POWER_END; KEEPALIVE_STATE(NOT_BUSY); - lcd_set_custom_characters(); // restore status screen chars. } #endif //TMC2130 From ec5e54de25ec8d0c08726b880f0c26be9b4dedf5 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Mon, 2 Mar 2020 17:52:25 +0100 Subject: [PATCH 200/361] state fixing --- Firmware/Marlin_main.cpp | 29 ++++++++++++++++++++++ Firmware/config.h | 4 ++-- Firmware/ultralcd.cpp | 52 ++++++++++++++++++++++++++++++++++++---- Firmware/ultralcd.h | 3 +++ 4 files changed, 81 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 211384f9d..6f74d5a7e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9439,6 +9439,8 @@ static void handleSafetyTimer() } #endif //SAFETYTIMER +extern bool bMenuDetect; / -> .h +extern void lcd_status_screen(); / -> .h & 'static' void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h { bool bInhibitFlag; @@ -9451,11 +9453,38 @@ bool bInhibitFlag; #endif // PAT9125 #ifdef IR_SENSOR bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active +//MYSERIAL.print("inhibit :: "); +//MYSERIAL.println(bInhibitFlag); +// & IR_SENSOR_ANALOG ??? +//bInhibitFlag|=(menu_menu==lcd_detect_IRsensor); // Settings::HWsetup::FSdetect menu active +//.bInhibitFlag=bInhibitFlag||(menu_menu==lcd_detect_IRsensor); // Settings::HWsetup::FSdetect menu active +bInhibitFlag=bInhibitFlag||bMenuDetect; // Settings::HWsetup::FSdetect menu active +//MYSERIAL.print(" :: "); +//MYSERIAL.println(bInhibitFlag); +//MYSERIAL.println(current_voltage_raw_IR); #endif // IR_SENSOR if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active { if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { +// ***** +// & IR_SENSOR_ANALOG ??? +bool bTemp; +bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot +bTemp=bTemp&&(target_temperature[0]==0); // & bed (& dalsi extrudery) +bTemp=bTemp&&(menu_menu==lcd_status_screen); +bTemp=bTemp&&((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); +bTemp=bTemp&&fsensor_enabled; +if(bTemp) + { + MYSERIAL.println(current_voltage_raw_IR); + MYSERIAL.println("!!!!! -> 03b !!!!!"); + oFsensorPCB=ClFsensorPCB::_Rev03b; + //bTemp=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("?potvrdit?"),false,true); + //MYSERIAL.println(bTemp); + lcd_setstatuspgm(_i("!!! -> 03b !!!")); + } +// ***** if (fsensor_check_autoload()) { #ifdef PAT9125 diff --git a/Firmware/config.h b/Firmware/config.h index 241a2f20b..e6d81fe9b 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -55,8 +55,8 @@ #define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE) //LANG - Multi-language support -//define LANG_MODE 0 // primary language only -#define LANG_MODE 1 // sec. language support +#define LANG_MODE 0 // primary language only +//#define LANG_MODE 1 // sec. language support #define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 38471b814..6c5fc3e2e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -114,7 +114,8 @@ static const char* lcd_display_message_fullscreen_nonBlocking_P(const char *msg, // void copy_and_scalePID_d(); /* Different menus */ -static void lcd_status_screen(); +//-//static void lcd_status_screen(); + void lcd_status_screen(); #if (LANG_MODE != 0) static void lcd_language_menu(); #endif @@ -236,7 +237,8 @@ static bool lcd_selftest_fsensor(); #endif //PAT9125 static bool selftest_irsensor(); #if IR_SENSOR_ANALOG -static bool lcd_selftest_IRsensor(); +static bool lcd_selftest_IRsensor(bool bStandalone = false); +//-//static lcd_detect_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(); @@ -2146,6 +2148,23 @@ static void lcd_support_menu() MENU_ITEM_BACK_P(_i("Date:"));////MSG_DATE c=17 r=1 MENU_ITEM_BACK_P(PSTR(__DATE__)); + MENU_ITEM_BACK_P(STR_SEPARATOR); + MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:")); + switch(oFsensorPCB) + { + case ClFsensorPCB::_Old: + MENU_ITEM_BACK_P(PSTR(" 03 or older")); + break; + case ClFsensorPCB::_Rev03b: + MENU_ITEM_BACK_P(PSTR(" 03b or newer")); + break; + case ClFsensorPCB::_Undef: + MENU_ITEM_BACK_P(PSTR(" N/A")); + break; + default: + MENU_ITEM_BACK_P(PSTR(" unknown")); + } + MENU_ITEM_BACK_P(STR_SEPARATOR); if (mmu_enabled) { @@ -5697,6 +5716,7 @@ void lcd_hw_setup_menu(void) // can not be "static" #if IR_SENSOR_ANALOG FSENSOR_ACTION_NA; + MENU_ITEM_FUNCTION_P(PSTR("FS Detect"), lcd_detect_IRsensor); #endif //IR_SENSOR_ANALOG MENU_END(); } @@ -7496,7 +7516,7 @@ void lcd_belttest() #endif //TMC2130 #if IR_SENSOR_ANALOG -static bool lcd_selftest_IRsensor() +static bool lcd_selftest_IRsensor(bool bStandalone) { bool bAction; bool bPCBrev03b; @@ -7509,7 +7529,8 @@ 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",""); + if(!bStandalone) + 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.")); @@ -7518,7 +7539,8 @@ 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",""); + if(!bStandalone) + lcd_selftest_error(TestError::FsensorLevel,"LOW",""); return(false); } if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB) // safer then "(uint8_t)bPCBrev03b" @@ -7529,6 +7551,26 @@ if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB) // safer then "(uint8_t)bPCBre } return(true); } + +bool bMenuDetect=false; +//static void lcd_detect_IRsensor() +void lcd_detect_IRsensor() +{ +bool bAction; + +bMenuDetect=true; +bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); +if(!bAction) + { + lcd_show_fullscreen_message_and_wait_P(_i("... vyjmi & opakuj ...")); + return; + } +bAction=lcd_selftest_IRsensor(true); +if(bAction) + lcd_show_fullscreen_message_and_wait_P(_i("... povedlo se - VYJMI!!! ...")); +else lcd_show_fullscreen_message_and_wait_P(_i("... NEpovedlo se - VYJMI!!!...")); +bMenuDetect=false; +} #endif //IR_SENSOR_ANALOG static void lcd_selftest_v() diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 9e0c35b00..c9a9d65d1 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -57,6 +57,9 @@ void lcd_menu_statistics(); void lcd_menu_extruder_info(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") void lcd_menu_show_sensors_state(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") + + void lcd_detect_IRsensor(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") + #ifdef TMC2130 bool lcd_crash_detect_enabled(); void lcd_crash_detect_enable(); From 2a9504b20a5a6db30550e8c22cd1b28fe1eed3d6 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Mon, 2 Mar 2020 19:07:23 +0100 Subject: [PATCH 201/361] !!! for testing only !!! filament sensor auto-detection --- Firmware/Marlin_main.cpp | 49 ++++++++++++++++------------------------ Firmware/config.h | 4 ++-- Firmware/ultralcd.cpp | 27 +++++++++++----------- Firmware/ultralcd.h | 7 ++++-- 4 files changed, 40 insertions(+), 47 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6f74d5a7e..7ecbe0e9e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9439,12 +9439,11 @@ static void handleSafetyTimer() } #endif //SAFETYTIMER -extern bool bMenuDetect; / -> .h -extern void lcd_status_screen(); / -> .h & 'static' void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h { -bool bInhibitFlag; #ifdef FILAMENT_SENSOR +bool bInhibitFlag; + if (mmu_enabled == false) { //-// if (mcode_in_progress != 600) //M600 not in progress @@ -9453,38 +9452,28 @@ bool bInhibitFlag; #endif // PAT9125 #ifdef IR_SENSOR bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active -//MYSERIAL.print("inhibit :: "); -//MYSERIAL.println(bInhibitFlag); -// & IR_SENSOR_ANALOG ??? -//bInhibitFlag|=(menu_menu==lcd_detect_IRsensor); // Settings::HWsetup::FSdetect menu active -//.bInhibitFlag=bInhibitFlag||(menu_menu==lcd_detect_IRsensor); // Settings::HWsetup::FSdetect menu active -bInhibitFlag=bInhibitFlag||bMenuDetect; // Settings::HWsetup::FSdetect menu active -//MYSERIAL.print(" :: "); -//MYSERIAL.println(bInhibitFlag); -//MYSERIAL.println(current_voltage_raw_IR); +#ifdef IR_SENSOR_ANALOG + bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active +#endif // IR_SENSOR_ANALOG #endif // IR_SENSOR if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active { if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { -// ***** -// & IR_SENSOR_ANALOG ??? -bool bTemp; -bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot -bTemp=bTemp&&(target_temperature[0]==0); // & bed (& dalsi extrudery) -bTemp=bTemp&&(menu_menu==lcd_status_screen); -bTemp=bTemp&&((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); -bTemp=bTemp&&fsensor_enabled; -if(bTemp) - { - MYSERIAL.println(current_voltage_raw_IR); - MYSERIAL.println("!!!!! -> 03b !!!!!"); - oFsensorPCB=ClFsensorPCB::_Rev03b; - //bTemp=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("?potvrdit?"),false,true); - //MYSERIAL.println(bTemp); - lcd_setstatuspgm(_i("!!! -> 03b !!!")); - } -// ***** +#ifdef IR_SENSOR_ANALOG + bool bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot + bTemp=bTemp&&(target_temperature[0]==0); // & bed (& dalsi extrudery) + bTemp=bTemp&&(menu_menu==lcd_status_screen); + bTemp=bTemp&&((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); + bTemp=bTemp&&fsensor_enabled; + if(bTemp) + { + oFsensorPCB=ClFsensorPCB::_Rev03b; +// eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); + printf_P(PSTR("Filament sensor board change detected: revision 03b or newer\n")); + lcd_setstatuspgm(_i("FS rev. 03b or newer")); + } +#endif // IR_SENSOR_ANALOG if (fsensor_check_autoload()) { #ifdef PAT9125 diff --git a/Firmware/config.h b/Firmware/config.h index e6d81fe9b..ab93d798b 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -55,8 +55,8 @@ #define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE) //LANG - Multi-language support -#define LANG_MODE 0 // primary language only -//#define LANG_MODE 1 // sec. language support +//#define LANG_MODE 0 // primary language only +#define LANG_MODE 1 // sec. language support #define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 6c5fc3e2e..a2acd1b99 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -68,6 +68,10 @@ uint8_t SilentModeMenu_MMU = 1; //activate mmu unit stealth mode int8_t FSensorStateMenu = 1; +#if IR_SENSOR_ANALOG +bool bMenuFSDetect=false; +#endif //IR_SENSOR_ANALOG + #ifdef SDCARD_SORT_ALPHA bool presort_flag = false; @@ -114,8 +118,7 @@ static const char* lcd_display_message_fullscreen_nonBlocking_P(const char *msg, // void copy_and_scalePID_d(); /* Different menus */ -//-//static void lcd_status_screen(); - void lcd_status_screen(); +//static void lcd_status_screen(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") #if (LANG_MODE != 0) static void lcd_language_menu(); #endif @@ -237,8 +240,8 @@ static bool lcd_selftest_fsensor(); #endif //PAT9125 static bool selftest_irsensor(); #if IR_SENSOR_ANALOG -static bool lcd_selftest_IRsensor(bool bStandalone = false); -//-//static lcd_detect_IRsensor(); +static bool lcd_selftest_IRsensor(bool bStandalone=false); +static void lcd_detect_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(); @@ -977,7 +980,7 @@ void lcdui_print_status_screen(void) } // Main status screen. It's up to the implementation specific part to show what is needed. As this is very display dependent -static void lcd_status_screen() +void lcd_status_screen() // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") { if (firstrun == 1) { @@ -7552,24 +7555,22 @@ if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB) // safer then "(uint8_t)bPCBre return(true); } -bool bMenuDetect=false; -//static void lcd_detect_IRsensor() -void lcd_detect_IRsensor() +static void lcd_detect_IRsensor() { bool bAction; -bMenuDetect=true; +bMenuFSDetect=true; // inhibits some code inside "manage_inactivity()" bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); if(!bAction) { - lcd_show_fullscreen_message_and_wait_P(_i("... vyjmi & opakuj ...")); + lcd_show_fullscreen_message_and_wait_P(_i("... so unload the filament and repeat action!")); return; } bAction=lcd_selftest_IRsensor(true); if(bAction) - lcd_show_fullscreen_message_and_wait_P(_i("... povedlo se - VYJMI!!! ...")); -else lcd_show_fullscreen_message_and_wait_P(_i("... NEpovedlo se - VYJMI!!!...")); -bMenuDetect=false; + lcd_show_fullscreen_message_and_wait_P(_i("PCB check successful - withdraw the filament now!")); +else lcd_show_fullscreen_message_and_wait_P(_i("PCB check unsuccessful - withdraw the filament now!")); +bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index c9a9d65d1..ca64659ae 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -55,11 +55,10 @@ extern bool lcd_selftest(); void lcd_menu_statistics(); +void lcd_status_screen(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") void lcd_menu_extruder_info(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") void lcd_menu_show_sensors_state(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") - void lcd_detect_IRsensor(); // NOT static due to using inside "Marlin_main" module ("manage_inactivity()") - #ifdef TMC2130 bool lcd_crash_detect_enabled(); void lcd_crash_detect_enable(); @@ -141,6 +140,10 @@ extern uint8_t farm_status; #define SILENT_MODE_OFF SILENT_MODE_POWER #endif +#if IR_SENSOR_ANALOG +extern bool bMenuFSDetect; +#endif //IR_SENSOR_ANALOG + extern int8_t SilentModeMenu; extern uint8_t SilentModeMenu_MMU; From 0eaa4edfee5ce1b76c279c809cc0f4e02935ace4 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Mon, 2 Mar 2020 21:18:11 +0100 Subject: [PATCH 202/361] configuration update --- Firmware/Marlin_main.cpp | 5 +++-- Firmware/ultralcd.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 7ecbe0e9e..cbf42c9a5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -46,6 +46,7 @@ //-// #include "Configuration.h" #include "Marlin.h" +#include "config.h" #ifdef ENABLE_AUTO_BED_LEVELING #include "vector_3.h" @@ -9452,7 +9453,7 @@ bool bInhibitFlag; #endif // PAT9125 #ifdef IR_SENSOR bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active -#ifdef IR_SENSOR_ANALOG +#if IR_SENSOR_ANALOG bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active #endif // IR_SENSOR_ANALOG #endif // IR_SENSOR @@ -9460,7 +9461,7 @@ bool bInhibitFlag; { if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { -#ifdef IR_SENSOR_ANALOG +#if IR_SENSOR_ANALOG bool bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot bTemp=bTemp&&(target_temperature[0]==0); // & bed (& dalsi extrudery) bTemp=bTemp&&(menu_menu==lcd_status_screen); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a2acd1b99..845ab3fd8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2151,6 +2151,7 @@ static void lcd_support_menu() MENU_ITEM_BACK_P(_i("Date:"));////MSG_DATE c=17 r=1 MENU_ITEM_BACK_P(PSTR(__DATE__)); +#if IR_SENSOR_ANALOG MENU_ITEM_BACK_P(STR_SEPARATOR); MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:")); switch(oFsensorPCB) @@ -2167,6 +2168,7 @@ static void lcd_support_menu() default: MENU_ITEM_BACK_P(PSTR(" unknown")); } +#endif // IR_SENSOR_ANALOG MENU_ITEM_BACK_P(STR_SEPARATOR); if (mmu_enabled) From f09323a78f6c3db246c99c62fef4999e791385c1 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Tue, 3 Mar 2020 14:57:45 +0100 Subject: [PATCH 203/361] heaters-checking update --- Firmware/Marlin_main.cpp | 2 +- Firmware/temperature.cpp | 8 ++++++++ Firmware/temperature.h | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index cbf42c9a5..dd1a9e72e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9463,7 +9463,7 @@ bool bInhibitFlag; { #if IR_SENSOR_ANALOG bool bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot - bTemp=bTemp&&(target_temperature[0]==0); // & bed (& dalsi extrudery) + bTemp=bTemp&&(!CHECK_ALL_HEATERS); bTemp=bTemp&&(menu_menu==lcd_status_screen); bTemp=bTemp&&((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); bTemp=bTemp&&fsensor_enabled; diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 88674cf98..b8c4fc27f 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -210,6 +210,14 @@ static void temp_runaway_check(int _heater_id, float _target_temperature, float static void temp_runaway_stop(bool isPreheat, bool isBed); #endif +// return "false", if all extruder-heaters are 'off' (ie. "true", if any heater is 'on') +bool checkAllHotends(void) +{ + bool result=false; + for(int i=0;i Date: Thu, 5 Mar 2020 11:22:35 +0200 Subject: [PATCH 204/361] Decouple XYZ relative from E relative. --- Firmware/Configuration_adv.h | 1 - Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 26 +++++++++++--------------- Firmware/mmu.cpp | 6 +++--- Firmware/ultralcd.cpp | 5 +---- 5 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index d25b345c3..ab9274243 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -152,7 +152,6 @@ #define Z_HOME_RETRACT_MM 2 //#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. -#define AXIS_RELATIVE_MODES {0, 0, 0, 0} #define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step). Toshiba steppers are 4x slower, but Prusa3D does not use those. //By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN 0 diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index a0b3c19b8..363407e2e 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -294,7 +294,7 @@ void setPwmFrequency(uint8_t pin, int val); extern bool fans_check_enabled; extern float homing_feedrate[]; -extern bool axis_relative_modes[]; +extern uint8_t axis_relative_modes; extern float feedrate; extern int feedmultiply; extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1dcb89389..0d3fce5ba 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -178,9 +178,7 @@ float default_retraction = DEFAULT_RETRACTION; float homing_feedrate[] = HOMING_FEEDRATE; -// Currently only the extruder axis may be switched to a relative mode. -// Other axes are always absolute or relative based on the common relative_mode flag. -bool axis_relative_modes[] = AXIS_RELATIVE_MODES; +uint8_t axis_relative_modes; int feedmultiply=100; //100->1 200->2 int extrudemultiply=100; //100->1 200->2 int extruder_multiply[EXTRUDERS] = {100 @@ -5367,21 +5365,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G90 - Switch off relative mode G90: Set to Absolute Positioning - All coordinates from now on are absolute relative to the origin of the machine. E axis is also switched to absolute mode. + All coordinates from now on are absolute relative to the origin of the machine. */ case 90: { - for(uint8_t i = 0; i != NUM_AXIS; ++i) - axis_relative_modes[i] = false; + axis_relative_modes &= ~(X_AXIS_MASK | Y_AXIS_MASK | Z_AXIS_MASK); } break; /*! ### G91 - Switch on relative mode G91: Set to Relative Positioning - All coordinates from now on are relative to the last position. E axis is also switched to relative mode. + All coordinates from now on are relative to the last position. */ case 91: { - for(uint8_t i = 0; i != NUM_AXIS; ++i) - axis_relative_modes[i] = true; + axis_relative_modes |= X_AXIS_MASK | Y_AXIS_MASK | Z_AXIS_MASK; } break; @@ -6558,7 +6554,7 @@ Sigma_Exit: Makes the extruder interpret extrusion as absolute positions. */ case 82: - axis_relative_modes[E_AXIS] = false; + axis_relative_modes &= ~E_AXIS_MASK; break; /*! @@ -6566,7 +6562,7 @@ Sigma_Exit: Makes the extruder interpret extrusion values as relative positions. */ case 83: - axis_relative_modes[E_AXIS] = true; + axis_relative_modes |= E_AXIS_MASK; break; /*! @@ -9190,7 +9186,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]; + bool relative = axis_relative_modes & (1 << i); destination[i] = (float)code_value(); if (i == E_AXIS) { float emult = extruder_multiplier[active_extruder]; @@ -10589,7 +10585,7 @@ void uvlo_() // 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); + eeprom_update_byte((uint8_t*)EEPROM_UVLO_E_ABS, (axis_relative_modes & E_AXIS_MASK)?0:1); // Clean the input command queue, inhibit serial processing using saved_printing cmdqueue_reset(); @@ -11178,7 +11174,7 @@ void stop_and_save_print_to_ram(float z_move, float e_move) saved_feedmultiply2 = feedmultiply; //save feedmultiply saved_active_extruder = active_extruder; //save active_extruder saved_extruder_temperature = degTargetHotend(active_extruder); - saved_extruder_relative_mode = axis_relative_modes[E_AXIS]; + saved_extruder_relative_mode = axis_relative_modes & E_AXIS_MASK; saved_fanSpeed = fanSpeed; cmdqueue_reset(); //empty cmdqueue card.sdprinting = false; @@ -11260,7 +11256,7 @@ void restore_print_from_ram_and_continue(float e_move) wait_for_heater(_millis(), saved_active_extruder); heating_status = 2; } - axis_relative_modes[E_AXIS] = saved_extruder_relative_mode; + axis_relative_modes ^= (-saved_extruder_relative_mode ^ axis_relative_modes) & E_AXIS_MASK; float e = saved_pos[E_AXIS] - e_move; plan_set_e_position(e); diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index b34658287..aaa09f70f 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -795,8 +795,8 @@ void mmu_load_to_nozzle() { st_synchronize(); - bool saved_e_relative_mode = axis_relative_modes[E_AXIS]; - if (!saved_e_relative_mode) axis_relative_modes[E_AXIS] = true; + const bool saved_e_relative_mode = axis_relative_modes & E_AXIS_MASK; + if (!saved_e_relative_mode) axis_relative_modes |= E_AXIS_MASK; if (ir_sensor_detected) { current_position[E_AXIS] += 3.0f; @@ -820,7 +820,7 @@ void mmu_load_to_nozzle() feedrate = 871; plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); st_synchronize(); - if (!saved_e_relative_mode) axis_relative_modes[E_AXIS] = false; + if (!saved_e_relative_mode) axis_relative_modes &= ~E_AXIS_MASK; } void mmu_M600_wait_and_beep() { diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index fc39b1405..d991bb5e9 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7349,10 +7349,7 @@ void lcd_print_stop() 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; + axis_relative_modes = E_AXIS_MASK; //XYZ absolute, E relative isPrintPaused = false; //clear isPrintPaused flag to allow starting next print after pause->stop scenario. } From 890c1372980588c48d3933b4b9a22e468b5b2b44 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 5 Mar 2020 11:29:16 +0200 Subject: [PATCH 205/361] Initialize all axis as absolute at the beginning. --- 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 0d3fce5ba..a606403a5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -178,7 +178,7 @@ float default_retraction = DEFAULT_RETRACTION; float homing_feedrate[] = HOMING_FEEDRATE; -uint8_t axis_relative_modes; +uint8_t axis_relative_modes = 0; int feedmultiply=100; //100->1 200->2 int extrudemultiply=100; //100->1 200->2 int extruder_multiply[EXTRUDERS] = {100 From f71bbfe95e5eab4d52af21f455a93bdfe2d417ab Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Tue, 10 Mar 2020 00:11:17 +0100 Subject: [PATCH 206/361] tresholds specification, steady delay --- Firmware/Marlin_main.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dd1a9e72e..6b5f24700 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9440,10 +9440,14 @@ static void handleSafetyTimer() } #endif //SAFETYTIMER +#define FS_CHECK_COUNT 15 void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h { #ifdef FILAMENT_SENSOR bool bInhibitFlag; +#if IR_SENSOR_ANALOG +static uint8_t nFSCheckCount=0; +#endif // IR_SENSOR_ANALOG if (mmu_enabled == false) { @@ -9462,18 +9466,25 @@ bool bInhibitFlag; if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { #if IR_SENSOR_ANALOG - bool bTemp=current_voltage_raw_IR>14000; // nahradit prumerem @ vicero hodnot + bool bTemp=current_voltage_raw_IR>IRsensor_Hmin_TRESHOLD; + bTemp=bTemp&¤t_voltage_raw_IRFS_CHECK_COUNT) + { + nFSCheckCount=0; // not necessary + oFsensorPCB=ClFsensorPCB::_Rev03b; +// eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); + printf_P(PSTR("Filament sensor board change detected: revision 03b or newer\n")); + lcd_setstatuspgm(_i("FS rev. 03b or newer")); + } } + else nFSCheckCount=0; #endif // IR_SENSOR_ANALOG if (fsensor_check_autoload()) { From ff479afd88ba612db7a5bbfc26c4fa190efc4aa5 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Tue, 10 Mar 2020 15:51:48 +0100 Subject: [PATCH 207/361] version for testing / final review --- Firmware/Marlin_main.cpp | 2 +- Firmware/ultralcd.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6b5f24700..d0ee5a3b9 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9479,7 +9479,7 @@ static uint8_t nFSCheckCount=0; { nFSCheckCount=0; // not necessary oFsensorPCB=ClFsensorPCB::_Rev03b; -// eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); printf_P(PSTR("Filament sensor board change detected: revision 03b or newer\n")); lcd_setstatuspgm(_i("FS rev. 03b or newer")); } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 845ab3fd8..c23f2a236 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7586,7 +7586,8 @@ bool lcd_selftest() int _progress = 0; bool _result = true; bool _swapped_fan = false; -#if IR_SENSOR_ANALOG +//#if IR_SENSOR_ANALOG +#if (0) bool bAction; bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); if(!bAction) @@ -7598,7 +7599,7 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - _delay(2000); +// _delay(2000); FORCE_BL_ON_START; @@ -7795,7 +7796,8 @@ bool lcd_selftest() _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK } #endif //PAT9125 -#if IR_SENSOR_ANALOG +//#if IR_SENSOR_ANALOG +#if (0) _progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor _result = lcd_selftest_IRsensor(); if (_result) From 2818316366f424a04f22ea522141f7cc2fc472d7 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 12 Mar 2020 12:34:33 +0100 Subject: [PATCH 208/361] Started EEPROM Table doxygen documentation --- Firmware/Marlin_main.cpp | 4 +- Firmware/eeprom.h | 114 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1dcb89389..d0a4122f4 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9124,8 +9124,8 @@ Sigma_Exit: #### End of D-Codes */ - /** @defgroup GCodes G-Code List - */ +/** @defgroup GCodes G-Code List +*/ // --------------------------------------------------- diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index f0544f395..7f431d247 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -1,3 +1,11 @@ + +/** + * @file + */ + /** \ingroup eeprom_table */ + //! _This is a EEPROM table of currently implemented in Prusa firmware (dynamically generated from doxygen)._ + + #ifndef EEPROM_H #define EEPROM_H @@ -26,6 +34,110 @@ typedef struct #ifdef __cplusplus static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEPROM_SHEETS_SIZEOF."); #endif +/** @defgroup eeprom_table EEPROM Table + * + + --------------------------------------------------------------------------------- + EEPROM 8-bit Empty value = 0xFFh 255 + + EEPROM 16-bit Empty value = 0xFFFFh 65535 + + --------------------------------------------------------------------------------- + How can you use the debug codes? + - Serial terminal like Putty. + - Octoprint does support D-codes + - _Pronterface_ does not support D-codes + + + --------------------------------------------------------------------------------- + + + +
EEPROM Table
Adress begin Bit/Type Name Valid values Default/FactoryResetDescription Debug code +
0x0FFFh 4095ucharEEPROM_SILENT 00h 0 ??? TMC Stealth mode off / miniRambo Power mode D3 Ax0fff C1 +
01h 1 TMC Stealth mode on / miniRambo Silent mode +
02h 2 Auto mode +
0x0FFEh 4094ucharEEPROM_LANG 00h 0 00h 0 English / LANG_ID_PRI D3 Ax0ffe C1 +
01h 1 Other language LANG_ID_SEC +
0x0FFCh 4092 uint16 EEPROM_BABYSTEP_X ??? ffh 255 Babystep for X axis _unsued_ D3 Ax0ffc C2 +
0x0FFAh 4090 uint16 EEPROM_BABYSTEP_Y ??? ffh 222 Babystep for Y axis _unsued_ D3 Ax0ffa C2 +
0x0FF8h 4088uint16EEPROM_BABYSTEP_Z ??? ffh 255 Babystep for Z axis _lagacy_ D3 Ax0ff8 C2 +
multiple values stored now in EEPROM_Sheets_base +
0x0FF7h 4087uint8EEPROM_CALIBRATION_STATUS 00h 0 ffh 255 Unknown D3 Ax0ff7 C1 +
01h 1 Calibrated +
E6h 230 needs Live Z adjustment +
F0h 240 needs Z calibration +
FAh 250 needs XYZ calibration +
FFh 255 Assbemled _default_ +
0x0FF5h 4085 uint16 EEPROM_BABYSTEP_Z0 ??? ??? Babystep for Z ??? D3 Ax0ff5 C2 +
0x0FF1h 4081 uint32 EEPROM_FILAMENTUSED ??? 00h 0 Filament used in meters D3 Ax0ff1 C4 +
0x0FEDh 4077 uint32 EEPROM_TOTALTIME ??? 00h 0 Total print time D3 Ax0fed C4 +
0x0FE5h 4069floatEEPROM_BED_CALIBRATION_CENTER ??? ??? ??? D3 Ax0fe5 C8 +
??? +
0x0FDDh 4061floatEEPROM_BED_CALIBRATION_VEC_X ??? ??? ??? D3 Ax0fdd C8 +
??? +
0x0FD5h 4053floatEEPROM_BED_CALIBRATION_VEC_Y ??? ??? ??? D3 Ax0fd5 C8 +
??? +
0x0FC5h 4037int16EEPROM_BED_CALIBRATION_Z_JITTER??? ??? ??? D3 Ax0fc5 C16 +
??? +
??? +
??? +
??? +
??? +
??? +
??? +
0x0FC4h 4036boolEEPROM_FARM_MODE 00h 0 00h 0 Prusa farm mode off D3 Ax0fc4 C1 +
ffh 255 Prusa farm mode on +
0x0FC1h 4033 int16 EEPROM_FARM_NUMBER ??? ff ff ffh Prusa farm number D3 Ax0fc1 C3 +
0x0FC0h 4032boolEEPROM_BED_CORRECTION_VALID 00h 0 00h 0 Bed correction invalid D3 Ax0fc0 C1 +
ffh 255 Bed correction valid +
0x0FBFh 4031charEEPROM_BED_CORRECTION_LEFT 00h FFh 00h 0 Bed manual correction left D3 Ax0fbf C1 +
At this moment limited to +-100um +
0x0FBEh 4030charEEPROM_BED_CORRECTION_RIGHT 00h FFh 00h 0 Bed manual correction right D3 Ax0fbe C1 +
At this moment limited to +-100um +
0x0FBDh 4029charEEPROM_BED_CORRECTION_FRONT 00h FFh 00h 0 Bed manual correction front D3 Ax0fbd C1 +
At this moment limited to +-100um +
0x0FBCh 4028charEEPROM_BED_CORRECTION_BACK 00h FFh 00h 0 Bed manual correction back D3 Ax0fbc C1 +
At this moment limited to +-100um +
0x0FBBh 4027boolEEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY 00h 0 00h 0 Toshiba Air off D3 Ax0fbb C1 +
ffh 255 Toshiba Air oon +
0x0FBAh 4026 uchar EEPROM_PRINT_FLAG ??? ??? _unsued_ D3 Ax0fba C1 +
0x0FB0h 4016int16EEPROM_PROBE_TEMP_SHIFT ??? ??? ??? D3 Ax0fb0 C10 +
??? +
??? +
??? +
??? +
0x0FAFh 4015boolEEPROM_TEMP_CAL_ACTIVE 00h 0 00h 0 PINDA Temp cal. inactive D3 Ax0faf C1 +
FFh 255 PINDA Temp cal. active +
0x0FA7h 4007uint32EEPROM_BOWDEN_LENGTH ??? ff 00 ff ffh Bowden length D3 Ax0fae C8 +
ff ff ff ffh +
0x0FA6h 4006uint8EEPROM_CALIBRATION_STATUS_PINDA 00h 0 ffh 255 PINDA Temp not calibrated D3 Ax0fa6 C1 +
01h 1 PINDA Temp calibrated +
0x0FA5h 4005uint8EEPROM_UVLO 00h 0 ffh 255 Power Panic flag inactive D3 Ax0fa5 C1 +
01h 1 Power Panic flag active +
02h 2 Power Panic flag ??? +
0x0F9Dh 3997floatEEPROM_UVLO_CURRENT_POSITION ??? ffh 255 Power Panic position D3 Ax0f9d C8 +
??? +
0x0F95h 3989charEEPROM_FILENAME ??? ffh 255 Power Panic Filename D3 Ax0f95 C8 +
??? +
??? +
??? +
??? +
??? +
??? +
??? +
0x0F91h 39851 unit32 EEPROM_FILE_POSITION ??? ff ff ff ffh Power Panic File Postion D3 Ax0f91 C4 +
0x0F8Dh 3981 float EEPROM_UVLO_CURRENT_POSITION_Z ??? ff ff ff ffh Power Panic Z Position D3 Ax0f8d C4 +
0x0F8Ch 3980???EEPROM_UVLO_UNUSED_001 ??? ffh 255 Power Panic UNUSED D3 Ax0f8c C1 +
0x0F8Bh 3979uint8EEPROM_UVLO_TARGET_BED ??? ffh 255 Power Panic Bed temperature D3 Ax0f8b C1 +
0x0F89h 3977uint16EEPROM_UVLO_FEEDRATE ??? ff ffh 65535 Power Panic Feedrate D3 Ax0f89 C2 +
0x0F88h 3976uint8EEPROM_UVLO_FAN_SPEED ??? ffh 255 Power Panic Fan speed D3 Ax0f88 C1 +
0x0F87h 3975uint8EEPROM_FAN_CHECK_ENABLED 00h 0 Fan Check disabled D3 Ax0f87 C1 +
01h 1 ffh 255 Fan Check enabled (exception ffh=01h) + + +
+*/ #define EEPROM_EMPTY_VALUE 0xFF #define EEPROM_EMPTY_VALUE16 0xFFFF @@ -230,6 +342,7 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); // Magic string, indicating that the current or the previous firmware running was the Prusa3D firmware. #define EEPROM_FIRMWARE_PRUSA_MAGIC 0 + #ifdef __cplusplus #include "ConfigurationStore.h" static_assert(EEPROM_FIRMWARE_VERSION_END < 20, "Firmware version EEPROM address conflicts with EEPROM_M500_base"); @@ -256,3 +369,4 @@ void eeprom_switch_to_next_sheet(); #endif #endif // EEPROM_H + From 4d40ed67f67bda91ab1c8e87266191ffeece9ef3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 12 Mar 2020 12:36:48 +0100 Subject: [PATCH 209/361] remove LF --- Firmware/eeprom.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 7f431d247..07cb2a9c1 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -342,7 +342,6 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); // Magic string, indicating that the current or the previous firmware running was the Prusa3D firmware. #define EEPROM_FIRMWARE_PRUSA_MAGIC 0 - #ifdef __cplusplus #include "ConfigurationStore.h" static_assert(EEPROM_FIRMWARE_VERSION_END < 20, "Firmware version EEPROM address conflicts with EEPROM_M500_base"); @@ -369,4 +368,3 @@ void eeprom_switch_to_next_sheet(); #endif #endif // EEPROM_H - From c8fc5b2fed52a813532c3f469162bc966216f685 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 20 Mar 2020 10:44:12 +0100 Subject: [PATCH 210/361] Simpler tabel syntax --- Firmware/eeprom.h | 172 +++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 87 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 07cb2a9c1..9322ca0f7 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -50,95 +50,93 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP --------------------------------------------------------------------------------- - - - -
EEPROM Table
Adress begin Bit/Type Name Valid values Default/FactoryResetDescription Debug code -
0x0FFFh 4095ucharEEPROM_SILENT 00h 0 ??? TMC Stealth mode off / miniRambo Power mode D3 Ax0fff C1 -
01h 1 TMC Stealth mode on / miniRambo Silent mode -
02h 2 Auto mode -
0x0FFEh 4094ucharEEPROM_LANG 00h 0 00h 0 English / LANG_ID_PRI D3 Ax0ffe C1 -
01h 1 Other language LANG_ID_SEC -
0x0FFCh 4092 uint16 EEPROM_BABYSTEP_X ??? ffh 255 Babystep for X axis _unsued_ D3 Ax0ffc C2 -
0x0FFAh 4090 uint16 EEPROM_BABYSTEP_Y ??? ffh 222 Babystep for Y axis _unsued_ D3 Ax0ffa C2 -
0x0FF8h 4088uint16EEPROM_BABYSTEP_Z ??? ffh 255 Babystep for Z axis _lagacy_ D3 Ax0ff8 C2 -
multiple values stored now in EEPROM_Sheets_base -
0x0FF7h 4087uint8EEPROM_CALIBRATION_STATUS 00h 0 ffh 255 Unknown D3 Ax0ff7 C1 -
01h 1 Calibrated -
E6h 230 needs Live Z adjustment -
F0h 240 needs Z calibration -
FAh 250 needs XYZ calibration -
FFh 255 Assbemled _default_ -
0x0FF5h 4085 uint16 EEPROM_BABYSTEP_Z0 ??? ??? Babystep for Z ??? D3 Ax0ff5 C2 -
0x0FF1h 4081 uint32 EEPROM_FILAMENTUSED ??? 00h 0 Filament used in meters D3 Ax0ff1 C4 -
0x0FEDh 4077 uint32 EEPROM_TOTALTIME ??? 00h 0 Total print time D3 Ax0fed C4 -
0x0FE5h 4069floatEEPROM_BED_CALIBRATION_CENTER ??? ??? ??? D3 Ax0fe5 C8 -
??? -
0x0FDDh 4061floatEEPROM_BED_CALIBRATION_VEC_X ??? ??? ??? D3 Ax0fdd C8 -
??? -
0x0FD5h 4053floatEEPROM_BED_CALIBRATION_VEC_Y ??? ??? ??? D3 Ax0fd5 C8 -
??? -
0x0FC5h 4037int16EEPROM_BED_CALIBRATION_Z_JITTER??? ??? ??? D3 Ax0fc5 C16 -
??? -
??? -
??? -
??? -
??? -
??? -
??? -
0x0FC4h 4036boolEEPROM_FARM_MODE 00h 0 00h 0 Prusa farm mode off D3 Ax0fc4 C1 -
ffh 255 Prusa farm mode on -
0x0FC1h 4033 int16 EEPROM_FARM_NUMBER ??? ff ff ffh Prusa farm number D3 Ax0fc1 C3 -
0x0FC0h 4032boolEEPROM_BED_CORRECTION_VALID 00h 0 00h 0 Bed correction invalid D3 Ax0fc0 C1 -
ffh 255 Bed correction valid -
0x0FBFh 4031charEEPROM_BED_CORRECTION_LEFT 00h FFh 00h 0 Bed manual correction left D3 Ax0fbf C1 -
At this moment limited to +-100um -
0x0FBEh 4030charEEPROM_BED_CORRECTION_RIGHT 00h FFh 00h 0 Bed manual correction right D3 Ax0fbe C1 -
At this moment limited to +-100um -
0x0FBDh 4029charEEPROM_BED_CORRECTION_FRONT 00h FFh 00h 0 Bed manual correction front D3 Ax0fbd C1 -
At this moment limited to +-100um -
0x0FBCh 4028charEEPROM_BED_CORRECTION_BACK 00h FFh 00h 0 Bed manual correction back D3 Ax0fbc C1 -
At this moment limited to +-100um -
0x0FBBh 4027boolEEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY 00h 0 00h 0 Toshiba Air off D3 Ax0fbb C1 -
ffh 255 Toshiba Air oon -
0x0FBAh 4026 uchar EEPROM_PRINT_FLAG ??? ??? _unsued_ D3 Ax0fba C1 -
0x0FB0h 4016int16EEPROM_PROBE_TEMP_SHIFT ??? ??? ??? D3 Ax0fb0 C10 -
??? -
??? -
??? -
??? -
0x0FAFh 4015boolEEPROM_TEMP_CAL_ACTIVE 00h 0 00h 0 PINDA Temp cal. inactive D3 Ax0faf C1 -
FFh 255 PINDA Temp cal. active -
0x0FA7h 4007uint32EEPROM_BOWDEN_LENGTH ??? ff 00 ff ffh Bowden length D3 Ax0fae C8 -
ff ff ff ffh -
0x0FA6h 4006uint8EEPROM_CALIBRATION_STATUS_PINDA 00h 0 ffh 255 PINDA Temp not calibrated D3 Ax0fa6 C1 -
01h 1 PINDA Temp calibrated -
0x0FA5h 4005uint8EEPROM_UVLO 00h 0 ffh 255 Power Panic flag inactive D3 Ax0fa5 C1 -
01h 1 Power Panic flag active -
02h 2 Power Panic flag ??? -
0x0F9Dh 3997floatEEPROM_UVLO_CURRENT_POSITION ??? ffh 255 Power Panic position D3 Ax0f9d C8 -
??? -
0x0F95h 3989charEEPROM_FILENAME ??? ffh 255 Power Panic Filename D3 Ax0f95 C8 -
??? -
??? -
??? -
??? -
??? -
??? -
??? -
0x0F91h 39851 unit32 EEPROM_FILE_POSITION ??? ff ff ff ffh Power Panic File Postion D3 Ax0f91 C4 -
0x0F8Dh 3981 float EEPROM_UVLO_CURRENT_POSITION_Z ??? ff ff ff ffh Power Panic Z Position D3 Ax0f8d C4 -
0x0F8Ch 3980???EEPROM_UVLO_UNUSED_001 ??? ffh 255 Power Panic UNUSED D3 Ax0f8c C1 -
0x0F8Bh 3979uint8EEPROM_UVLO_TARGET_BED ??? ffh 255 Power Panic Bed temperature D3 Ax0f8b C1 -
0x0F89h 3977uint16EEPROM_UVLO_FEEDRATE ??? ff ffh 65535 Power Panic Feedrate D3 Ax0f89 C2 -
0x0F88h 3976uint8EEPROM_UVLO_FAN_SPEED ??? ffh 255 Power Panic Fan speed D3 Ax0f88 C1 -
0x0F87h 3975uint8EEPROM_FAN_CHECK_ENABLED 00h 0 Fan Check disabled D3 Ax0f87 C1 -
01h 1 ffh 255 Fan Check enabled (exception ffh=01h) + + ## EEPROM Tabel + +| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Debug code +| :--: | :--: | :--: | :--: | :--: | :--: | :--: +| 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode off / miniRambo Power mode | D3 Ax0fff C1 +| ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode on / miniRambo Silent mode | ^ +| 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | D3 Ax0ffe C1 +| ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ +| 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ffh 255 | Babystep for X axis _unsued_ | D3 Ax0ffc C2 +| 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ffh 255 | Babystep for Y axis _unsued_ | D3 Ax0ffa C2 +| 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ffh 255 | Babystep for Z axis _lagacy_ | D3 Ax0ff8 C2 +| ^ | ^ | ^ | ^ | ^ | multiple values stored now in EEPROM_Sheets_base | ^ +| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | 00h 0 | ffh 255 | Unknown | D3 Ax0ff7 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ +| ^ | ^ | ^ | E6h 230 | ^ | needs Live Z adjustment | ^ +| ^ | ^ | ^ | F0h 240 | ^ | needs Z calibration | ^ +| ^ | ^ | ^ | FAh 250 | ^ | needs XYZ calibration | ^ +| ^ | ^ | ^ | FFh 255 | ^ | Assbemled _default_ | ^ +| 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ??? | Babystep for Z ??? | D3 Ax0ff5 C2 +| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00h 0 | Filament used in meters | D3 Ax0ff1 C4 +| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00h 0 | Total print time | D3 Ax0fed C4 +| 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ??? | ??? | D3 Ax0fe5 C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ??? | ??? | D3 Ax0fdd C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| 0x0FD5h 4053 | float | EEPROM_BED_CALIBRATION_VEC_Y | ??? | ??? | ??? | D3 Ax0fd5 C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| 0x0FC5h 4037 | int16 | EEPROM_BED_CALIBRATION_Z_JITTER | ??? | ??? | ??? | D3 Ax0fc5 C16 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | 00h 0 | Prusa farm mode off | D3 Ax0fc4 C1 +| ^ | ^ | ^ | ??? | ffh 255 | Prusa farm mode on | ^ +| 0x0FC1h 4033 | int16 | EEPROM_FARM_NUMBER | ??? | ff ff ffh | Prusa farm number | D3 Ax0fc1 C3 +| 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | D3 Ax0fc0 C1 +| ^ | ^ | ^ | ffh 255 | | Bed correction valid ^ | ^ +| 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | D3 Ax0fbf C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ +| 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | D3 Ax0fbe C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ +| 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h FFh | 00h 0 | Bed manual correction front | D3 Ax0fbd C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ +| 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | D3 Ax0fbc C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ +| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air off | D3 Ax0fbb C1 +| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air oon | ^ +| 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | D3 Ax0fba C1 +| 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | D3 Ax0fb0 C10 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ +| 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal. inactive | D3 Ax0faf C1 +| ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal. active | ^ +| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | D3 Ax0fae C8 +| ^ | ^ | ^ | ??? | ff ff ff ffh | ^ | ^ +| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp not calibrated | D3 Ax0fa6 C1 +| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp calibrated | ^ +| 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag inactive | D3 Ax0fa5 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag active | ^ +| ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag ??? | ^ +| 0x0F9Dh 3997 | float | EEPROM_UVLO_CURRENT_POSITION | ??? | ffh 255 | Power Panic position | D3 Ax0f9d C8 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| 0x0F95h 3989 | char | EEPROM_FILENAME | ??? | ffh 255 | Power Panic Filename | D3 Ax0f95 C8 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ +| 0x0F91h 39851 | unit32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | D3 Ax0f91 C4 +| 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | D3 Ax0f8d C4 +| 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic UNUSED | D3 Ax0f8c C1 +| 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | D3 Ax0f8b C1 +| 0x0F89h 3977 | uint16 | EEPROM_UVLO_FEEDRATE | ??? | ff ffh 65535 | Power Panic Feedrate | D3 Ax0f89 C2 +| 0x0F88h 3976 | uint8 | EEPROM_UVLO_FAN_SPEED | ??? | ffh 255 | Power Panic Fan speed | D3 Ax0f88 C1 +| 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check disabled | D3 Ax0f87 C1 +| ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check enabled (exception ffh=01h) | ^ -
-*/ - + */ #define EEPROM_EMPTY_VALUE 0xFF #define EEPROM_EMPTY_VALUE16 0xFFFF // The total size of the EEPROM is From 2591f8d5931cc722098ae0bee80b1dd0f94ff8fc Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 20 Mar 2020 12:36:26 +0100 Subject: [PATCH 211/361] Added and tested more... ... have to take a short break --- Firmware/eeprom.h | 202 +++++++++++++++++++++++++++------------------- 1 file changed, 118 insertions(+), 84 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 9322ca0f7..d47b0cad4 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -53,90 +53,124 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP ## EEPROM Tabel -| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Debug code -| :--: | :--: | :--: | :--: | :--: | :--: | :--: -| 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode off / miniRambo Power mode | D3 Ax0fff C1 -| ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode on / miniRambo Silent mode | ^ -| 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | D3 Ax0ffe C1 -| ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ -| 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ffh 255 | Babystep for X axis _unsued_ | D3 Ax0ffc C2 -| 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ffh 255 | Babystep for Y axis _unsued_ | D3 Ax0ffa C2 -| 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ffh 255 | Babystep for Z axis _lagacy_ | D3 Ax0ff8 C2 -| ^ | ^ | ^ | ^ | ^ | multiple values stored now in EEPROM_Sheets_base | ^ -| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | 00h 0 | ffh 255 | Unknown | D3 Ax0ff7 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ -| ^ | ^ | ^ | E6h 230 | ^ | needs Live Z adjustment | ^ -| ^ | ^ | ^ | F0h 240 | ^ | needs Z calibration | ^ -| ^ | ^ | ^ | FAh 250 | ^ | needs XYZ calibration | ^ -| ^ | ^ | ^ | FFh 255 | ^ | Assbemled _default_ | ^ -| 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ??? | Babystep for Z ??? | D3 Ax0ff5 C2 -| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00h 0 | Filament used in meters | D3 Ax0ff1 C4 -| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00h 0 | Total print time | D3 Ax0fed C4 -| 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ??? | ??? | D3 Ax0fe5 C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ??? | ??? | D3 Ax0fdd C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| 0x0FD5h 4053 | float | EEPROM_BED_CALIBRATION_VEC_Y | ??? | ??? | ??? | D3 Ax0fd5 C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| 0x0FC5h 4037 | int16 | EEPROM_BED_CALIBRATION_Z_JITTER | ??? | ??? | ??? | D3 Ax0fc5 C16 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | 00h 0 | Prusa farm mode off | D3 Ax0fc4 C1 -| ^ | ^ | ^ | ??? | ffh 255 | Prusa farm mode on | ^ -| 0x0FC1h 4033 | int16 | EEPROM_FARM_NUMBER | ??? | ff ff ffh | Prusa farm number | D3 Ax0fc1 C3 -| 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | D3 Ax0fc0 C1 -| ^ | ^ | ^ | ffh 255 | | Bed correction valid ^ | ^ -| 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | D3 Ax0fbf C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ -| 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | D3 Ax0fbe C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ -| 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h FFh | 00h 0 | Bed manual correction front | D3 Ax0fbd C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ -| 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | D3 Ax0fbc C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ -| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air off | D3 Ax0fbb C1 -| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air oon | ^ -| 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | D3 Ax0fba C1 -| 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | D3 Ax0fb0 C10 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ -| 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal. inactive | D3 Ax0faf C1 -| ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal. active | ^ -| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | D3 Ax0fae C8 -| ^ | ^ | ^ | ??? | ff ff ff ffh | ^ | ^ -| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp not calibrated | D3 Ax0fa6 C1 -| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp calibrated | ^ -| 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag inactive | D3 Ax0fa5 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag active | ^ -| ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag ??? | ^ -| 0x0F9Dh 3997 | float | EEPROM_UVLO_CURRENT_POSITION | ??? | ffh 255 | Power Panic position | D3 Ax0f9d C8 -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| 0x0F95h 3989 | char | EEPROM_FILENAME | ??? | ffh 255 | Power Panic Filename | D3 Ax0f95 C8 -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ -| 0x0F91h 39851 | unit32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | D3 Ax0f91 C4 -| 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | D3 Ax0f8d C4 -| 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic UNUSED | D3 Ax0f8c C1 -| 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | D3 Ax0f8b C1 -| 0x0F89h 3977 | uint16 | EEPROM_UVLO_FEEDRATE | ??? | ff ffh 65535 | Power Panic Feedrate | D3 Ax0f89 C2 -| 0x0F88h 3976 | uint8 | EEPROM_UVLO_FAN_SPEED | ??? | ffh 255 | Power Panic Fan speed | D3 Ax0f88 C1 -| 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check disabled | D3 Ax0f87 C1 -| ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check enabled (exception ffh=01h) | ^ - - - */ +| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code +| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: +| 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode off / miniRambo Power mode | LCD menu | D3 Ax0fff C1 +| ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode on / miniRambo Silent mode | ^ | ^ +| 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 +| ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ | ^ +| 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ffh 255 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 +| 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ffh 255 | Babystep for Y axis _unsued_ | ^ | D3 Ax0ffa C2 +| 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ffh 255 | Babystep for Z axis _lagacy_ | ^ | D3 Ax0ff8 C2 +| ^ | ^ | ^ | ^ | ^ | multiple values stored now in EEPROM_Sheets_base | ^ | ^ +| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | 00h 0 | ffh 255 | Unknown | ??? | D3 Ax0ff7 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ | ^ +| ^ | ^ | ^ | E6h 230 | ^ | needs Live Z adjustment | ^ | ^ +| ^ | ^ | ^ | F0h 240 | ^ | needs Z calibration | ^ | ^ +| ^ | ^ | ^ | FAh 250 | ^ | needs XYZ calibration | ^ | ^ +| ^ | ^ | ^ | FFh 255 | ^ | Assbemled _default_ | ^ | ^ +| 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ??? | Babystep for Z ??? | ??? | D3 Ax0ff5 C2 +| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00h 0 | Filament used in meters | ??? | D3 Ax0ff1 C4 +| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00h 0 | Total print time | ??? | D3 Ax0fed C4 +| 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ??? | ??? | ??? | D3 Ax0fe5 C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ??? | ??? | ??? | D3 Ax0fdd C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| 0x0FD5h 4053 | float | EEPROM_BED_CALIBRATION_VEC_Y | ??? | ??? | ??? | ??? | D3 Ax0fd5 C8 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| 0x0FC5h 4037 | int16 | EEPROM_BED_CALIBRATION_Z_JITTER | ??? | ??? | ??? | ??? | D3 Ax0fc5 C16 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode off | G99 | D3 Ax0fc4 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode on | G98 | ^ +| 0x0FC1h 4033 | int16 | EEPROM_FARM_NUMBER | ??? | ff ff ffh | Prusa farm number | ??? | D3 Ax0fc1 C3 +| 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 +| ^ | ^ | ^ | ffh 255 | | Bed correction valid ^ | ??? | ^ +| 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | LCD menu | D3 Ax0fbe C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h FFh | 00h 0 | Bed manual correction front | LCD menu | D3 Ax0fbd C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air off | LCD menu | D3 Ax0fbb C1 +| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air oon | ^ | ^ +| 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | ??? | D3 Ax0fba C1 +| 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal. inactive | LCD menu | D3 Ax0faf C1 +| ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal. active | ^ | ^ +| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | ??? | D3 Ax0fae C8 +| ^ | ^ | ^ | ??? | ff ff ff ffh | ^ | ^ | ^ +| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp not calibrated | ??? | D3 Ax0fa6 C1 +| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp calibrated | ^ | ^ +| 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag inactive | ??? | D3 Ax0fa5 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag active | ^ | ^ +| ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag ??? | ^ | ^ +| 0x0F9Dh 3997 | float | EEPROM_UVLO_CURRENT_POSITION | ??? | ffh 255 | Power Panic position | ??? | D3 Ax0f9d C8 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| 0x0F95h 3989 | char | EEPROM_FILENAME | ??? | ffh 255 | Power Panic Filename | ??? | D3 Ax0f95 C8 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| 0x0F91h 39851 | uint32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | ??? | D3 Ax0f91 C4 +| 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | ^ | D3 Ax0f8d C4 +| 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic UNUSED | ^ | D3 Ax0f8c C1 +| 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | ^ | D3 Ax0f8b C1 +| 0x0F89h 3977 | uint16 | EEPROM_UVLO_FEEDRATE | ??? | ff ffh 65535 | Power Panic Feedrate | ^ | D3 Ax0f89 C2 +| 0x0F88h 3976 | uint8 | EEPROM_UVLO_FAN_SPEED | ??? | ffh 255 | Power Panic Fan speed | ^ | D3 Ax0f88 C1 +| 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check disabled | LCD menu | D3 Ax0f87 C1 +| ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check enabled (exception ffh=01h) | ^ | ^ +| 0x0F75h 3957 | uint16 | EEPROM_UVLO_MESH_BED_LEVELING | ??? | ff ffh 65535 | Power Panic Mesh Bed Leveling | ??? | D3 Ax0f75 C18 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| 0x0F73h 3955 | uint16 | EEPROM_UVLO_Z_MICROSTEPS | ??? | ff ffh 65535 | Power Panic Z microsteps | ??? | D3 Ax0f73 C2 +| 0x0F72h 3954 | uint8 | EEPROM_UVLO_E_ABS | ??? | ffh 255 | Power Panic ??? position | ??? | D3 Ax0f72 C1 +| 0x0F6Eh 3950 | foat | EEPROM_UVLO_CURRENT_POSITION_E | ??? | ff ff ff ffh | Power Panic E position | ??? | D3 Ax0f6e C4 +| 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection enabled | LCD menu | D3 Ax0f69 C5 +| ^ | ^ | ^ | 00h 0 | ^ | Crash detection disabled | LCD menu | ^ +| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ +| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ +| 0x0F68h 3944 | uint8 | EEPROM_CRASH_COUNT_Y | 00h-ffh 0-255 | ffh 255 | Crashes detected on y axis | ??? | D3 Ax0f68 C1 +| 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 | Filament sensor enabled | LCD menu | D3 Ax0f67 C1 +| 0x0F65h 3942 | uint8 | EEPROM_CRASH_COUNT_X | 00h-ffh 0-255 | ffh 255 | Crashes detected on x axis | ??? | D3 Ax0f66 C1 +| 0x0F65h 3941 | uint8 | EEPROM_FERROR_COUNT | 00h-ffh 0-255 | ffh 255 | Filament sensor error counter | ??? | D3 Ax0f65 C1 +| 0x0F64h 3940 | uint8 | EEPROM_POWER_COUNT | 00h-ffh 0-255 | ffh 255 | Power failure counter | ??? | D3 Ax0f64 C1 +| 0x0F60h 3936 | float | EEPROM_XYZ_CAL_SKEW | ??? | ff ff ff ffh | XYZ skew value | ??? | D3 Ax0f60 C4 +| 0x0F5Fh 3935 | uint8 | EEPROM_WIZARD_ACTIVE | 00h 0 | ??? | Wizard active | ??? | D3 Ax0f5f C1 +| ^ | ^ | ^ | 01h 1 | ??? | ^ | ^ | ^ +| 0x0F5Dh 3933 | uint16 | EEPROM_BELTSTATUS_X | ??? | ff ffh | X Beltstatus | ??? | D3 Ax0f5d C2 +| 0x0F5Bh 3931 | uint16 | EEPROM_BELTSTATUS_Y | ??? | ff ffh | Y Beltstatus | ??? | D3 Ax0f5b C2 +| 0x0F5Ah 3930 | uint8 | EEPROM_DIR_DEPTH | 00h-ffh 0-255 | ffh 255 | Directory depth | ??? | D3 Ax0f5a C1 +| 0x0F0Ah 3850 | uint8 | EEPROM_DIRS | ??? | ffh 255 | Directories ??? | ??? | D3 Ax0f0a C80 +| 0x0F09h 3849 | uint8 | EEPROM_SD_SORT | 00h 0 | ffh 255 | SD card sort by time | LCD menu | D3 Ax0f09 C1 +| ^ | ^ | ^ | 01h 1 | ^ | SD card sort by alphabet | LCD menu | ^ +| ^ | ^ | ^ | 02h 1 | ^ | SD card not sorted | LCD menu | ^ +| 0x0F08h 3848 | uint8 | EEPROM_SECOND_SERIAL_ACTIVE | 00h 0 | ffh 255 | RPi Port disabled | LCD menu | D3 Ax0f08 C1 +| ^ | ^ | ^ | 01h 1 | ^ | RPi Port enabled | LCD menu | ^ +| 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload enabled | LCD menu | D3 Ax0f07 C1 +| ^ | ^ | ^ | 00h 0 | ^ | Filament autoload disabled | LCD menu | ^ +*/ #define EEPROM_EMPTY_VALUE 0xFF #define EEPROM_EMPTY_VALUE16 0xFFFF // The total size of the EEPROM is From 028a27021baf7bbce9f01ca823434a5073e6114a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 22 Mar 2020 14:08:21 +0100 Subject: [PATCH 212/361] All done... hope not I forgot one. I will re-test all `D3 Axyyyy Cz` before creating a PR. --- Firmware/eeprom.h | 168 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 162 insertions(+), 6 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index d47b0cad4..f707ce683 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -48,7 +48,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP - Octoprint does support D-codes - _Pronterface_ does not support D-codes - + ### !!! D-codes are case sensitive so please don't use upper case A,C or X in the address you want to read !!! + --------------------------------------------------------------------------------- ## EEPROM Tabel @@ -92,15 +93,15 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 | ^ | ^ | ^ | ffh 255 | | Bed correction valid ^ | ??? | ^ | 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Lxxx | ^ | 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | LCD menu | D3 Ax0fbe C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Rxxx | ^ | 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h FFh | 00h 0 | Bed manual correction front | LCD menu | D3 Ax0fbd C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Fxxx | ^ | 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | ^ | ^ +| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Bxxx | ^ | 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air off | LCD menu | D3 Ax0fbb C1 -| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air oon | ^ | ^ +| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air on | ^ | ^ | 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | ??? | D3 Ax0fba C1 | 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ @@ -170,7 +171,162 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 01h 1 | ^ | RPi Port enabled | LCD menu | ^ | 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload enabled | LCD menu | D3 Ax0f07 C1 | ^ | ^ | ^ | 00h 0 | ^ | Filament autoload disabled | LCD menu | ^ +| 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh | Total charshes on x axis | ??? | D3 Ax0f05 C2 +| 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh | Total charshes on y axis | ??? | D3 Ax0f03 C2 +| 0x0F01h 3841 | uint16 | EEPROM_FERROR_COUNT_TOT | 0000-fffe | ff ffh | Total filament sensor errors | ??? | D3 Ax0f01 C2 +| 0x0EFFh 3839 | uint16 | EEPROM_POWER_COUNT_TOT | 0000-fffe | ff ffh | Total power failures | ??? | D3 Ax0eff C2 +| 0x0EFEh 3838 | uint8 | EEPROM_TMC2130_HOME_X_ORIGIN | ??? | ffh 255 | ??? | ??? | D3 Ax0efe C1 +| 0x0EFDh 3837 | uint8 | EEPROM MC2130_HOME_X_BSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0efd C1 +| 0x0EFCh 3836 | uint8 | EEPROM_TMC2130_HOME_X_FSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0efc C1 +| 0x0EFBh 3835 | uint8 | EEPROM_TMC2130_HOME_Y_ORIGIN | ??? | ffh 255 | ??? | ??? | D3 Ax0efb C1 +| 0x0EFAh 3834 | uint8 | EEPROM_TMC2130_HOME_Y_BSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0efa C1 +| 0x0EF9h 3833 | uint8 | EEPROM_TMC2130_HOME_Y_FSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0ef9 C1 +| 0x0EF8h 3832 | uint8 | EEPROM_TMC2130_HOME_ENABLED | ??? | ffh 255 | ??? | ??? | D3 Ax0ef8 C1 +| 0x0EF7h 3831 | uint8 | EEPROM_TMC2130_WAVE_X_FAC | ??? | ffh 255 | ??? | ??? | D3 Ax0ef7 C1 +| 0x0EF6h 3830 | uint8 | EEPROM_TMC2130_WAVE_Y_FAC | ??? | ffh 255 | ??? | ??? | D3 Ax0ef6 C1 +| 0x0EF5h 3829 | uint8 | EEPROM_TMC2130_WAVE_Z_FAC | ??? | ffh 255 | ??? | ??? | D3 Ax0ef5 C1 +| 0x0EF4h 3828 | uint8 | EEPROM_TMC2130_WAVE_E_FAC | ??? | ffh 255 | ??? | ??? | D3 Ax0ef4 C1 +| 0x0EF3h 3827 | uint8 | EEPROM_TMC2130_X_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef3 C1 +| 0x0EF2h 3826 | uint8 | EEPROM_TMC2130_Y_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef2 C1 +| 0x0EF1h 3825 | uint8 | EEPROM_TMC2130_Z_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef1 C1 +| 0x0EF0h 3824 | uint8 | EEPROM_TMC2130_E_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef0 C1 +| 0x0EEE 3822 | uint16 | EEPROM_PRINTER_TYPE | ??? | ff ffh 65535 | Printer Type | ??? | D3 Ax0eee C2 +| 0x0EEC 3820 | uint16 | EEPROM_BOARD_TYPE | ??? | ff ffh 65535 | Board Type | ??? | D3 Ax0eec C2 +| 0x0EE8 3816 | float | EEPROM_EXTRUDER_MULTIPLIER_0 | ??? | ff ff ff ffh | Power panic Extruder 0 multiplier | ??? | D3 Ax0ee8 C4 +| 0x0EE4 3812 | float | EEPROM_EXTRUDER_MULTIPLIER_1 | ??? | ff ff ff ffh | Power panic Extruder 1 multiplier | ??? | D3 Ax0ee4 C4 +| 0x0EE0 3808 | float | EEPROM_EXTRUDER_MULTIPLIER_2 | ??? | ff ff ff ffh | Power panic Extruder 2 multiplier | ??? | D3 Ax0ee0 C4 +| 0x0EDE 3806 | uint16 | EEPROM_EXTRUDEMULTIPLY | ??? | ff ffh 65535 | Power panic Extruder multiplier | ??? | D3 Ax0ede C2 +| 0x0EDA 3802 | float | EEPROM_UVLO_TINY_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power panic Z position | ??? | D3 Ax0eda C4 +| 0x0ED8 3800 | uint16 | EEPROM_UVLO_TARGET_HOTEND | ??? | ff ffh 65535 | Power panic traget Hotend temperature | ??? | D3 Ax0ed8 C2 +| 0x0ED7 3799 | uint8 | EEPROM_SOUND_MODE | 00h 0 | ffh 255 | Sound mode loud | ??? | D3 Ax0ed7 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Sound mode once | ^ | ^ +| ^ | ^ | ^ | 02h 1 | ^ | Sound mode silent | ^ | ^ +| ^ | ^ | ^ | 03h 1 | ^ | Sound mode assist | ^ | ^ +| 0x0ED6 3798 | bool | EEPROM_AUTO_DEPLETE | 01h 1 | ffh 255 | MMU2/s autodeplete on | ??? | D3 Ax0ed6 C1 +| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s autodeplete off | ^ | ^ +| 0x0ED5 3797 | bool | EEPROM_FSENS_OQ_MEASS_ENABLED | ??? | ffh 255 | PAT1925 ??? | ??? | D3 Ax0ed5 C1 +| ^ | ^ | ^ | ??? | ^ | PAT1925 ??? | ^ | ^ +| 0x0ED3 3795 | uint16 | EEPROM_MMU_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total failures | ??? | D3 Ax0ed3 C2 +| 0x0ED2 3794 | uint8 | EEPROM_MMU_FAIL | ??? | ffh 255 | MMU2/s fails during print | ??? | D3 Ax0ed2 C1 +| 0x0ED0 3792 | uint16 | EEPROM_MMU_LOAD_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total load failures | ??? | D3 Ax0ed0 C2 +| 0x0ECF 3791 | uint8 | EEPROM_MMU_LOAD_FAIL | ??? | ffh 255 | MMU2/s load failures during print | ??? | D3 Ax0ecf C1 +| 0x0ECE 3790 | uint8 | EEPROM_MMU_CUTTER_ENABLED | 00h 0 | ffh 255 | MMU2/s cutter disabled | LCD menu | D3 Ax0ece C1 +| ^ | ^ | ^ | 01h 1 | ^ | MMU2/s cutter enabled | ^ | ^ +| ^ | ^ | ^ | 02h 2 | ^ | MMU2/s cutter always | ^ | ^ +| 0x0DAE 3502 | uint16 | EEPROM_UVLO_MESH_BED_LEVELING_FULL | ??? | ff ffh 65535 | Power panic Mesh bed leveling points | ??? | D3 Ax0dae C288 +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| 0x0DAD 3501 | uint8 | EEPROM_MBL_TYPE | ??? | ffh 255 | Mesh bed leveling precision _unused atm_ | ??? | D3 Ax0dad C1 +| 0x0DAC 3500 | bool | EEPROM_MBL_MAGNET_ELIMINATION | 01h 1 | ffh 255 | Mesh bed leveling ignore magnets | LCD menu | D3 Ax0dac C1 +| ^ | ^ | ^ | 00h 0 | ^ | Mesh bed leveling NOT ignore magnets | ^ | ^ +| 0x0DAB 3499 | uint8 | EEPROM_MBL_POINTS_NR | 03h 3 | ffh 255 | Mesh bed leveling points 3x3 | LCD menu | D3 Ax0dab C1 +| ^ | ^ | ^ | 07h 7 | ^ | Mesh bed leveling points 7x7 | ^ | ^ +| 0x0DAA 3498 | uint8 | EEPROM_MBL_PROBE_NR | 03h 3 | ffh 255 | MBL 3 times measurements for each point | LCD menu | D3 Ax0daa C1 +| ^ | ^ | ^ | 05h 5 | ^ | MBL 5 times measurements for each point | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | MBL 7 times measurements for each point | ^ | ^ +| 0x0DA9 3497 | uint8 | EEPROM_MMU_STEALTH | 01h 1 | ffh 255 | MMU2/s Silent mode on | ??? | D3 Ax0da9 C1 +| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s Silent mode off | ^ | ^ +| 0x0DA8 3496 | uint8 | EEPROM_CHECK_MODE | 01h 1 | ffh 255 | Check mode for nozzle is warn | LCD menu | D3 Ax0da8 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for nozzle is strict | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for nozzle is none | ^ | ^ +| 0x0DA7 3495 | uint8 | EEPROM_NOZZLE_DIAMETER | 28h 40 | ffh 255 | Nozzle diameter is 40 or 0.40mm | LCD menu | D3 Ax0da7 C1 +| ^ | ^ | ^ | 3ch 60 | ^ | Nozzle diameter is 60 or 0.60mm | ^ | ^ +| ^ | ^ | ^ | 19h 25 | ^ | Nozzle diameter is 25 or 0.25mm | ^ | ^ +| 0x0DA5 3493 | uint16 | EEPROM_NOZZLE_DIAMETER_uM | 9001h | ff ffh 65535 | Nozzle diameter is 400um | LCD menu | D3 Ax0da5 C2 +| ^ | ^ | ^ | 5802h | ^ | Nozzle diameter is 600um | ^ | ^ +| ^ | ^ | ^ | fa00h | ^ | Nozzle diameter is 250um | ^ | ^ +| 0x0DA4 3492 | uint8 | EEPROM_CHECK_MODEL | 01h 1 | ffh 255 | Check mode for printer model is warn | LCD menu | D3 Ax0da4 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for printer model is strict | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for printer model is none | ^ | ^ +| 0x0DA3 3491 | uint8 | EEPROM_CHECK_VERSION | 01h 1 | ffh 255 | Check mode for firmware is warn | LCD menu | D3 Ax0da3 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for firmware is strict | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for firmware is none | ^ | ^ +| 0x0DA2 3490 | uint8 | EEPROM_CHECK_GCODE | 01h 1 | ffh 255 | Check mode for gcode is warn _unused atm_ | LCD menu | D3 Ax0da2 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for gcode is strict _unused atm_ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for gcode is none _unused atm_ | ^ | ^ +| 0x0D49 3401 | uint16 | EEPROM_SHEETS_BASE | ??? | ffh 255 | ??? | LCD menu | D3 Ax0d49 C89 +| 0x0D49 3401 | char | _1st Sheet block_ | 536d6f6f746831| ffffffffffffff | 1st sheet - Name: _Smooth1_ | ^ | D3 Ax0d49 C7 +| 0x0D50 3408 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 1st sheet - Z offset | ^ | D3 Ax0d50 C2 +| 0x0D52 3410 | uint8 | ^ | 00h 0 | ffh 255 | 1st sheet - bed temp | ^ | D3 Ax0d52 C1 +| 0x0D53 3411 | uint8 | ^ | 00h 0 | ffh 255 | 1st sheet - PINDA temp | ^ | D3 Ax0d53 C1 +| 0x0D54 3412 | char | _2nd Sheet block_ | 536d6f6f746832| ffffffffffffff | 2nd sheet - Name: _Smooth2_ | ^ | D3 Ax0d54 C7 +| 0x0D5B 3419 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 2nd sheet - Z offset | ^ | D3 Ax0d5b C2 +| 0x0D5D 3421 | uint8 | ^ | 00h 0 | ffh 255 | 2nd sheet - bed temp | ^ | D3 Ax0d5d C1 +| 0x0D5E 3422 | uint8 | ^ | 00h 0 | ffh 255 | 2nd sheet - PINDA temp | ^ | D3 Ax0d5e C1 +| 0x0D5F 3423 | char | _3rd Sheet block_ | 54657874757231| ffffffffffffff | 3rd sheet - Name: _Textur1_ | ^ | D3 Ax0d5f C7 +| 0x0D66 3430 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 3rd sheet - Z offset | ^ | D3 Ax0d66 C2 +| 0x0D68 3432 | uint8 | ^ | 00h 0 | ffh 255 | 3rd sheet - bed temp | ^ | D3 Ax0d68 C1 +| 0x0D69 3433 | uint8 | ^ | 00h 0 | ffh 255 | 3rd sheet - PINDA temp | ^ | D3 Ax0d69 C1 +| 0x0D6A 3434 | char | _4th Sheet block_ | 54657874757232| ffffffffffffff | 4th sheet - Name: _Textur2_ | ^ | D3 Ax0d6a C7 +| 0x0D71 3441 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 4th sheet - Z offset | ^ | D3 Ax0d71 C2 +| 0x0D73 3443 | uint8 | ^ | 00h 0 | ffh 255 | 4th sheet - bed temp | ^ | D3 Ax0d73 C1 +| 0x0D74 3444 | uint8 | ^ | 00h 0 | ffh 255 | 4th sheet - PINDA temp | ^ | D3 Ax0d74 C1 +| 0x0D75 3445 | char | _5th Sheet block_ | 437573746f6d31| ffffffffffffff | 5th sheet - Name: _Custom1_ | ^ | D3 Ax0d75 C7 +| 0x0D7C 3452 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 5th sheet - Z offset | ^ | D3 Ax0d7c C2 +| 0x0D7E 3454 | uint8 | ^ | 00h 0 | ffh 255 | 5th sheet - bed temp | ^ | D3 Ax0d7e C1 +| 0x0D7F 3455 | uint8 | ^ | 00h 0 | ffh 255 | 5th sheet - PINDA temp | ^ | D3 Ax0d7f C1 +| 0x0D80 3456 | char | _6th Sheet block_ | 437573746f6d32| ffffffffffffff | 6th sheet - Name: _Custom2_ | ^ | D3 Ax0d80 C7 +| 0x0D87 3463 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 6th sheet - Z offset | ^ | D3 Ax0d87 C2 +| 0x0D89 3465 | uint8 | ^ | 00h 0 | ffh 255 | 6th sheet - bed temp | ^ | D3 Ax0d89 C1 +| 0x0D8A 3466 | uint8 | ^ | 00h 0 | ffh 255 | 6th sheet - PINDA temp | ^ | D3 Ax0d8a C1 +| 0x0D8B 3467 | char | _7th Sheet block_ | 437573746f6d33| ffffffffffffff | 7th sheet - Name: _Custom3_ | ^ | D3 Ax0d8b C7 +| 0x0D92 3474 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 7th sheet - Z offset | ^ | D3 Ax0d92 C2 +| 0x0D94 3476 | uint8 | ^ | 00h 0 | ffh 255 | 7th sheet - bed temp | ^ | D3 Ax0d94 C1 +| 0x0D95 3477 | uint8 | ^ | 00h 0 | ffh 255 | 7th sheet - PINDA temp | ^ | D3 Ax0d95 C1 +| 0x0D96 3478 | char | _8th Sheet block_ | 437573746f6d34| ffffffffffffff | 8th sheet - Name: _Custom4_ | ^ | D3 Ax0d96 C7 +| 0x0D9D 3485 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 8th sheet - Z offset | ^ | D3 Ax0d9d C2 +| 0x0D9F 3487 | uint8 | ^ | 00h 0 | ffh 255 | 8th sheet - bed temp | ^ | D3 Ax0d9f C1 +| 0x0DA0 3488 | uint8 | ^ | 00h 0 | ffh 255 | 8th sheet - PINDA temp | ^ | D3 Ax0da0 C1 +| 0x0DA1 3489 | uint8 | ??? | 00h 0 | ffh 255 | ??? | ??? | D3 Ax0da1 C1 +| 0x0D48 3400 | uint8 | EEPROM_FSENSOR_PCB | ??? | ffh 255 | Filament Sensor type old vs new | ??? | D3 Ax0d48 C1 +| ^ | ^ | ^ | ??? | ^ | Filament Sensor type ??? | ^ | ^ +| 0x0D47 3399 | uint8 | EEPROM_FSENSOR_ACTION_NA | 00h 0 | ffh 255 | Filament Sensor action: _Continue_ | LCD menu | D3 Ax0d47 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Filament Sensor action: Pause | ^ | ^ +| 0x0D37 3383 | float | EEPROM_UVLO_SAVED_TARGET | ??? | ff ff ff ffh | Power panic saved target all-axis | ??? | D3 Ax0d37 C16 +| ^ | ^ | ^ | ??? | ^ | Power panic saved target e-axis | ^ | D3 Ax0d43 C4 +| ^ | ^ | ^ | ??? | ^ | Power panic saved target z-axis | ^ | D3 Ax0d3f C4 +| ^ | ^ | ^ | ??? | ^ | Power panic saved target y-axis | ^ | D3 Ax0d3b C4 +| ^ | ^ | ^ | ??? | ^ | Power panic saved target x-axis | ^ | D3 Ax0d37 C4 +| 0x0D35 3381 | uint16 | EEPROM_UVLO_FEEDMULTIPLY | ??? | ff ffh 65355 | Power panic saved feed multiplier | ??? | D3 Ax0d35 C2 +| 0x0D34 3380 | uint8 | EEPROM_BACKLIGHT_LEVEL_HIGH | 00h - ffh | 80h 128 | LCD backlight bright _128_ Dim value to 255 | LCD menu | D3 Ax0d34 C1 +| 0x0D33 3379 | uint8 | EEPROM_BACKLIGHT_LEVEL_LOW | 00h - ffh | 32h 50 | LCD backlight dim _50_ 0 to Bright value | LCD menu | D3 Ax0d33 C1 +| 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: _Auto_ | LCD menu | D3 Ax0d32 C1 +| ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: Bright | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: Dim | ^ | ^ +| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | ff ffh 65535 | LCD backlight timeout: _10_ seconds | LCD menu | D3 Ax0d30 C2 +| 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 + + ## End of EEPROM Table + +| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code +| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: +| 0x0012 18 | uint16 | EEPROM_FIRMWARE_VERSION_END | ??? | ff ffh 65535 | ??? | ??? | D3 Ax0012 C2 +| 0x0010 16 | uint16 | EEPROM_FIRMWARE_VERSION_FLAVOR | ??? | ff ffh 65535 | ??? | ??? | D3 Ax0010 C2 +| 0x000E 14 | uint16 | EEPROM_FIRMWARE_VERSION_REVISION | ??? | ff ffh 65535 | Firmware version revision number DEV/ALPHA/BETA/RC| ??? | D3 Ax000e C2 +| 0x000C 12 | uint16 | EEPROM_FIRMWARE_VERSION_MINOR | ??? | ff ffh 65535 | Firmware version minor number | ??? | D3 Ax000c C2 +| 0x000A 10 | uint16 | EEPROM_FIRMWARE_VERSION_MAJOR | ??? | ff ffh 65535 | Firmware version major number | ??? | D3 Ax000a C2 */ + #define EEPROM_EMPTY_VALUE 0xFF #define EEPROM_EMPTY_VALUE16 0xFFFF // The total size of the EEPROM is From b178252eb9a4737aed95af3bc96a0a01991608dd Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 22 Mar 2020 15:18:45 +0100 Subject: [PATCH 213/361] Added Italic and Bold to highlight some settings --- Firmware/eeprom.h | 146 ++++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 71 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index f707ce683..e149526e1 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -42,6 +42,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP EEPROM 16-bit Empty value = 0xFFFFh 65535 + _Italic = unsued or default_ + + __Bold = Status__ + --------------------------------------------------------------------------------- How can you use the debug codes? - Serial terminal like Putty. @@ -52,12 +56,11 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP --------------------------------------------------------------------------------- - ## EEPROM Tabel | Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code -| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: -| 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode off / miniRambo Power mode | LCD menu | D3 Ax0fff C1 -| ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode on / miniRambo Silent mode | ^ | ^ +| :-- | :-- | :-- | :--: | :--: | :-- | :--: | :--: +| 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode: __off__ / miniRambo Power mode | LCD menu | D3 Ax0fff C1 +| ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode: __on__ / miniRambo Silent mode | ^ | ^ | 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 | ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ | ^ | 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ffh 255 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 @@ -87,11 +90,11 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode off | G99 | D3 Ax0fc4 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode on | G98 | ^ +| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode: __on__ | G98 | ^ | 0x0FC1h 4033 | int16 | EEPROM_FARM_NUMBER | ??? | ff ff ffh | Prusa farm number | ??? | D3 Ax0fc1 C3 | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 -| ^ | ^ | ^ | ffh 255 | | Bed correction valid ^ | ??? | ^ +| ^ | ^ | ^ | ffh 255 | | Bed correction valid | ??? | ^ | 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 | ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Lxxx | ^ | 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | LCD menu | D3 Ax0fbe C1 @@ -100,23 +103,23 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Fxxx | ^ | 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 | ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Bxxx | ^ -| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air off | LCD menu | D3 Ax0fbb C1 -| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air on | ^ | ^ +| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air: __off__ | LCD menu | D3 Ax0fbb C1 +| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air: __on__ | ^ | ^ | 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | ??? | D3 Ax0fba C1 | 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ | ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal. inactive | LCD menu | D3 Ax0faf C1 -| ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal. active | ^ | ^ +| 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal.: __inactive__ | LCD menu | D3 Ax0faf C1 +| ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal.: __active__ | ^ | ^ | 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | ??? | D3 Ax0fae C8 | ^ | ^ | ^ | ??? | ff ff ff ffh | ^ | ^ | ^ -| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp not calibrated | ??? | D3 Ax0fa6 C1 -| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp calibrated | ^ | ^ -| 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag inactive | ??? | D3 Ax0fa5 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag active | ^ | ^ -| ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag ??? | ^ | ^ +| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1 +| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp: __calibrated__ | ^ | ^ +| 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag: __inactive__ | ??? | D3 Ax0fa5 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag: __active__ | ^ | ^ +| ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag: __???__ | ^ | ^ | 0x0F9Dh 3997 | float | EEPROM_UVLO_CURRENT_POSITION | ??? | ffh 255 | Power Panic position | ??? | D3 Ax0f9d C8 | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ | 0x0F95h 3989 | char | EEPROM_FILENAME | ??? | ffh 255 | Power Panic Filename | ??? | D3 Ax0f95 C8 @@ -129,7 +132,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ | 0x0F91h 39851 | uint32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | ??? | D3 Ax0f91 C4 | 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | ^ | D3 Ax0f8d C4 -| 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic UNUSED | ^ | D3 Ax0f8c C1 +| 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic _unused_ | ^ | D3 Ax0f8c C1 | 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | ^ | D3 Ax0f8b C1 | 0x0F89h 3977 | uint16 | EEPROM_UVLO_FEEDRATE | ??? | ff ffh 65535 | Power Panic Feedrate | ^ | D3 Ax0f89 C2 | 0x0F88h 3976 | uint8 | EEPROM_UVLO_FAN_SPEED | ??? | ffh 255 | Power Panic Fan speed | ^ | D3 Ax0f88 C1 @@ -147,13 +150,14 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0F73h 3955 | uint16 | EEPROM_UVLO_Z_MICROSTEPS | ??? | ff ffh 65535 | Power Panic Z microsteps | ??? | D3 Ax0f73 C2 | 0x0F72h 3954 | uint8 | EEPROM_UVLO_E_ABS | ??? | ffh 255 | Power Panic ??? position | ??? | D3 Ax0f72 C1 | 0x0F6Eh 3950 | foat | EEPROM_UVLO_CURRENT_POSITION_E | ??? | ff ff ff ffh | Power Panic E position | ??? | D3 Ax0f6e C4 -| 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection enabled | LCD menu | D3 Ax0f69 C5 -| ^ | ^ | ^ | 00h 0 | ^ | Crash detection disabled | LCD menu | ^ +| 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection: __enabled__ | LCD menu | D3 Ax0f69 C5 +| ^ | ^ | ^ | 00h 0 | ^ | Crash detection: __disabled__ | LCD menu | ^ | ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ | ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ | ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ | 0x0F68h 3944 | uint8 | EEPROM_CRASH_COUNT_Y | 00h-ffh 0-255 | ffh 255 | Crashes detected on y axis | ??? | D3 Ax0f68 C1 -| 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 | Filament sensor enabled | LCD menu | D3 Ax0f67 C1 +| 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 | Filament sensor: __enabled__ | LCD menu | D3 Ax0f67 C1 +| ^ | ^ | ^ | 00h 0 | ^ | Filament sensor: __disabled__ | LCD menu | ^ | 0x0F65h 3942 | uint8 | EEPROM_CRASH_COUNT_X | 00h-ffh 0-255 | ffh 255 | Crashes detected on x axis | ??? | D3 Ax0f66 C1 | 0x0F65h 3941 | uint8 | EEPROM_FERROR_COUNT | 00h-ffh 0-255 | ffh 255 | Filament sensor error counter | ??? | D3 Ax0f65 C1 | 0x0F64h 3940 | uint8 | EEPROM_POWER_COUNT | 00h-ffh 0-255 | ffh 255 | Power failure counter | ??? | D3 Ax0f64 C1 @@ -164,13 +168,13 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0F5Bh 3931 | uint16 | EEPROM_BELTSTATUS_Y | ??? | ff ffh | Y Beltstatus | ??? | D3 Ax0f5b C2 | 0x0F5Ah 3930 | uint8 | EEPROM_DIR_DEPTH | 00h-ffh 0-255 | ffh 255 | Directory depth | ??? | D3 Ax0f5a C1 | 0x0F0Ah 3850 | uint8 | EEPROM_DIRS | ??? | ffh 255 | Directories ??? | ??? | D3 Ax0f0a C80 -| 0x0F09h 3849 | uint8 | EEPROM_SD_SORT | 00h 0 | ffh 255 | SD card sort by time | LCD menu | D3 Ax0f09 C1 -| ^ | ^ | ^ | 01h 1 | ^ | SD card sort by alphabet | LCD menu | ^ -| ^ | ^ | ^ | 02h 1 | ^ | SD card not sorted | LCD menu | ^ -| 0x0F08h 3848 | uint8 | EEPROM_SECOND_SERIAL_ACTIVE | 00h 0 | ffh 255 | RPi Port disabled | LCD menu | D3 Ax0f08 C1 -| ^ | ^ | ^ | 01h 1 | ^ | RPi Port enabled | LCD menu | ^ -| 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload enabled | LCD menu | D3 Ax0f07 C1 -| ^ | ^ | ^ | 00h 0 | ^ | Filament autoload disabled | LCD menu | ^ +| 0x0F09h 3849 | uint8 | EEPROM_SD_SORT | 00h 0 | ffh 255 | SD card sort by: __time__ | LCD menu | D3 Ax0f09 C1 +| ^ | ^ | ^ | 01h 1 | ^ | SD card sort by: __alphabet__ | LCD menu | ^ +| ^ | ^ | ^ | 02h 1 | ^ | SD card: __not sorted__ | LCD menu | ^ +| 0x0F08h 3848 | uint8 | EEPROM_SECOND_SERIAL_ACTIVE | 00h 0 | ffh 255 | RPi Port: __disabled__ | LCD menu | D3 Ax0f08 C1 +| ^ | ^ | ^ | 01h 1 | ^ | RPi Port: __enabled__ | LCD menu | ^ +| 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload: __enabled__ | LCD menu | D3 Ax0f07 C1 +| ^ | ^ | ^ | 00h 0 | ^ | Filament autoload: __disabled__ | LCD menu | ^ | 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh | Total charshes on x axis | ??? | D3 Ax0f05 C2 | 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh | Total charshes on y axis | ??? | D3 Ax0f03 C2 | 0x0F01h 3841 | uint16 | EEPROM_FERROR_COUNT_TOT | 0000-fffe | ff ffh | Total filament sensor errors | ??? | D3 Ax0f01 C2 @@ -198,21 +202,21 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0EDE 3806 | uint16 | EEPROM_EXTRUDEMULTIPLY | ??? | ff ffh 65535 | Power panic Extruder multiplier | ??? | D3 Ax0ede C2 | 0x0EDA 3802 | float | EEPROM_UVLO_TINY_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power panic Z position | ??? | D3 Ax0eda C4 | 0x0ED8 3800 | uint16 | EEPROM_UVLO_TARGET_HOTEND | ??? | ff ffh 65535 | Power panic traget Hotend temperature | ??? | D3 Ax0ed8 C2 -| 0x0ED7 3799 | uint8 | EEPROM_SOUND_MODE | 00h 0 | ffh 255 | Sound mode loud | ??? | D3 Ax0ed7 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Sound mode once | ^ | ^ -| ^ | ^ | ^ | 02h 1 | ^ | Sound mode silent | ^ | ^ -| ^ | ^ | ^ | 03h 1 | ^ | Sound mode assist | ^ | ^ -| 0x0ED6 3798 | bool | EEPROM_AUTO_DEPLETE | 01h 1 | ffh 255 | MMU2/s autodeplete on | ??? | D3 Ax0ed6 C1 -| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s autodeplete off | ^ | ^ +| 0x0ED7 3799 | uint8 | EEPROM_SOUND_MODE | 00h 0 | ffh 255 | Sound mode: __loud__ | ??? | D3 Ax0ed7 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Sound mode: __once__ | ^ | ^ +| ^ | ^ | ^ | 02h 1 | ^ | Sound mode: __silent__ | ^ | ^ +| ^ | ^ | ^ | 03h 1 | ^ | Sound mode: __assist__ | ^ | ^ +| 0x0ED6 3798 | bool | EEPROM_AUTO_DEPLETE | 01h 1 | ffh 255 | MMU2/s autodeplete: __on__ | ??? | D3 Ax0ed6 C1 +| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s autodeplete: __off__ | ^ | ^ | 0x0ED5 3797 | bool | EEPROM_FSENS_OQ_MEASS_ENABLED | ??? | ffh 255 | PAT1925 ??? | ??? | D3 Ax0ed5 C1 | ^ | ^ | ^ | ??? | ^ | PAT1925 ??? | ^ | ^ | 0x0ED3 3795 | uint16 | EEPROM_MMU_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total failures | ??? | D3 Ax0ed3 C2 | 0x0ED2 3794 | uint8 | EEPROM_MMU_FAIL | ??? | ffh 255 | MMU2/s fails during print | ??? | D3 Ax0ed2 C1 | 0x0ED0 3792 | uint16 | EEPROM_MMU_LOAD_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total load failures | ??? | D3 Ax0ed0 C2 | 0x0ECF 3791 | uint8 | EEPROM_MMU_LOAD_FAIL | ??? | ffh 255 | MMU2/s load failures during print | ??? | D3 Ax0ecf C1 -| 0x0ECE 3790 | uint8 | EEPROM_MMU_CUTTER_ENABLED | 00h 0 | ffh 255 | MMU2/s cutter disabled | LCD menu | D3 Ax0ece C1 -| ^ | ^ | ^ | 01h 1 | ^ | MMU2/s cutter enabled | ^ | ^ -| ^ | ^ | ^ | 02h 2 | ^ | MMU2/s cutter always | ^ | ^ +| 0x0ECE 3790 | uint8 | EEPROM_MMU_CUTTER_ENABLED | 00h 0 | ffh 255 | MMU2/s cutter: __disabled__ | LCD menu | D3 Ax0ece C1 +| ^ | ^ | ^ | 01h 1 | ^ | MMU2/s cutter: __enabled__ | ^ | ^ +| ^ | ^ | ^ | 02h 2 | ^ | MMU2/s cutter: __always__ | ^ | ^ | 0x0DAE 3502 | uint16 | EEPROM_UVLO_MESH_BED_LEVELING_FULL | ??? | ff ffh 65535 | Power panic Mesh bed leveling points | ??? | D3 Ax0dae C288 | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ @@ -237,33 +241,33 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ | 0x0DAD 3501 | uint8 | EEPROM_MBL_TYPE | ??? | ffh 255 | Mesh bed leveling precision _unused atm_ | ??? | D3 Ax0dad C1 -| 0x0DAC 3500 | bool | EEPROM_MBL_MAGNET_ELIMINATION | 01h 1 | ffh 255 | Mesh bed leveling ignore magnets | LCD menu | D3 Ax0dac C1 -| ^ | ^ | ^ | 00h 0 | ^ | Mesh bed leveling NOT ignore magnets | ^ | ^ -| 0x0DAB 3499 | uint8 | EEPROM_MBL_POINTS_NR | 03h 3 | ffh 255 | Mesh bed leveling points 3x3 | LCD menu | D3 Ax0dab C1 -| ^ | ^ | ^ | 07h 7 | ^ | Mesh bed leveling points 7x7 | ^ | ^ -| 0x0DAA 3498 | uint8 | EEPROM_MBL_PROBE_NR | 03h 3 | ffh 255 | MBL 3 times measurements for each point | LCD menu | D3 Ax0daa C1 -| ^ | ^ | ^ | 05h 5 | ^ | MBL 5 times measurements for each point | ^ | ^ -| ^ | ^ | ^ | 01h 1 | ^ | MBL 7 times measurements for each point | ^ | ^ -| 0x0DA9 3497 | uint8 | EEPROM_MMU_STEALTH | 01h 1 | ffh 255 | MMU2/s Silent mode on | ??? | D3 Ax0da9 C1 -| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s Silent mode off | ^ | ^ -| 0x0DA8 3496 | uint8 | EEPROM_CHECK_MODE | 01h 1 | ffh 255 | Check mode for nozzle is warn | LCD menu | D3 Ax0da8 C1 -| ^ | ^ | ^ | 02h 0 | ^ | Check mode for nozzle is strict | ^ | ^ -| ^ | ^ | ^ | 00h 0 | ^ | Check mode for nozzle is none | ^ | ^ -| 0x0DA7 3495 | uint8 | EEPROM_NOZZLE_DIAMETER | 28h 40 | ffh 255 | Nozzle diameter is 40 or 0.40mm | LCD menu | D3 Ax0da7 C1 -| ^ | ^ | ^ | 3ch 60 | ^ | Nozzle diameter is 60 or 0.60mm | ^ | ^ -| ^ | ^ | ^ | 19h 25 | ^ | Nozzle diameter is 25 or 0.25mm | ^ | ^ -| 0x0DA5 3493 | uint16 | EEPROM_NOZZLE_DIAMETER_uM | 9001h | ff ffh 65535 | Nozzle diameter is 400um | LCD menu | D3 Ax0da5 C2 -| ^ | ^ | ^ | 5802h | ^ | Nozzle diameter is 600um | ^ | ^ -| ^ | ^ | ^ | fa00h | ^ | Nozzle diameter is 250um | ^ | ^ -| 0x0DA4 3492 | uint8 | EEPROM_CHECK_MODEL | 01h 1 | ffh 255 | Check mode for printer model is warn | LCD menu | D3 Ax0da4 C1 -| ^ | ^ | ^ | 02h 0 | ^ | Check mode for printer model is strict | ^ | ^ -| ^ | ^ | ^ | 00h 0 | ^ | Check mode for printer model is none | ^ | ^ -| 0x0DA3 3491 | uint8 | EEPROM_CHECK_VERSION | 01h 1 | ffh 255 | Check mode for firmware is warn | LCD menu | D3 Ax0da3 C1 -| ^ | ^ | ^ | 02h 0 | ^ | Check mode for firmware is strict | ^ | ^ -| ^ | ^ | ^ | 00h 0 | ^ | Check mode for firmware is none | ^ | ^ -| 0x0DA2 3490 | uint8 | EEPROM_CHECK_GCODE | 01h 1 | ffh 255 | Check mode for gcode is warn _unused atm_ | LCD menu | D3 Ax0da2 C1 -| ^ | ^ | ^ | 02h 0 | ^ | Check mode for gcode is strict _unused atm_ | ^ | ^ -| ^ | ^ | ^ | 00h 0 | ^ | Check mode for gcode is none _unused atm_ | ^ | ^ +| 0x0DAC 3500 | bool | EEPROM_MBL_MAGNET_ELIMINATION | 01h 1 | ffh 255 | Mesh bed leveling does: __ignores__ magnets | LCD menu | D3 Ax0dac C1 +| ^ | ^ | ^ | 00h 0 | ^ | Mesh bed leveling does: __NOT ignores__ magnets | ^ | ^ +| 0x0DAB 3499 | uint8 | EEPROM_MBL_POINTS_NR | 03h 3 | ffh 255 | Mesh bed leveling points: __3x3__ | LCD menu | D3 Ax0dab C1 +| ^ | ^ | ^ | 07h 7 | ^ | Mesh bed leveling points: __7x7__ | ^ | ^ +| 0x0DAA 3498 | uint8 | EEPROM_MBL_PROBE_NR | 03h 3 | ffh 255 | MBL times measurements for each point: __3__ | LCD menu | D3 Ax0daa C1 +| ^ | ^ | ^ | 05h 5 | ^ | MBL times measurements for each point: __5__ | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | MBL times measurements for each point: __7__ | ^ | ^ +| 0x0DA9 3497 | uint8 | EEPROM_MMU_STEALTH | 01h 1 | ffh 255 | MMU2/s Silent mode: __on__ | ??? | D3 Ax0da9 C1 +| ^ | ^ | ^ | 00h 0 | ^ | MMU2/s Silent mode: __off__ | ^ | ^ +| 0x0DA8 3496 | uint8 | EEPROM_CHECK_MODE | 01h 1 | ffh 255 | Check mode for nozzle is: __warn__ | LCD menu | D3 Ax0da8 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for nozzle is: __strict__ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for nozzle is: __none__ | ^ | ^ +| 0x0DA7 3495 | uint8 | EEPROM_NOZZLE_DIAMETER | 28h 40 | ffh 255 | Nozzle diameter is: __40 or 0.40mm__ | LCD menu | D3 Ax0da7 C1 +| ^ | ^ | ^ | 3ch 60 | ^ | Nozzle diameter is: __60 or 0.60mm__ | ^ | ^ +| ^ | ^ | ^ | 19h 25 | ^ | Nozzle diameter is: __25 or 0.25mm__ | ^ | ^ +| 0x0DA5 3493 | uint16 | EEPROM_NOZZLE_DIAMETER_uM | 9001h | ff ffh 65535 | Nozzle diameter is: __400um__ | LCD menu | D3 Ax0da5 C2 +| ^ | ^ | ^ | 5802h | ^ | Nozzle diameter is: __600um__ | ^ | ^ +| ^ | ^ | ^ | fa00h | ^ | Nozzle diameter is: __250um__ | ^ | ^ +| 0x0DA4 3492 | uint8 | EEPROM_CHECK_MODEL | 01h 1 | ffh 255 | Check mode for printer model is: __warn__ | LCD menu | D3 Ax0da4 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for printer model is: __strict__ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for printer model is: __none__ | ^ | ^ +| 0x0DA3 3491 | uint8 | EEPROM_CHECK_VERSION | 01h 1 | ffh 255 | Check mode for firmware is: __warn__ | LCD menu | D3 Ax0da3 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for firmware is: __strict__ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for firmware is: __none__ | ^ | ^ +| 0x0DA2 3490 | uint8 | EEPROM_CHECK_GCODE | 01h 1 | ffh 255 | Check mode for gcode is: __warn__ _unused atm_ | LCD menu | D3 Ax0da2 C1 +| ^ | ^ | ^ | 02h 0 | ^ | Check mode for gcode is: __strict__ _unused atm_ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Check mode for gcode is: __none__ _unused atm_ | ^ | ^ | 0x0D49 3401 | uint16 | EEPROM_SHEETS_BASE | ??? | ffh 255 | ??? | LCD menu | D3 Ax0d49 C89 | 0x0D49 3401 | char | _1st Sheet block_ | 536d6f6f746831| ffffffffffffff | 1st sheet - Name: _Smooth1_ | ^ | D3 Ax0d49 C7 | 0x0D50 3408 | uint16 | ^ | 00 00h 0 | ff ffh 65535 | 1st sheet - Z offset | ^ | D3 Ax0d50 C2 @@ -300,20 +304,20 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0DA1 3489 | uint8 | ??? | 00h 0 | ffh 255 | ??? | ??? | D3 Ax0da1 C1 | 0x0D48 3400 | uint8 | EEPROM_FSENSOR_PCB | ??? | ffh 255 | Filament Sensor type old vs new | ??? | D3 Ax0d48 C1 | ^ | ^ | ^ | ??? | ^ | Filament Sensor type ??? | ^ | ^ -| 0x0D47 3399 | uint8 | EEPROM_FSENSOR_ACTION_NA | 00h 0 | ffh 255 | Filament Sensor action: _Continue_ | LCD menu | D3 Ax0d47 C1 -| ^ | ^ | ^ | 01h 1 | ^ | Filament Sensor action: Pause | ^ | ^ +| 0x0D47 3399 | uint8 | EEPROM_FSENSOR_ACTION_NA | 00h 0 | ffh 255 | Filament Sensor action: __Continue__ | LCD menu | D3 Ax0d47 C1 +| ^ | ^ | ^ | 01h 1 | ^ | Filament Sensor action: __Pause__ | ^ | ^ | 0x0D37 3383 | float | EEPROM_UVLO_SAVED_TARGET | ??? | ff ff ff ffh | Power panic saved target all-axis | ??? | D3 Ax0d37 C16 | ^ | ^ | ^ | ??? | ^ | Power panic saved target e-axis | ^ | D3 Ax0d43 C4 | ^ | ^ | ^ | ??? | ^ | Power panic saved target z-axis | ^ | D3 Ax0d3f C4 | ^ | ^ | ^ | ??? | ^ | Power panic saved target y-axis | ^ | D3 Ax0d3b C4 | ^ | ^ | ^ | ??? | ^ | Power panic saved target x-axis | ^ | D3 Ax0d37 C4 | 0x0D35 3381 | uint16 | EEPROM_UVLO_FEEDMULTIPLY | ??? | ff ffh 65355 | Power panic saved feed multiplier | ??? | D3 Ax0d35 C2 -| 0x0D34 3380 | uint8 | EEPROM_BACKLIGHT_LEVEL_HIGH | 00h - ffh | 80h 128 | LCD backlight bright _128_ Dim value to 255 | LCD menu | D3 Ax0d34 C1 -| 0x0D33 3379 | uint8 | EEPROM_BACKLIGHT_LEVEL_LOW | 00h - ffh | 32h 50 | LCD backlight dim _50_ 0 to Bright value | LCD menu | D3 Ax0d33 C1 -| 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: _Auto_ | LCD menu | D3 Ax0d32 C1 -| ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: Bright | ^ | ^ -| ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: Dim | ^ | ^ -| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | ff ffh 65535 | LCD backlight timeout: _10_ seconds | LCD menu | D3 Ax0d30 C2 +| 0x0D34 3380 | uint8 | EEPROM_BACKLIGHT_LEVEL_HIGH | 00h - ffh | 80h 128 | LCD backlight bright: __128__ Dim value to 255 | LCD menu | D3 Ax0d34 C1 +| 0x0D33 3379 | uint8 | EEPROM_BACKLIGHT_LEVEL_LOW | 00h - ffh | 32h 50 | LCD backlight dim: __50__ 0 to Bright value | LCD menu | D3 Ax0d33 C1 +| 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: __Auto__ | LCD menu | D3 Ax0d32 C1 +| ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: __Bright__ | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ +| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | ff ffh 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 ## End of EEPROM Table From 2778fa9aa049b896645df855484ffa61eae490e4 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 22 Mar 2020 15:22:14 +0100 Subject: [PATCH 214/361] Added author and version of document --- Firmware/eeprom.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index e149526e1..1f9446caa 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -1,6 +1,7 @@ /** * @file + * @author 3d-gussner */ /** \ingroup eeprom_table */ //! _This is a EEPROM table of currently implemented in Prusa firmware (dynamically generated from doxygen)._ @@ -54,6 +55,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP ### !!! D-codes are case sensitive so please don't use upper case A,C or X in the address you want to read !!! + Version 0.9 + --------------------------------------------------------------------------------- From 1b0c86cb51248118495f6da70337186ddaa5d044 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 22 Mar 2020 15:23:41 +0100 Subject: [PATCH 215/361] minor fix --- Firmware/eeprom.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 1f9446caa..b4357de3e 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -323,7 +323,6 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | ff ffh 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 - ## End of EEPROM Table | Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: From 0c655057413897a6321068d3145b597a4270a34f Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 07:23:36 +0100 Subject: [PATCH 216/361] Added PRUSA3DFW at 0x0000 --- Firmware/eeprom.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index b4357de3e..7f97c3558 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -331,6 +331,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x000E 14 | uint16 | EEPROM_FIRMWARE_VERSION_REVISION | ??? | ff ffh 65535 | Firmware version revision number DEV/ALPHA/BETA/RC| ??? | D3 Ax000e C2 | 0x000C 12 | uint16 | EEPROM_FIRMWARE_VERSION_MINOR | ??? | ff ffh 65535 | Firmware version minor number | ??? | D3 Ax000c C2 | 0x000A 10 | uint16 | EEPROM_FIRMWARE_VERSION_MAJOR | ??? | ff ffh 65535 | Firmware version major number | ??? | D3 Ax000a C2 +| 0x0000 0 | char | FW_PRUSA3D_MAGIC | ??? | ffffffffffffffffffff | __`PRUSA3DFW`__ | ??? | D3 Ax0000 C10 */ #define EEPROM_EMPTY_VALUE 0xFF From ea1a2bb3628b193cbe6b76e042c0f5454c9ce13a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 23 Mar 2020 12:37:56 +0200 Subject: [PATCH 217/361] Documentation update --- 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 a606403a5..33d0d9ebb 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5365,7 +5365,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G90 - Switch off relative mode G90: Set to Absolute Positioning - 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 left intact. */ case 90: { axis_relative_modes &= ~(X_AXIS_MASK | Y_AXIS_MASK | Z_AXIS_MASK); @@ -5374,7 +5374,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G91 - Switch on relative mode G91: Set to Relative Positioning - 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 left intact. */ case 91: { axis_relative_modes |= X_AXIS_MASK | Y_AXIS_MASK | Z_AXIS_MASK; From 32bff79fd67192963f9a8dfa2710f7579bf6fb8e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 11:40:07 +0100 Subject: [PATCH 218/361] minor changes + added EEPROM_FREE_NRx ... Some EEPROM allocations do not use the hole allocated space: - EEPROM_FARM_NUMBER is only numeric 000-999 and only uses 2 bytes to store the Farm number BUT allocated 3 bytes. Added EEPROM_FREE_NR1 as free space that can be used - EEPROM_CRASH_DET just changes 1 byte to save it status [on/off] but allocated 5 bytes. Added EEPROM_FREE_NR2 to EEPROM_FREE_NR5 as free space that can be used --- Firmware/eeprom.h | 158 +++++++++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 65 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 7f97c3558..e2b01c370 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -51,11 +51,16 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP How can you use the debug codes? - Serial terminal like Putty. - Octoprint does support D-codes - - _Pronterface_ does not support D-codes + - _Pronterface_ does __not__ support D-codes ### !!! D-codes are case sensitive so please don't use upper case A,C or X in the address you want to read !!! + + #### Usefull tools/links: + To convert hex to ascii https://www.rapidtables.com/convert/number/hex-to-ascii.html - Version 0.9 + To convert hex to dec https://www.rapidtables.com/convert/number/hex-to-decimal.html + + Version: 0.9.1 --------------------------------------------------------------------------------- @@ -66,73 +71,74 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode: __on__ / miniRambo Silent mode | ^ | ^ | 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 | ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ | ^ -| 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ffh 255 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 -| 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ffh 255 | Babystep for Y axis _unsued_ | ^ | D3 Ax0ffa C2 -| 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ffh 255 | Babystep for Z axis _lagacy_ | ^ | D3 Ax0ff8 C2 +| 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ff ffh 65535 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 +| 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ff ffh 65535 | Babystep for Y axis _unsued_ | ^ | D3 Ax0ffa C2 +| 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ff ffh 65535 | Babystep for Z axis _lagacy_ | ^ | D3 Ax0ff8 C2 | ^ | ^ | ^ | ^ | ^ | multiple values stored now in EEPROM_Sheets_base | ^ | ^ -| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | 00h 0 | ffh 255 | Unknown | ??? | D3 Ax0ff7 C1 +| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | ffh 255 | ffh 255 | Assbemled _default_ | ??? | D3 Ax0ff7 C1 | ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ | ^ -| ^ | ^ | ^ | E6h 230 | ^ | needs Live Z adjustment | ^ | ^ -| ^ | ^ | ^ | F0h 240 | ^ | needs Z calibration | ^ | ^ -| ^ | ^ | ^ | FAh 250 | ^ | needs XYZ calibration | ^ | ^ -| ^ | ^ | ^ | FFh 255 | ^ | Assbemled _default_ | ^ | ^ -| 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ??? | Babystep for Z ??? | ??? | D3 Ax0ff5 C2 -| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00h 0 | Filament used in meters | ??? | D3 Ax0ff1 C4 -| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00h 0 | Total print time | ??? | D3 Ax0fed C4 -| 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ??? | ??? | ??? | D3 Ax0fe5 C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ??? | ??? | ??? | D3 Ax0fdd C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| 0x0FD5h 4053 | float | EEPROM_BED_CALIBRATION_VEC_Y | ??? | ??? | ??? | ??? | D3 Ax0fd5 C8 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| 0x0FC5h 4037 | int16 | EEPROM_BED_CALIBRATION_Z_JITTER | ??? | ??? | ??? | ??? | D3 Ax0fc5 C16 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | e6h 230 | ^ | needs Live Z adjustment | ^ | ^ +| ^ | ^ | ^ | f0h 240 | ^ | needs Z calibration | ^ | ^ +| ^ | ^ | ^ | fah 250 | ^ | needs XYZ calibration | ^ | ^ +| ^ | ^ | ^ | 00h 0 | ^ | Unknown | ^ | ^ +| 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ff ffh 65535 | Babystep for Z ??? | ??? | D3 Ax0ff5 C2 +| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00 00 00 00h 0 | Filament used in meters | ??? | D3 Ax0ff1 C4 +| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00 00 00 00h 0 | Total print time | ??? | D3 Ax0fed C4 +| 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fe5 C8 +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fdd C8 +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| 0x0FD5h 4053 | float | EEPROM_BED_CALIBRATION_VEC_Y | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fd5 C8 +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| 0x0FC5h 4037 | int16 | EEPROM_BED_CALIBRATION_Z_JITTER | ??? | ff ffh 65535 | ??? | ??? | D3 Ax0fc5 C16 +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 | ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode: __on__ | G98 | ^ -| 0x0FC1h 4033 | int16 | EEPROM_FARM_NUMBER | ??? | ff ff ffh | Prusa farm number | ??? | D3 Ax0fc1 C3 +| 0x0FC3h 4035 | free | _EEPROM_FREE_NR1_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0fc3 C1 +| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh = 00 00 | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 | ^ | ^ | ^ | ffh 255 | | Bed correction valid | ??? | ^ -| 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h FFh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Lxxx | ^ -| 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h FFh | 00h 0 | Bed manual correction right | LCD menu | D3 Ax0fbe C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Rxxx | ^ -| 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h FFh | 00h 0 | Bed manual correction front | LCD menu | D3 Ax0fbd C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Fxxx | ^ -| 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h FFh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 -| ^ | ^ | ^ | ??? | ??? | At this moment limited to +-100um | G80 Bxxx | ^ +| 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h ffh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 +| ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Lxxx | ^ +| 0x0FBEh 4030 | char | EEPROM_BED_CORRECTION_RIGHT | 00h ffh | 00h 0 | Bed manual correction right | LCD menu | D3 Ax0fbe C1 +| ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Rxxx | ^ +| 0x0FBDh 4029 | char | EEPROM_BED_CORRECTION_FRONT | 00h ffh | 00h 0 | Bed manual correction front | LCD menu | D3 Ax0fbd C1 +| ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Fxxx | ^ +| 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h ffh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 +| ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Bxxx | ^ | 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air: __off__ | LCD menu | D3 Ax0fbb C1 -| ^ | ^ | ^ | ??? | ffh 255 | Toshiba Air: __on__ | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ffh 255 | Toshiba Air: __on__ | ^ | ^ | 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | ??? | D3 Ax0fba C1 | 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ -| ^ | ^ | ^ | ??? | ??? | ??? | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal.: __inactive__ | LCD menu | D3 Ax0faf C1 | ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal.: __active__ | ^ | ^ | 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | ??? | D3 Ax0fae C8 -| ^ | ^ | ^ | ??? | ff ff ff ffh | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ff ff ff ffh | ^ | ^ | ^ | 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1 | ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp: __calibrated__ | ^ | ^ | 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag: __inactive__ | ??? | D3 Ax0fa5 C1 | ^ | ^ | ^ | 01h 1 | ^ | Power Panic flag: __active__ | ^ | ^ | ^ | ^ | ^ | 02h 2 | ^ | Power Panic flag: __???__ | ^ | ^ | 0x0F9Dh 3997 | float | EEPROM_UVLO_CURRENT_POSITION | ??? | ffh 255 | Power Panic position | ??? | D3 Ax0f9d C8 -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0F95h 3989 | char | EEPROM_FILENAME | ??? | ffh 255 | Power Panic Filename | ??? | D3 Ax0f95 C8 -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0F91h 39851 | uint32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | ??? | D3 Ax0f91 C4 | 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | ^ | D3 Ax0f8d C4 | 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic _unused_ | ^ | D3 Ax0f8c C1 @@ -142,22 +148,23 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check disabled | LCD menu | D3 Ax0f87 C1 | ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check enabled (exception ffh=01h) | ^ | ^ | 0x0F75h 3957 | uint16 | EEPROM_UVLO_MESH_BED_LEVELING | ??? | ff ffh 65535 | Power Panic Mesh Bed Leveling | ??? | D3 Ax0f75 C18 -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ -| ^ | ^ | ^ | ??? | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ +| ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0F73h 3955 | uint16 | EEPROM_UVLO_Z_MICROSTEPS | ??? | ff ffh 65535 | Power Panic Z microsteps | ??? | D3 Ax0f73 C2 | 0x0F72h 3954 | uint8 | EEPROM_UVLO_E_ABS | ??? | ffh 255 | Power Panic ??? position | ??? | D3 Ax0f72 C1 | 0x0F6Eh 3950 | foat | EEPROM_UVLO_CURRENT_POSITION_E | ??? | ff ff ff ffh | Power Panic E position | ??? | D3 Ax0f6e C4 -| 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection: __enabled__ | LCD menu | D3 Ax0f69 C5 +| 0x0F6Dh 3949 | ??? | _EEPROM_FREE_NR2_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0f6d C1 +| 0x0F6Ch 3948 | ??? | _EEPROM_FREE_NR3_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0f6c C1 +| 0x0F6Bh 3947 | ??? | _EEPROM_FREE_NR4_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0f6b C1 +| 0x0F6Ah 3946 | ??? | _EEPROM_FREE_NR5_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0f6a C1 +| 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection: __enabled__ | LCD menu | D3 Ax0f69 C1 | ^ | ^ | ^ | 00h 0 | ^ | Crash detection: __disabled__ | LCD menu | ^ -| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ -| ^ | ^ | ^ | ??? | ??? | ^ | ??? | ^ | 0x0F68h 3944 | uint8 | EEPROM_CRASH_COUNT_Y | 00h-ffh 0-255 | ffh 255 | Crashes detected on y axis | ??? | D3 Ax0f68 C1 | 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 | Filament sensor: __enabled__ | LCD menu | D3 Ax0f67 C1 | ^ | ^ | ^ | 00h 0 | ^ | Filament sensor: __disabled__ | LCD menu | ^ @@ -198,7 +205,23 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0EF1h 3825 | uint8 | EEPROM_TMC2130_Z_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef1 C1 | 0x0EF0h 3824 | uint8 | EEPROM_TMC2130_E_MRES | ??? | ffh 255 | ??? | ??? | D3 Ax0ef0 C1 | 0x0EEE 3822 | uint16 | EEPROM_PRINTER_TYPE | ??? | ff ffh 65535 | Printer Type | ??? | D3 Ax0eee C2 +| ^ | ^ | ^ | 64 00h 100 | ^ | PRINTER_MK1 | ??? | ^ +| ^ | ^ | ^ | c8 00h 200 | ^ | PRINTER_MK2 | ??? | ^ +| ^ | ^ | ^ | c9 00h 201 | ^ | PRINTER_MK2 with MMU1 | ??? | ^ +| ^ | ^ | ^ | ca 00h 202 | ^ | PRINTER_MK2S | ??? | ^ +| ^ | ^ | ^ | cb 00h 203 | ^ | PRINTER_MK2S with MMU1 | ??? | ^ +| ^ | ^ | ^ | fa 00h 250 | ^ | PRINTER_MK2.5 | ??? | ^ +| ^ | ^ | ^ | 1a 4fh 20250 | ^ | PRINTER_MK2.5 with MMU2 | ??? | ^ +| ^ | ^ | ^ | fc 00h 252 | ^ | PRINTER_MK2.5S | ??? | ^ +| ^ | ^ | ^ | 1c 4fh 20250 | ^ | PRINTER_MK2.5S with MMU2S | ??? | ^ +| ^ | ^ | ^ | 0c 12h 300 | ^ | PRINTER_MK3 | ??? | ^ +| ^ | ^ | ^ | 4c 4fh 20300 | ^ | PRINTER_MK3 with MMU2 | ??? | ^ +| ^ | ^ | ^ | 0e 12h 302 | ^ | PRINTER_MK3S | ??? | ^ +| ^ | ^ | ^ | 4e 4fh 20302 | ^ | PRINTER_MK3S with MMU2S | ??? | ^ | 0x0EEC 3820 | uint16 | EEPROM_BOARD_TYPE | ??? | ff ffh 65535 | Board Type | ??? | D3 Ax0eec C2 +| ^ | ^ | ^ | c8 00h 200 | ^ | BOARD_RAMBO_MINI_1_0 | ??? | ^ +| ^ | ^ | ^ | cb 00h 203 | ^ | BOARD_RAMBO_MINI_1_3 | ??? | ^ +| ^ | ^ | ^ | 36 01h 310 | ^ | BOARD_EINSY_1_0a | ??? | ^ | 0x0EE8 3816 | float | EEPROM_EXTRUDER_MULTIPLIER_0 | ??? | ff ff ff ffh | Power panic Extruder 0 multiplier | ??? | D3 Ax0ee8 C4 | 0x0EE4 3812 | float | EEPROM_EXTRUDER_MULTIPLIER_1 | ??? | ff ff ff ffh | Power panic Extruder 1 multiplier | ??? | D3 Ax0ee4 C4 | 0x0EE0 3808 | float | EEPROM_EXTRUDER_MULTIPLIER_2 | ??? | ff ff ff ffh | Power panic Extruder 2 multiplier | ??? | D3 Ax0ee0 C4 @@ -250,7 +273,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 07h 7 | ^ | Mesh bed leveling points: __7x7__ | ^ | ^ | 0x0DAA 3498 | uint8 | EEPROM_MBL_PROBE_NR | 03h 3 | ffh 255 | MBL times measurements for each point: __3__ | LCD menu | D3 Ax0daa C1 | ^ | ^ | ^ | 05h 5 | ^ | MBL times measurements for each point: __5__ | ^ | ^ -| ^ | ^ | ^ | 01h 1 | ^ | MBL times measurements for each point: __7__ | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | MBL times measurements for each point: __1__ | ^ | ^ | 0x0DA9 3497 | uint8 | EEPROM_MMU_STEALTH | 01h 1 | ffh 255 | MMU2/s Silent mode: __on__ | ??? | D3 Ax0da9 C1 | ^ | ^ | ^ | 00h 0 | ^ | MMU2/s Silent mode: __off__ | ^ | ^ | 0x0DA8 3496 | uint8 | EEPROM_CHECK_MODE | 01h 1 | ffh 255 | Check mode for nozzle is: __warn__ | LCD menu | D3 Ax0da8 C1 @@ -358,7 +381,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP // The offsets are saved as 16bit signed int, scaled to tenths of microns. #define EEPROM_BED_CALIBRATION_Z_JITTER (EEPROM_BED_CALIBRATION_VEC_Y-2*8) #define EEPROM_FARM_MODE (EEPROM_BED_CALIBRATION_Z_JITTER-1) -#define EEPROM_FARM_NUMBER (EEPROM_FARM_MODE-3) +#define EEPROM_FREE_NR1 (EEPROM_FARM_MODE-1) +#define EEPROM_FARM_NUMBER (EEPROM_FREE_NR1-2) // Correction of the bed leveling, in micrometers. // Maximum 50 micrometers allowed. @@ -390,8 +414,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #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 +#dedine EEPROM_FREE_NR2 (EEPROM_UVLO_CURRENT_POSITION_E - 1) // FREE EEPROM SPACE +#dedine EEPROM_FREE_NR3 (EEPROM_FREE_NR2 - 1) // FREE EEPROM SPACE +#dedine EEPROM_FREE_NR4 (EEPROM_FREE_NR3 - 1) // FREE EEPROM SPACE +#dedine EEPROM_FREE_NR5 (EEPROM_FREE_NR4 - 1) // FREE EEPROM SPACE // Crash detection mode EEPROM setting -#define EEPROM_CRASH_DET (EEPROM_UVLO_CURRENT_POSITION_E - 5) // float (orig EEPROM_UVLO_MESH_BED_LEVELING-12) +#define EEPROM_CRASH_DET (EEPROM_FREE_NR5 - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-12) // Crash detection counter Y (last print) #define EEPROM_CRASH_COUNT_Y (EEPROM_CRASH_DET - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-15) // Filament sensor on/off EEPROM setting From fc793b59d7ce78e15bcc5afdc042bc87026e2a81 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 12:02:57 +0100 Subject: [PATCH 219/361] changed default values for bowden length after test --- Firmware/eeprom.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index e2b01c370..f9bdfb814 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -122,8 +122,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal.: __inactive__ | LCD menu | D3 Ax0faf C1 | ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal.: __active__ | ^ | ^ -| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 ff ffh | Bowden length | ??? | D3 Ax0fae C8 -| ^ | ^ | ^ | ^ | ff ff ff ffh | ^ | ^ | ^ +| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 00 00h | Bowden length | ??? | D3 Ax0fae C8 +| ^ | ^ | ^ | ^ | 00 00 00 00h | ^ | ^ | ^ | 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1 | ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp: __calibrated__ | ^ | ^ | 0x0FA5h 4005 | uint8 | EEPROM_UVLO | 00h 0 | ffh 255 | Power Panic flag: __inactive__ | ??? | D3 Ax0fa5 C1 From 5c4b3eea877d466d98494669c74ebd3c88b85da7 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 23 Mar 2020 14:57:03 +0200 Subject: [PATCH 220/361] Struct comments --- Firmware/Marlin_main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 33d0d9ebb..dd1f1b259 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -178,7 +178,11 @@ float default_retraction = DEFAULT_RETRACTION; float homing_feedrate[] = HOMING_FEEDRATE; + +//Although this flag and many others like this could be represented with a struct/bitfield for each axis (more readable and efficient code), the implementation +//would not be standard across all platforms. That being said, the code will continue to use bitmasks for independent axis. uint8_t axis_relative_modes = 0; + int feedmultiply=100; //100->1 200->2 int extrudemultiply=100; //100->1 200->2 int extruder_multiply[EXTRUDERS] = {100 From f4037b9cb4c296b42b1d82399d96eeda26303295 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 14:13:24 +0100 Subject: [PATCH 221/361] Fixes after testing --- Firmware/eeprom.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index f9bdfb814..908ba1cd9 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -101,7 +101,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 | ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode: __on__ | G98 | ^ | 0x0FC3h 4035 | free | _EEPROM_FREE_NR1_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0fc3 C1 -| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh = 00 00 | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 +| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 | ^ | ^ | ^ | ffh 255 | | Bed correction valid | ??? | ^ | 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h ffh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 @@ -112,8 +112,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Fxxx | ^ | 0x0FBCh 4028 | char | EEPROM_BED_CORRECTION_BACK | 00h ffh | 00h 0 | Bed manual correction back | LCD menu | D3 Ax0fbc C1 | ^ | ^ | ^ | ^ | ^ | At this moment limited to +-100um | G80 Bxxx | ^ -| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | 00h 0 | Toshiba Air: __off__ | LCD menu | D3 Ax0fbb C1 -| ^ | ^ | ^ | 01h 1 | ffh 255 | Toshiba Air: __on__ | ^ | ^ +| 0x0FBBh 4027 | bool | EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY | 00h 0 | ffh 255 | Toshiba Air: __off__ | LCD menu | D3 Ax0fbb C1 +| ^ | ^ | ^ | 01h 1 | ^ | Toshiba Air: __on__ | ^ | ^ | 0x0FBAh 4026 | uchar | EEPROM_PRINT_FLAG | ??? | ??? | _unsued_ | ??? | D3 Ax0fba C1 | 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ @@ -145,8 +145,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | ^ | D3 Ax0f8b C1 | 0x0F89h 3977 | uint16 | EEPROM_UVLO_FEEDRATE | ??? | ff ffh 65535 | Power Panic Feedrate | ^ | D3 Ax0f89 C2 | 0x0F88h 3976 | uint8 | EEPROM_UVLO_FAN_SPEED | ??? | ffh 255 | Power Panic Fan speed | ^ | D3 Ax0f88 C1 -| 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check disabled | LCD menu | D3 Ax0f87 C1 -| ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check enabled (exception ffh=01h) | ^ | ^ +| 0x0F87h 3975 | uint8 | EEPROM_FAN_CHECK_ENABLED | 00h 0 | ??? | Fan Check __disabled__ | LCD menu | D3 Ax0f87 C1 +| ^ | ^ | ^ | 01h 1 | ffh 255 | Fan Check __enabled__ | ^ | ^ | 0x0F75h 3957 | uint16 | EEPROM_UVLO_MESH_BED_LEVELING | ??? | ff ffh 65535 | Power Panic Mesh Bed Leveling | ??? | D3 Ax0f75 C18 | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ @@ -338,7 +338,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ??? | ^ | Power panic saved target y-axis | ^ | D3 Ax0d3b C4 | ^ | ^ | ^ | ??? | ^ | Power panic saved target x-axis | ^ | D3 Ax0d37 C4 | 0x0D35 3381 | uint16 | EEPROM_UVLO_FEEDMULTIPLY | ??? | ff ffh 65355 | Power panic saved feed multiplier | ??? | D3 Ax0d35 C2 -| 0x0D34 3380 | uint8 | EEPROM_BACKLIGHT_LEVEL_HIGH | 00h - ffh | 80h 128 | LCD backlight bright: __128__ Dim value to 255 | LCD menu | D3 Ax0d34 C1 +| 0x0D34 3380 | uint8 | EEPROM_BACKLIGHT_LEVEL_HIGH | 00h - ffh | 82h 130 | LCD backlight bright: __128__ Dim value to 255 | LCD menu | D3 Ax0d34 C1 | 0x0D33 3379 | uint8 | EEPROM_BACKLIGHT_LEVEL_LOW | 00h - ffh | 32h 50 | LCD backlight dim: __50__ 0 to Bright value | LCD menu | D3 Ax0d33 C1 | 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: __Auto__ | LCD menu | D3 Ax0d32 C1 | ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: __Bright__ | ^ | ^ From bb43fa9878d41501e41ed9b46f124c0c9691eaf5 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 14:51:40 +0100 Subject: [PATCH 222/361] typo dedine doesn't work --- Firmware/eeprom.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 908ba1cd9..ddc920d27 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -414,10 +414,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #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 -#dedine EEPROM_FREE_NR2 (EEPROM_UVLO_CURRENT_POSITION_E - 1) // FREE EEPROM SPACE -#dedine EEPROM_FREE_NR3 (EEPROM_FREE_NR2 - 1) // FREE EEPROM SPACE -#dedine EEPROM_FREE_NR4 (EEPROM_FREE_NR3 - 1) // FREE EEPROM SPACE -#dedine EEPROM_FREE_NR5 (EEPROM_FREE_NR4 - 1) // FREE EEPROM SPACE +#define EEPROM_FREE_NR2 (EEPROM_UVLO_CURRENT_POSITION_E - 1) // FREE EEPROM SPACE +#define EEPROM_FREE_NR3 (EEPROM_FREE_NR2 - 1) // FREE EEPROM SPACE +#define EEPROM_FREE_NR4 (EEPROM_FREE_NR3 - 1) // FREE EEPROM SPACE +#define EEPROM_FREE_NR5 (EEPROM_FREE_NR4 - 1) // FREE EEPROM SPACE // Crash detection mode EEPROM setting #define EEPROM_CRASH_DET (EEPROM_FREE_NR5 - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-12) // Crash detection counter Y (last print) From 6979555fab75855b8b3eab656675bfc27cde1231 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 23 Mar 2020 16:30:51 +0200 Subject: [PATCH 223/361] more comments --- Firmware/Marlin_main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dd1f1b259..4eed09429 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -181,6 +181,8 @@ float homing_feedrate[] = HOMING_FEEDRATE; //Although this flag and many others like this could be represented with a struct/bitfield for each axis (more readable and efficient code), the implementation //would not be standard across all platforms. That being said, the code will continue to use bitmasks for independent axis. +//Moreover, according to C/C++ standard, the ordering of bits is platform/compiler dependent and the compiler is allowed to align the bits arbitrarily, +//thus bit operations like shifting and masking may stop working and will be very hard to fix. uint8_t axis_relative_modes = 0; int feedmultiply=100; //100->1 200->2 From 6be66fcfcdb388060fb1515e71a276711ff13b3b Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 15:47:59 +0100 Subject: [PATCH 224/361] fix some typos --- Firmware/eeprom.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index ddc920d27..def911338 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -4,6 +4,7 @@ * @author 3d-gussner */ /** \ingroup eeprom_table */ + //! _This is a EEPROM table of currently implemented in Prusa firmware (dynamically generated from doxygen)._ @@ -43,7 +44,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP EEPROM 16-bit Empty value = 0xFFFFh 65535 - _Italic = unsued or default_ + _Italic = unused or default_ __Bold = Status__ @@ -55,7 +56,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP ### !!! D-codes are case sensitive so please don't use upper case A,C or X in the address you want to read !!! - #### Usefull tools/links: + #### Useful tools/links: To convert hex to ascii https://www.rapidtables.com/convert/number/hex-to-ascii.html To convert hex to dec https://www.rapidtables.com/convert/number/hex-to-decimal.html @@ -65,7 +66,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP --------------------------------------------------------------------------------- -| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code +| Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code | :-- | :-- | :-- | :--: | :--: | :-- | :--: | :--: | 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode: __off__ / miniRambo Power mode | LCD menu | D3 Ax0fff C1 | ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode: __on__ / miniRambo Silent mode | ^ | ^ @@ -75,7 +76,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ff ffh 65535 | Babystep for Y axis _unsued_ | ^ | D3 Ax0ffa C2 | 0x0FF8h 4088 | uint16 | EEPROM_BABYSTEP_Z | ??? | ff ffh 65535 | Babystep for Z axis _lagacy_ | ^ | D3 Ax0ff8 C2 | ^ | ^ | ^ | ^ | ^ | multiple values stored now in EEPROM_Sheets_base | ^ | ^ -| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | ffh 255 | ffh 255 | Assbemled _default_ | ??? | D3 Ax0ff7 C1 +| 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | ffh 255 | ffh 255 | Assembled _default_ | ??? | D3 Ax0ff7 C1 | ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ | ^ | ^ | ^ | ^ | e6h 230 | ^ | needs Live Z adjustment | ^ | ^ | ^ | ^ | ^ | f0h 240 | ^ | needs Z calibration | ^ | ^ @@ -139,7 +140,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ -| 0x0F91h 39851 | uint32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Postion | ??? | D3 Ax0f91 C4 +| 0x0F91h 39851 | uint32 | EEPROM_FILE_POSITION | ??? | ff ff ff ffh | Power Panic File Position | ??? | D3 Ax0f91 C4 | 0x0F8Dh 3981 | float | EEPROM_UVLO_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power Panic Z Position | ^ | D3 Ax0f8d C4 | 0x0F8Ch 3980 | ??? | EEPROM_UVLO_UNUSED_001 | ??? | ffh 255 | Power Panic _unused_ | ^ | D3 Ax0f8c C1 | 0x0F8Bh 3979 | uint8 | EEPROM_UVLO_TARGET_BED | ??? | ffh 255 | Power Panic Bed temperature | ^ | D3 Ax0f8b C1 @@ -185,8 +186,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 01h 1 | ^ | RPi Port: __enabled__ | LCD menu | ^ | 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload: __enabled__ | LCD menu | D3 Ax0f07 C1 | ^ | ^ | ^ | 00h 0 | ^ | Filament autoload: __disabled__ | LCD menu | ^ -| 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh | Total charshes on x axis | ??? | D3 Ax0f05 C2 -| 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh | Total charshes on y axis | ??? | D3 Ax0f03 C2 +| 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh | Total crashes on x axis | ??? | D3 Ax0f05 C2 +| 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh | Total crashes on y axis | ??? | D3 Ax0f03 C2 | 0x0F01h 3841 | uint16 | EEPROM_FERROR_COUNT_TOT | 0000-fffe | ff ffh | Total filament sensor errors | ??? | D3 Ax0f01 C2 | 0x0EFFh 3839 | uint16 | EEPROM_POWER_COUNT_TOT | 0000-fffe | ff ffh | Total power failures | ??? | D3 Ax0eff C2 | 0x0EFEh 3838 | uint8 | EEPROM_TMC2130_HOME_X_ORIGIN | ??? | ffh 255 | ??? | ??? | D3 Ax0efe C1 @@ -227,7 +228,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0EE0 3808 | float | EEPROM_EXTRUDER_MULTIPLIER_2 | ??? | ff ff ff ffh | Power panic Extruder 2 multiplier | ??? | D3 Ax0ee0 C4 | 0x0EDE 3806 | uint16 | EEPROM_EXTRUDEMULTIPLY | ??? | ff ffh 65535 | Power panic Extruder multiplier | ??? | D3 Ax0ede C2 | 0x0EDA 3802 | float | EEPROM_UVLO_TINY_CURRENT_POSITION_Z | ??? | ff ff ff ffh | Power panic Z position | ??? | D3 Ax0eda C4 -| 0x0ED8 3800 | uint16 | EEPROM_UVLO_TARGET_HOTEND | ??? | ff ffh 65535 | Power panic traget Hotend temperature | ??? | D3 Ax0ed8 C2 +| 0x0ED8 3800 | uint16 | EEPROM_UVLO_TARGET_HOTEND | ??? | ff ffh 65535 | Power panic target Hotend temperature | ??? | D3 Ax0ed8 C2 | 0x0ED7 3799 | uint8 | EEPROM_SOUND_MODE | 00h 0 | ffh 255 | Sound mode: __loud__ | ??? | D3 Ax0ed7 C1 | ^ | ^ | ^ | 01h 1 | ^ | Sound mode: __once__ | ^ | ^ | ^ | ^ | ^ | 02h 1 | ^ | Sound mode: __silent__ | ^ | ^ @@ -347,7 +348,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 -| Adress begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code +| Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | 0x0012 18 | uint16 | EEPROM_FIRMWARE_VERSION_END | ??? | ff ffh 65535 | ??? | ??? | D3 Ax0012 C2 | 0x0010 16 | uint16 | EEPROM_FIRMWARE_VERSION_FLAVOR | ??? | ff ffh 65535 | ??? | ??? | D3 Ax0010 C2 From 7cd5d83089b377492fbfc17fc304328e8d138bcc Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 16:54:35 +0100 Subject: [PATCH 225/361] Added S/P to Default/FactoryReset S = Statistics P = shipping Prepare --- Firmware/eeprom.h | 48 +++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index def911338..ec9c57de5 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -48,6 +48,14 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP __Bold = Status__ + In Default/FactoryReset column the + + - __S__ Statistics + - __P__ Shipping prep + - __S/P__ Statistics and Shipping prep + + will overwrite existing values to 0 or default. + --------------------------------------------------------------------------------- How can you use the debug codes? - Serial terminal like Putty. @@ -83,8 +91,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | fah 250 | ^ | needs XYZ calibration | ^ | ^ | ^ | ^ | ^ | 00h 0 | ^ | Unknown | ^ | ^ | 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ff ffh 65535 | Babystep for Z ??? | ??? | D3 Ax0ff5 C2 -| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00 00 00 00h 0 | Filament used in meters | ??? | D3 Ax0ff1 C4 -| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00 00 00 00h 0 | Total print time | ??? | D3 Ax0fed C4 +| 0x0FF1h 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00 00 00 00h 0 __S/P__| Filament used in meters | ??? | D3 Ax0ff1 C4 +| 0x0FEDh 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00 00 00 00h 0 __S/P__| Total print time | ??? | D3 Ax0fed C4 | 0x0FE5h 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fe5 C8 | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 0x0FDDh 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fdd C8 @@ -99,10 +107,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ -| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 +| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 __P__ | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 | ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode: __on__ | G98 | ^ | 0x0FC3h 4035 | free | _EEPROM_FREE_NR1_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0fc3 C1 -| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 +| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh __P__ | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 | ^ | ^ | ^ | ffh 255 | | Bed correction valid | ??? | ^ | 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h ffh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 @@ -166,15 +174,15 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0F6Ah 3946 | ??? | _EEPROM_FREE_NR5_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0f6a C1 | 0x0F69h 3945 | uint8 | EEPROM_CRASH_DET | ffh 255 | ffh 255 | Crash detection: __enabled__ | LCD menu | D3 Ax0f69 C1 | ^ | ^ | ^ | 00h 0 | ^ | Crash detection: __disabled__ | LCD menu | ^ -| 0x0F68h 3944 | uint8 | EEPROM_CRASH_COUNT_Y | 00h-ffh 0-255 | ffh 255 | Crashes detected on y axis | ??? | D3 Ax0f68 C1 -| 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 | Filament sensor: __enabled__ | LCD menu | D3 Ax0f67 C1 +| 0x0F68h 3944 | uint8 | EEPROM_CRASH_COUNT_Y | 00h-ffh 0-255 | ffh 255 __S/P__ | Crashes detected on y axis | ??? | D3 Ax0f68 C1 +| 0x0F67h 3943 | uint8 | EEPROM_FSENSOR | 01h 1 | ffh 255 __P__ | Filament sensor: __enabled__ | LCD menu | D3 Ax0f67 C1 | ^ | ^ | ^ | 00h 0 | ^ | Filament sensor: __disabled__ | LCD menu | ^ -| 0x0F65h 3942 | uint8 | EEPROM_CRASH_COUNT_X | 00h-ffh 0-255 | ffh 255 | Crashes detected on x axis | ??? | D3 Ax0f66 C1 -| 0x0F65h 3941 | uint8 | EEPROM_FERROR_COUNT | 00h-ffh 0-255 | ffh 255 | Filament sensor error counter | ??? | D3 Ax0f65 C1 -| 0x0F64h 3940 | uint8 | EEPROM_POWER_COUNT | 00h-ffh 0-255 | ffh 255 | Power failure counter | ??? | D3 Ax0f64 C1 +| 0x0F65h 3942 | uint8 | EEPROM_CRASH_COUNT_X | 00h-ffh 0-255 | ffh 255 __S/P__ | Crashes detected on x axis | ??? | D3 Ax0f66 C1 +| 0x0F65h 3941 | uint8 | EEPROM_FERROR_COUNT | 00h-ffh 0-255 | ffh 255 __S/P__ | Filament sensor error counter | ??? | D3 Ax0f65 C1 +| 0x0F64h 3940 | uint8 | EEPROM_POWER_COUNT | 00h-ffh 0-255 | ffh 255 __S/P__ | Power failure counter | ??? | D3 Ax0f64 C1 | 0x0F60h 3936 | float | EEPROM_XYZ_CAL_SKEW | ??? | ff ff ff ffh | XYZ skew value | ??? | D3 Ax0f60 C4 -| 0x0F5Fh 3935 | uint8 | EEPROM_WIZARD_ACTIVE | 00h 0 | ??? | Wizard active | ??? | D3 Ax0f5f C1 -| ^ | ^ | ^ | 01h 1 | ??? | ^ | ^ | ^ +| 0x0F5Fh 3935 | uint8 | EEPROM_WIZARD_ACTIVE | 01h 1 | 01h 1 __P__ | Wizard __active__ | ??? | D3 Ax0f5f C1 +| ^ | ^ | ^ | 00h 0 | ^ | Wizard __inactive__ | ^ | ^ | 0x0F5Dh 3933 | uint16 | EEPROM_BELTSTATUS_X | ??? | ff ffh | X Beltstatus | ??? | D3 Ax0f5d C2 | 0x0F5Bh 3931 | uint16 | EEPROM_BELTSTATUS_Y | ??? | ff ffh | Y Beltstatus | ??? | D3 Ax0f5b C2 | 0x0F5Ah 3930 | uint8 | EEPROM_DIR_DEPTH | 00h-ffh 0-255 | ffh 255 | Directory depth | ??? | D3 Ax0f5a C1 @@ -184,12 +192,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 02h 1 | ^ | SD card: __not sorted__ | LCD menu | ^ | 0x0F08h 3848 | uint8 | EEPROM_SECOND_SERIAL_ACTIVE | 00h 0 | ffh 255 | RPi Port: __disabled__ | LCD menu | D3 Ax0f08 C1 | ^ | ^ | ^ | 01h 1 | ^ | RPi Port: __enabled__ | LCD menu | ^ -| 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 | Filament autoload: __enabled__ | LCD menu | D3 Ax0f07 C1 +| 0x0F07h 3847 | uint8 | EEPROM_FSENS_AUTOLOAD_ENABLED | 01h 1 | ffh 255 __P__ | Filament autoload: __enabled__ | LCD menu | D3 Ax0f07 C1 | ^ | ^ | ^ | 00h 0 | ^ | Filament autoload: __disabled__ | LCD menu | ^ -| 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh | Total crashes on x axis | ??? | D3 Ax0f05 C2 -| 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh | Total crashes on y axis | ??? | D3 Ax0f03 C2 -| 0x0F01h 3841 | uint16 | EEPROM_FERROR_COUNT_TOT | 0000-fffe | ff ffh | Total filament sensor errors | ??? | D3 Ax0f01 C2 -| 0x0EFFh 3839 | uint16 | EEPROM_POWER_COUNT_TOT | 0000-fffe | ff ffh | Total power failures | ??? | D3 Ax0eff C2 +| 0x0F05h 3845 | uint16 | EEPROM_CRASH_COUNT_X_TOT | 0000-fffe | ff ffh __S/P__ | Total crashes on x axis | ??? | D3 Ax0f05 C2 +| 0x0F03h 3843 | uint16 | EEPROM_CRASH_COUNT_Y_TOT | 0000-fffe | ff ffh __S/P__ | Total crashes on y axis | ??? | D3 Ax0f03 C2 +| 0x0F01h 3841 | uint16 | EEPROM_FERROR_COUNT_TOT | 0000-fffe | ff ffh __S/P__ | Total filament sensor errors | ??? | D3 Ax0f01 C2 +| 0x0EFFh 3839 | uint16 | EEPROM_POWER_COUNT_TOT | 0000-fffe | ff ffh __S/P__ | Total power failures | ??? | D3 Ax0eff C2 | 0x0EFEh 3838 | uint8 | EEPROM_TMC2130_HOME_X_ORIGIN | ??? | ffh 255 | ??? | ??? | D3 Ax0efe C1 | 0x0EFDh 3837 | uint8 | EEPROM MC2130_HOME_X_BSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0efd C1 | 0x0EFCh 3836 | uint8 | EEPROM_TMC2130_HOME_X_FSTEPS | ??? | ffh 255 | ??? | ??? | D3 Ax0efc C1 @@ -237,10 +245,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 00h 0 | ^ | MMU2/s autodeplete: __off__ | ^ | ^ | 0x0ED5 3797 | bool | EEPROM_FSENS_OQ_MEASS_ENABLED | ??? | ffh 255 | PAT1925 ??? | ??? | D3 Ax0ed5 C1 | ^ | ^ | ^ | ??? | ^ | PAT1925 ??? | ^ | ^ -| 0x0ED3 3795 | uint16 | EEPROM_MMU_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total failures | ??? | D3 Ax0ed3 C2 -| 0x0ED2 3794 | uint8 | EEPROM_MMU_FAIL | ??? | ffh 255 | MMU2/s fails during print | ??? | D3 Ax0ed2 C1 -| 0x0ED0 3792 | uint16 | EEPROM_MMU_LOAD_FAIL_TOT | ??? | ff ffh 65535 | MMU2/s total load failures | ??? | D3 Ax0ed0 C2 -| 0x0ECF 3791 | uint8 | EEPROM_MMU_LOAD_FAIL | ??? | ffh 255 | MMU2/s load failures during print | ??? | D3 Ax0ecf C1 +| 0x0ED3 3795 | uint16 | EEPROM_MMU_FAIL_TOT | ??? | ff ffh 65535 __S/P__ | MMU2/s total failures | ??? | D3 Ax0ed3 C2 +| 0x0ED2 3794 | uint8 | EEPROM_MMU_FAIL | ??? | ffh 255 __S/P__ | MMU2/s fails during print | ??? | D3 Ax0ed2 C1 +| 0x0ED0 3792 | uint16 | EEPROM_MMU_LOAD_FAIL_TOT | ??? | ff ffh 65535 __S/P__ | MMU2/s total load failures | ??? | D3 Ax0ed0 C2 +| 0x0ECF 3791 | uint8 | EEPROM_MMU_LOAD_FAIL | ??? | ffh 255 __S/P__ | MMU2/s load failures during print | ??? | D3 Ax0ecf C1 | 0x0ECE 3790 | uint8 | EEPROM_MMU_CUTTER_ENABLED | 00h 0 | ffh 255 | MMU2/s cutter: __disabled__ | LCD menu | D3 Ax0ece C1 | ^ | ^ | ^ | 01h 1 | ^ | MMU2/s cutter: __enabled__ | ^ | ^ | ^ | ^ | ^ | 02h 2 | ^ | MMU2/s cutter: __always__ | ^ | ^ From 95a24320f7d7293d686cda94d0f4a6e29709ee98 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Mar 2020 17:10:40 +0100 Subject: [PATCH 226/361] Added language factory reset and some other minor fixes --- Firmware/eeprom.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index ec9c57de5..64bd4a9bc 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -50,11 +50,14 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP In Default/FactoryReset column the + - __L__ Language - __S__ Statistics - __P__ Shipping prep - __S/P__ Statistics and Shipping prep will overwrite existing values to 0 or default. + A FactoryReset All Data will overwrite the hole EEPROM with ffh and some values will be initialized automatically, + others need a reset / reboot. --------------------------------------------------------------------------------- How can you use the debug codes? @@ -78,7 +81,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | :-- | :-- | :-- | :--: | :--: | :-- | :--: | :--: | 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode: __off__ / miniRambo Power mode | LCD menu | D3 Ax0fff C1 | ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode: __on__ / miniRambo Silent mode | ^ | ^ -| 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 +| 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 __L__ | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 | ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ | ^ | 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ff ffh 65535 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 | 0x0FFAh 4090 | uint16 | EEPROM_BABYSTEP_Y | ??? | ff ffh 65535 | Babystep for Y axis _unsued_ | ^ | D3 Ax0ffa C2 @@ -87,7 +90,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0FF7h 4087 | uint8 | EEPROM_CALIBRATION_STATUS | ffh 255 | ffh 255 | Assembled _default_ | ??? | D3 Ax0ff7 C1 | ^ | ^ | ^ | 01h 1 | ^ | Calibrated | ^ | ^ | ^ | ^ | ^ | e6h 230 | ^ | needs Live Z adjustment | ^ | ^ -| ^ | ^ | ^ | f0h 240 | ^ | needs Z calibration | ^ | ^ +| ^ | ^ | ^ | f0h 240 | ^ __P__ | needs Z calibration | ^ | ^ | ^ | ^ | ^ | fah 250 | ^ | needs XYZ calibration | ^ | ^ | ^ | ^ | ^ | 00h 0 | ^ | Unknown | ^ | ^ | 0x0FF5h 4085 | uint16 | EEPROM_BABYSTEP_Z0 | ??? | ff ffh 65535 | Babystep for Z ??? | ??? | D3 Ax0ff5 C2 @@ -107,10 +110,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ -| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 __P__ | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 +| 0x0FC4h 4036 | bool | EEPROM_FARM_MODE | 00h 0 | ffh 255 __P__ | Prusa farm mode: __off__ | G99 | D3 Ax0fc4 C1 | ^ | ^ | ^ | 01h 1 | ^ | Prusa farm mode: __on__ | G98 | ^ | 0x0FC3h 4035 | free | _EEPROM_FREE_NR1_ | ??? | ffh 255 | _Free EEPROM space_ | _free space_ | D3 Ax0fc3 C1 -| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh __P__ | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 +| 0x0FC1h 4033 | ??? | EEPROM_FARM_NUMBER | 000-999 | ff ffh / 000 __P__ | Prusa farm number _only 0-9 are allowed: 000-999_ | LCD menu | D3 Ax0fc1 C2 | 0x0FC0h 4032 | bool | EEPROM_BED_CORRECTION_VALID | 00h 0 | 00h 0 | Bed correction invalid | ??? | D3 Ax0fc0 C1 | ^ | ^ | ^ | ffh 255 | | Bed correction valid | ??? | ^ | 0x0FBFh 4031 | char | EEPROM_BED_CORRECTION_LEFT | 00h ffh | 00h 0 | Bed manual correction left | LCD menu | D3 Ax0fbf C1 From 0d00db1c335d42a94ea91e5fa6ba60e3c9d40255 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 25 Mar 2020 17:26:27 +0100 Subject: [PATCH 227/361] Some D-codes are case sensitive --- Firmware/Marlin_main.cpp | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9a8ac81ef..413781b63 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8809,12 +8809,18 @@ Sigma_Exit: This command can be used without any additional parameters. It will read the entire RAM. #### Usage - D3 [ A | C | X ] + D2 [ A | C | X ] #### Parameters - - `A` - Address (0x0000-0x1fff) - - `C` - Count (0x0001-0x2000) + - `A` - Address (x0000-x1fff) + - `C` - Count (1-8192) - `X` - Data + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + */ case 2: dcode_2(); break; @@ -8829,9 +8835,15 @@ Sigma_Exit: D3 [ A | C | X ] #### Parameters - - `A` - Address (0x0000-0x0fff) - - `C` - Count (0x0001-0x1000) - - `X` - Data + - `A` - Address (x0000-x0fff) + - `C` - Count (1-4096) + - `X` - Data (hex) + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + */ case 3: dcode_3(); break; @@ -8861,14 +8873,20 @@ Sigma_Exit: This command can be used without any additional parameters. It will read the 1kb FLASH. #### Usage - D3 [ A | C | X | E ] + D5 [ A | C | X | E ] #### Parameters - - `A` - Address (0x00000-0x3ffff) - - `C` - Count (0x0001-0x2000) + - `A` - Address (x00000-x3ffff) + - `C` - Count (1-8192) - `X` - Data - `E` - Erase - */ + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + + */ case 5: dcode_5(); break; break; From 4c518545f1927e12149f3ae5b14a6189bc961ced Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 25 Mar 2020 17:33:10 +0100 Subject: [PATCH 228/361] Updated the documentation copy past from Marlin_main.cpp doxygen documentation d-codes --- Firmware/Dcodes.cpp | 279 ++++++++++++++++++++++----------------- Firmware/Marlin_main.cpp | 1 - 2 files changed, 155 insertions(+), 125 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 70ffe2c49..ebf34b4fc 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -100,16 +100,22 @@ void print_mem(uint32_t address, uint16_t count, uint8_t type, uint8_t countperl #ifdef DEBUG_DCODE3 #define EEPROM_SIZE 0x1000 /*! - * ### 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 (x0000-x0fff) + - `C` - Count (1-4096) + - `X` - Data (hex) + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + */ void dcode_3() { @@ -206,13 +212,13 @@ void dcode__1() #ifdef DEBUG_DCODES /*! - * ### D0 - Reset D0: Reset - - D0 [ B ] - - - `B` - Bootloader - * + #### Usage + + D0 [ B ] + + #### Parameters + - `B` - Bootloader */ void dcode_0() { @@ -251,16 +257,22 @@ void dcode_1() } /*! - * - ### D2 - Read/Write RAM 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 RAM. - - D2 [ A | C | X ] - - - `A` - Address (0x0000-0x1fff) - - `C` - Count (0x0001-0x2000) - - `X` - Data - * + #### Usage + + D2 [ A | C | X ] + + #### Parameters + - `A` - Address (x0000-x1fff) + - `C` - Count (1-8192) + - `X` - Data + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + */ void dcode_2() { @@ -306,17 +318,17 @@ void dcode_2() } /*! - * - ### 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) */ void dcode_4() { @@ -351,18 +363,24 @@ 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. - - D5 [ A | C | X | E ] - - - `A` - Address (0x00000-0x3ffff) - - `C` - Count (0x0001-0x2000) - - `X` - Data - - `E` - Erase - * - */ + #### Usage + + D5 [ A | C | X | E ] + + #### Parameters + - `A` - Address (x00000-x3ffff) + - `C` - Count (1-8192) + - `X` - Data + - `E` - Erase + + #### Notes + - The hex address needs to be lowercase without the 0 before the x + - Count is decimal + - The hex data needs to be lowercase + + */ void dcode_5() { printf_P(PSTR("D5 - Read/Write FLASH\n")); @@ -427,24 +445,18 @@ 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"); @@ -461,16 +473,16 @@ 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] - * + #### 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] */ void dcode_8() { @@ -514,21 +526,21 @@ void dcode_8() } /*! - * ### 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 */ const char* dcode_9_ADC_name(uint8_t i) { @@ -604,11 +616,8 @@ 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"); @@ -616,11 +625,10 @@ void dcode_10() } /*! - * ### D12 - Time D12: Time - - * - */ + Writes the actual time in the log file. + */ + void dcode_12() {//Time LOG("D12 - Time\n"); @@ -632,38 +640,61 @@ void dcode_12() #include "planner.h" #include "tmc2130.h" extern void st_synchronize(); -/** - * @brief D2130 Trinamic stepper controller - * D2130[subcommand][value] - * * Axis - * * * 'X' - * * * 'Y' - * * * 'Z' - * * * 'E' - * * command - * * * '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" - * * * * *0, 180..250 meaning: off, 0.9..1.25, recommended value is 1.1 - * * * '@' 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 + @todo Please review by owner of the code. RepRap Wiki Gcode needs to be updated after review of owner as well. + + #### Usage + + D2130 [ Axis | Command | Subcommand | Value ] + + #### Parameters + - 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 + * + */ void dcode_2130() { printf_P(PSTR("D2130 - TMC2130\n")); @@ -767,18 +798,18 @@ void dcode_2130() #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 - * + #### 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 */ void dcode_9125() { diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 413781b63..1a17e40d1 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9105,7 +9105,6 @@ Sigma_Exit: For more information see https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2130_datasheet.pdf * */ - case 2130: dcode_2130(); break; #endif //TMC2130 From 82cd1f9f841509a760072ed51fde17885ebaa463 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 25 Mar 2020 17:44:43 +0100 Subject: [PATCH 229/361] Typo. thanks @leptun --- Firmware/eeprom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 64bd4a9bc..bed2d20be 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -56,7 +56,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP - __S/P__ Statistics and Shipping prep will overwrite existing values to 0 or default. - A FactoryReset All Data will overwrite the hole EEPROM with ffh and some values will be initialized automatically, + A FactoryReset All Data will overwrite the whole EEPROM with ffh and some values will be initialized automatically, others need a reset / reboot. --------------------------------------------------------------------------------- From 9b394dcbe6ae718856f92058101d8170c0bf40c2 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 26 Mar 2020 13:55:23 +0100 Subject: [PATCH 230/361] Update to Version 1.0 --- Firmware/eeprom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index bed2d20be..17fcf0895 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -72,7 +72,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP To convert hex to dec https://www.rapidtables.com/convert/number/hex-to-decimal.html - Version: 0.9.1 + Version: 1.0 --------------------------------------------------------------------------------- From 2ceec597a59a765be54c7bac3d89410184857e55 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 26 Mar 2020 14:08:35 +0100 Subject: [PATCH 231/361] Fix typo --- Firmware/Dcodes.cpp | 2 +- Firmware/Marlin_main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index ebf34b4fc..79695c9e7 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -626,7 +626,7 @@ void dcode_10() /*! ### D12 - Time D12: Time - Writes the actual time in the log file. + Writes the current time in the log file. */ void dcode_12() diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1a17e40d1..ac0d3b5dc 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8950,7 +8950,7 @@ Sigma_Exit: /*! ### D12 - Time D12: Time - Writes the actual time in the log file. + Writes the current time in the log file. */ #endif //DEBUG_DCODES From 34ac2917ae7d444a8560966eb4f043dd446eaadb Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Thu, 26 Mar 2020 14:40:47 +0100 Subject: [PATCH 232/361] fix. warning "Macro expansion producing 'defined' has undefined behavior" update screen layout comments --- Firmware/Marlin_main.cpp | 6 +++--- Firmware/config.h | 6 ++++-- Firmware/fsensor.cpp | 16 +++++++------- Firmware/fsensor.h | 2 +- Firmware/temperature.cpp | 4 ++-- Firmware/temperature.h | 2 +- Firmware/ultralcd.cpp | 45 +++++++++++++++++++--------------------- Firmware/ultralcd.h | 4 ++-- 8 files changed, 42 insertions(+), 43 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d0ee5a3b9..95ea92e1a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9445,7 +9445,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s { #ifdef FILAMENT_SENSOR bool bInhibitFlag; -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG static uint8_t nFSCheckCount=0; #endif // IR_SENSOR_ANALOG @@ -9457,7 +9457,7 @@ static uint8_t nFSCheckCount=0; #endif // PAT9125 #ifdef IR_SENSOR bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active #endif // IR_SENSOR_ANALOG #endif // IR_SENSOR @@ -9465,7 +9465,7 @@ static uint8_t nFSCheckCount=0; { if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG bool bTemp=current_voltage_raw_IR>IRsensor_Hmin_TRESHOLD; bTemp=bTemp&¤t_voltage_raw_IR9 #endif -#if IR_SENSOR_ANALOG +#ifdef 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 ba56e6819..94e11a2fc 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -78,7 +78,7 @@ extern int current_voltage_raw_pwr; extern int current_voltage_raw_bed; #endif -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG extern int current_voltage_raw_IR; #endif //IR_SENSOR_ANALOG diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c23f2a236..dc4fa56bb 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -68,7 +68,7 @@ uint8_t SilentModeMenu_MMU = 1; //activate mmu unit stealth mode int8_t FSensorStateMenu = 1; -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG bool bMenuFSDetect=false; #endif //IR_SENSOR_ANALOG @@ -239,7 +239,7 @@ static FanCheck lcd_selftest_fan_auto(int _fan); static bool lcd_selftest_fsensor(); #endif //PAT9125 static bool selftest_irsensor(); -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG static bool lcd_selftest_IRsensor(bool bStandalone=false); static void lcd_detect_IRsensor(); #endif //IR_SENSOR_ANALOG @@ -1945,7 +1945,7 @@ static void lcd_menu_temperatures() menu_back_if_clicked(); } -#if defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || IR_SENSOR_ANALOG +#if defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || defined(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)) @@ -1957,27 +1957,24 @@ static void lcd_menu_temperatures() //! | | //! | PWR: 00.0V | c=12 r=1 //! | Bed: 00.0V | c=12 r=1 -//! | | +//! | IR : 00.0V | c=12 r=1 optional //! ---------------------- //! @endcode //! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations. 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(); -#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); + 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: %4.1fV\n" " BED: %4.1fV"), volt_pwr, volt_bed); +#ifdef 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(); + menu_back_if_clicked(); } -#endif //defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || IR_SENSOR_ANALOG +#endif //defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || defined(IR_SENSOR_ANALOG) #ifdef TMC2130 //! @brief Show Belt Status @@ -2151,7 +2148,7 @@ static void lcd_support_menu() MENU_ITEM_BACK_P(_i("Date:"));////MSG_DATE c=17 r=1 MENU_ITEM_BACK_P(PSTR(__DATE__)); -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG MENU_ITEM_BACK_P(STR_SEPARATOR); MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:")); switch(oFsensorPCB) @@ -5653,7 +5650,7 @@ SETTINGS_VERSION; MENU_END(); } -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG static void lcd_fsensor_actionNA_set(void) { switch(oFsensorActionNA) @@ -5719,7 +5716,7 @@ void lcd_hw_setup_menu(void) // can not be "static" SETTINGS_NOZZLE; MENU_ITEM_SUBMENU_P(_i("Checks"), lcd_checking_menu); -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG FSENSOR_ACTION_NA; MENU_ITEM_FUNCTION_P(PSTR("FS Detect"), lcd_detect_IRsensor); #endif //IR_SENSOR_ANALOG @@ -7140,7 +7137,7 @@ static void lcd_tune_menu() else { MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_ON), lcd_fsensor_state_set); } -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG FSENSOR_ACTION_NA; #endif //IR_SENSOR_ANALOG #endif //FILAMENT_SENSOR @@ -7520,7 +7517,7 @@ void lcd_belttest() } #endif //TMC2130 -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG static bool lcd_selftest_IRsensor(bool bStandalone) { bool bAction; @@ -7586,7 +7583,7 @@ bool lcd_selftest() int _progress = 0; bool _result = true; bool _swapped_fan = false; -//#if IR_SENSOR_ANALOG +//#ifdef IR_SENSOR_ANALOG #if (0) bool bAction; bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); @@ -7796,7 +7793,7 @@ bool lcd_selftest() _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK } #endif //PAT9125 -//#if IR_SENSOR_ANALOG +//#ifdef IR_SENSOR_ANALOG #if (0) _progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor _result = lcd_selftest_IRsensor(); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index ca64659ae..d82d71d90 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -140,7 +140,7 @@ extern uint8_t farm_status; #define SILENT_MODE_OFF SILENT_MODE_POWER #endif -#if IR_SENSOR_ANALOG +#ifdef IR_SENSOR_ANALOG extern bool bMenuFSDetect; #endif //IR_SENSOR_ANALOG @@ -257,7 +257,7 @@ enum class WizState : uint8_t void lcd_wizard(WizState state); #define VOLT_DIV_REF 5 -#if IR_SENSOR_ANALOG +#ifdef 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) From 818efb4fa203daa731923b0458f2b2800da4e42a Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Thu, 26 Mar 2020 15:07:48 +0100 Subject: [PATCH 233/361] updated messages + slight refactoring to save some bytes --- Firmware/Marlin_main.cpp | 2 +- Firmware/ultralcd.cpp | 103 +++++++++++++++++++-------------------- Firmware/ultralcd.h | 1 + 3 files changed, 53 insertions(+), 53 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 95ea92e1a..ed38ddede 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9480,7 +9480,7 @@ static uint8_t nFSCheckCount=0; nFSCheckCount=0; // not necessary oFsensorPCB=ClFsensorPCB::_Rev03b; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); - printf_P(PSTR("Filament sensor board change detected: revision 03b or newer\n")); + printf_IRSensorAnalogBoardChange(true); lcd_setstatuspgm(_i("FS rev. 03b or newer")); } } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index dc4fa56bb..78f2df71f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2160,10 +2160,8 @@ static void lcd_support_menu() MENU_ITEM_BACK_P(PSTR(" 03b or newer")); break; case ClFsensorPCB::_Undef: - MENU_ITEM_BACK_P(PSTR(" N/A")); - break; default: - MENU_ITEM_BACK_P(PSTR(" unknown")); + MENU_ITEM_BACK_P(PSTR(" state unknown")); } #endif // IR_SENSOR_ANALOG @@ -5718,7 +5716,7 @@ void lcd_hw_setup_menu(void) // can not be "static" #ifdef IR_SENSOR_ANALOG FSENSOR_ACTION_NA; - MENU_ITEM_FUNCTION_P(PSTR("FS Detect"), lcd_detect_IRsensor); + MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor); #endif //IR_SENSOR_ANALOG MENU_END(); } @@ -7518,58 +7516,59 @@ void lcd_belttest() #endif //TMC2130 #ifdef IR_SENSOR_ANALOG -static bool lcd_selftest_IRsensor(bool bStandalone) -{ -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)) - { - if(!bStandalone) - 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)) - { - if(!bStandalone) - 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); +// called also from marlin_main.cpp +void printf_IRSensorAnalogBoardChange(bool bPCBrev03b){ + printf_P(PSTR("Filament sensor board change detected: revision %S\n"), bPCBrev03b ? PSTR("03b or newer") : PSTR("03 or older")); } -static void lcd_detect_IRsensor() +static bool lcd_selftest_IRsensor(bool bStandalone) { -bool bAction; + bool bAction; + bool bPCBrev03b; + uint16_t volt_IR_int; + float volt_IR; -bMenuFSDetect=true; // inhibits some code inside "manage_inactivity()" -bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); -if(!bAction) - { - lcd_show_fullscreen_message_and_wait_P(_i("... so unload the filament and repeat action!")); - return; - } -bAction=lcd_selftest_IRsensor(true); -if(bAction) - lcd_show_fullscreen_message_and_wait_P(_i("PCB check successful - withdraw the filament now!")); -else lcd_show_fullscreen_message_and_wait_P(_i("PCB check unsuccessful - withdraw the filament now!")); -bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" + 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)){ + if(!bStandalone) + 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)){ + if(!bStandalone) + lcd_selftest_error(TestError::FsensorLevel,"LOW",""); + return(false); + } + if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev03b" + printf_IRSensorAnalogBoardChange(bPCBrev03b); + oFsensorPCB=bPCBrev03b?ClFsensorPCB::_Rev03b:ClFsensorPCB::_Old; + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); + } + return(true); +} + +static void lcd_detect_IRsensor(){ + bool bAction; + + bMenuFSDetect = true; // inhibits some code inside "manage_inactivity()" + bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament loaded?"), false, false); + if(!bAction){ + lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action.")); + return; + } + bAction = lcd_selftest_IRsensor(true); + if(bAction) + lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now.")); + else + lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again.")); + bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index d82d71d90..c183e0a5c 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -142,6 +142,7 @@ extern uint8_t farm_status; #ifdef IR_SENSOR_ANALOG extern bool bMenuFSDetect; +void printf_IRSensorAnalogBoardChange(bool bPCBrev03b); #endif //IR_SENSOR_ANALOG extern int8_t SilentModeMenu; From d0c51b9e73847d06c0b62aa5e0b451b005227878 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 26 Mar 2020 19:06:35 +0200 Subject: [PATCH 234/361] int -> bool --- Firmware/Marlin.h | 4 ++-- Firmware/tmc2130.cpp | 2 +- Firmware/ultralcd.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index d5462a6ad..d04860b3e 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -311,9 +311,9 @@ extern int8_t lcd_change_fil_state; extern float default_retraction; #ifdef TMC2130 -bool homeaxis(int axis, bool doError = 1, uint8_t cnt = 1, uint8_t* pstep = 0); +bool homeaxis(int axis, bool doError = true, uint8_t cnt = 1, uint8_t* pstep = 0); #else -bool homeaxis(int axis, bool doError = 1, uint8_t cnt = 1); +bool homeaxis(int axis, bool doError = true, uint8_t cnt = 1); #endif //TMC2130 diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index d0fcd2eed..3a4e5b51e 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -994,7 +994,7 @@ bool tmc2130_home_calibrate(uint8_t axis) uint8_t step[16]; uint8_t cnt[16]; uint8_t val[16]; - homeaxis(axis, 1, 16, step); + homeaxis(axis, true, 16, step); bubblesort_uint8(step, 16, 0); printf_P(PSTR("sorted samples:\n")); for (uint8_t i = 0; i < 16; i++) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2610d0839..0fbdefc43 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7697,7 +7697,7 @@ bool lcd_selftest() set_destination_to_current(); _progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500); #ifdef TMC2130 - _result = homeaxis(Z_AXIS, 0); + _result = homeaxis(Z_AXIS, false); #else _result = lcd_selfcheck_axis(Z_AXIS, Z_MAX_POS); #endif //TMC2130 From 159c1d68a6efb181adfff1998e856c8b02ee8886 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 28 Mar 2020 10:40:50 +0100 Subject: [PATCH 235/361] Fix missing (hex) in D5 code --- Firmware/Dcodes.cpp | 2 +- Firmware/Marlin_main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 79695c9e7..9b491a3cf 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -372,7 +372,7 @@ void dcode_4() #### Parameters - `A` - Address (x00000-x3ffff) - `C` - Count (1-8192) - - `X` - Data + - `X` - Data (hex) - `E` - Erase #### Notes diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e40cfb2..d8b8957f0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8882,7 +8882,7 @@ Sigma_Exit: #### Parameters - `A` - Address (x00000-x3ffff) - `C` - Count (1-8192) - - `X` - Data + - `X` - Data (hex) - `E` - Erase #### Notes From 7179151d3f4a430c300fdcf21478fcdd2babe005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?val=C3=A8re=20didon?= Date: Sun, 29 Mar 2020 17:26:56 +0200 Subject: [PATCH 236/361] feutre -> furtif Translation error of Stealth --- lang/lang_en_fr.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index f6add9480..51ddf1596 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -20,7 +20,7 @@ #MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -"ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode feutre" +"ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif" # ">Cancel" @@ -550,7 +550,7 @@ #MSG_SILENT "Silent" -"Feutre" +"Furtif" # "MMU needs user attention." From 0f9aa00eaf37a05c4ee8ff5639a29e7315892c04 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 30 Mar 2020 10:36:13 +0200 Subject: [PATCH 237/361] Typo in some hex default values --- Firmware/eeprom.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 17fcf0895..c1eb662e5 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -225,10 +225,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | fa 00h 250 | ^ | PRINTER_MK2.5 | ??? | ^ | ^ | ^ | ^ | 1a 4fh 20250 | ^ | PRINTER_MK2.5 with MMU2 | ??? | ^ | ^ | ^ | ^ | fc 00h 252 | ^ | PRINTER_MK2.5S | ??? | ^ -| ^ | ^ | ^ | 1c 4fh 20250 | ^ | PRINTER_MK2.5S with MMU2S | ??? | ^ -| ^ | ^ | ^ | 0c 12h 300 | ^ | PRINTER_MK3 | ??? | ^ +| ^ | ^ | ^ | 1c 4fh 20252 | ^ | PRINTER_MK2.5S with MMU2S | ??? | ^ +| ^ | ^ | ^ | 2c 01h 300 | ^ | PRINTER_MK3 | ??? | ^ | ^ | ^ | ^ | 4c 4fh 20300 | ^ | PRINTER_MK3 with MMU2 | ??? | ^ -| ^ | ^ | ^ | 0e 12h 302 | ^ | PRINTER_MK3S | ??? | ^ +| ^ | ^ | ^ | 2e 01h 302 | ^ | PRINTER_MK3S | ??? | ^ | ^ | ^ | ^ | 4e 4fh 20302 | ^ | PRINTER_MK3S with MMU2S | ??? | ^ | 0x0EEC 3820 | uint16 | EEPROM_BOARD_TYPE | ??? | ff ffh 65535 | Board Type | ??? | D3 Ax0eec C2 | ^ | ^ | ^ | c8 00h 200 | ^ | BOARD_RAMBO_MINI_1_0 | ??? | ^ @@ -355,7 +355,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: __Auto__ | LCD menu | D3 Ax0d32 C1 | ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: __Bright__ | ^ | ^ | ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ -| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | ff ffh 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 +| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 00 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 From 988ba6d8b080b9dea1892c5e8b612f037cceb368 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 30 Mar 2020 15:37:05 +0300 Subject: [PATCH 238/361] Fix DEBUG_BUILD --- Firmware/Dcodes.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 79695c9e7..cda531710 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -1,5 +1,6 @@ #include "Dcodes.h" //#include "Marlin.h" +#include "configuration.h" #include "language.h" #include "cmdqueue.h" #include @@ -185,7 +186,6 @@ void dcode_3() #define BOOT_APP_FLG_COPY 0x02 #define BOOT_APP_FLG_FLASH 0x04 -extern uint8_t fsensor_log; extern float current_temperature_pinda; extern float axis_steps_per_unit[NUM_AXIS]; @@ -194,6 +194,8 @@ extern float axis_steps_per_unit[NUM_AXIS]; #endif //0 #define LOG(args...) +extern uint8_t fsensor_log; + /*! * ### D-1 - Endless Loop D-1: Endless Loop From 104f81cd27feae620055a19f0f5a2f9ec8c9e8e2 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 30 Mar 2020 15:42:30 +0300 Subject: [PATCH 239/361] Fix case sensitive include --- Firmware/Dcodes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index cda531710..8a7e63e51 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -1,6 +1,6 @@ #include "Dcodes.h" //#include "Marlin.h" -#include "configuration.h" +#include "Configuration.h" #include "language.h" #include "cmdqueue.h" #include From f13269d8a9f9ac9eb4c4078e37f57f3eea86d838 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 30 Mar 2020 16:50:50 +0300 Subject: [PATCH 240/361] Code cleanup --- Firmware/Dcodes.cpp | 4 ++-- Firmware/fsensor.cpp | 2 ++ Firmware/fsensor.h | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 8a7e63e51..67cf1eb80 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -194,8 +194,6 @@ extern float axis_steps_per_unit[NUM_AXIS]; #endif //0 #define LOG(args...) -extern uint8_t fsensor_log; - /*! * ### D-1 - Endless Loop D-1: Endless Loop @@ -845,11 +843,13 @@ void dcode_9125() pat9125_y = (int)code_value(); LOG("pat9125_y=%d\n", pat9125_y); } +#ifdef DEBUG_FSENSOR_LOG if (code_seen('L')) { fsensor_log = (int)code_value(); LOG("fsensor_log=%d\n", fsensor_log); } +#endif //DEBUG_FSENSOR_LOG } #endif //PAT9125 diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index cfb378edf..219ab4f85 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -69,8 +69,10 @@ unsigned long fsensor_softfail_last = 0; uint8_t fsensor_softfail_ccnt = 0; #endif +#ifdef DEBUG_FSENSOR_LOG //! log flag: 0=log disabled, 1=log enabled uint8_t fsensor_log = 1; +#endif //DEBUG_FSENSOR_LOG //! @name filament autoload variables diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 19f968128..4949381b4 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -72,6 +72,9 @@ extern bool fsensor_oq_result(void); //! @{ extern void fsensor_st_block_chunk(int cnt); +// debugging +extern uint8_t fsensor_log; + // 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 From 9abc79d89cb9d0b7dd2adb044f44d9ef11828af3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 30 Mar 2020 16:16:07 +0200 Subject: [PATCH 241/361] EEPROM_BACKLIGHT_TIMEOUT min is 1 sec --- Firmware/eeprom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index c1eb662e5..5fdd90809 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -355,7 +355,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0D32 3378 | uint8 | EEPROM_BACKLIGHT_MODE | 02h 2 | ffh 255 | LCD backlight mode: __Auto__ | LCD menu | D3 Ax0d32 C1 | ^ | ^ | ^ | 01h 1 | ^ | LCD backlight mode: __Bright__ | ^ | ^ | ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ -| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 00 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 +| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 From aa9aa14472ae1a7b1ebacd4f356ece014761d074 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 30 Mar 2020 16:24:20 +0200 Subject: [PATCH 242/361] Version to 1.0.1 --- Firmware/eeprom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 5fdd90809..3e97cac2a 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -72,7 +72,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP To convert hex to dec https://www.rapidtables.com/convert/number/hex-to-decimal.html - Version: 1.0 + Version: 1.0.1 --------------------------------------------------------------------------------- From 6da401be564b2621be8d4c49e3f07ec2e4b77321 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 30 Mar 2020 16:53:58 +0200 Subject: [PATCH 243/361] Move few D-codes command from Marlin_main to Dcodes D80, D81 and D106 have been added to `Marlin_main.cpp` but all other D-codes moved to `Dcodes.cpp/.h` --- Firmware/Dcodes.cpp | 92 ++++++++++++++++++++++++++++++++++++++++ Firmware/Dcodes.h | 22 ++++++++-- Firmware/Marlin_main.cpp | 54 ++--------------------- 3 files changed, 113 insertions(+), 55 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 79695c9e7..7506e7fc1 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -635,6 +635,98 @@ void dcode_12() } +#ifdef HEATBED_ANALYSIS + /*! + ### D80 - Bed check D80: Bed check + This command will log data to SD card file "mesh.txt". + #### Usage + + D80 [ E | F | G | H | I | J ] + + #### Parameters + - `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) + */ +void dcode_80() +{ + float dimension_x = 40; + float dimension_y = 40; + int points_x = 40; + int points_y = 40; + float offset_x = 74; + float offset_y = 33; + + if (code_seen('E')) dimension_x = code_value(); + if (code_seen('F')) dimension_y = code_value(); + if (code_seen('G')) {points_x = code_value(); } + if (code_seen('H')) {points_y = code_value(); } + if (code_seen('I')) {offset_x = code_value(); } + if (code_seen('J')) {offset_y = code_value(); } + printf_P(PSTR("DIM X: %f\n"), dimension_x); + printf_P(PSTR("DIM Y: %f\n"), dimension_y); + printf_P(PSTR("POINTS X: %d\n"), points_x); + printf_P(PSTR("POINTS Y: %d\n"), points_y); + printf_P(PSTR("OFFSET X: %f\n"), offset_x); + printf_P(PSTR("OFFSET Y: %f\n"), offset_y); + bed_check(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y); +} + + + /*! + ### D81 - Bed analysis D80: Bed analysis + This command will log data to SD card file "wldsd.txt". + #### Usage + + D81 [ E | F | G | H | I | J ] + + #### Parameters + - `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) + */ +void dcode_81() +{ + float dimension_x = 40; + float dimension_y = 40; + int points_x = 40; + int points_y = 40; + float offset_x = 74; + float offset_y = 33; + + if (code_seen('E')) dimension_x = code_value(); + if (code_seen('F')) dimension_y = code_value(); + if (code_seen("G")) { strchr_pointer+=1; points_x = code_value(); } + if (code_seen("H")) { strchr_pointer+=1; points_y = code_value(); } + if (code_seen("I")) { strchr_pointer+=1; offset_x = code_value(); } + if (code_seen("J")) { strchr_pointer+=1; offset_y = code_value(); } + + bed_analysis(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y); + +} + +#endif //HEATBED_ANALYSIS + + /*! + ### D106 - Print measured fan speed for different pwm values D106: Print measured fan speed for different pwm values + */ +void dcode_106() +{ + for (int i = 255; i > 0; i = i - 5) { + fanSpeed = i; + //delay_keep_alive(2000); + for (int j = 0; j < 100; j++) { + delay_keep_alive(100); + } + printf_P(_N("%d: %d\n"), i, fan_speed[1]); + } +} #ifdef TMC2130 #include "planner.h" diff --git a/Firmware/Dcodes.h b/Firmware/Dcodes.h index eaf849edb..894cba527 100644 --- a/Firmware/Dcodes.h +++ b/Firmware/Dcodes.h @@ -2,26 +2,40 @@ #define DCODES_H extern void dcode__1(); //D-1 - Endless loop (to simulate deadlock) - extern void dcode_0(); //D0 - Reset extern void dcode_1(); //D1 - Clear EEPROM extern void dcode_2(); //D2 - Read/Write RAM + +#ifdef DEBUG_DCODE3 extern void dcode_3(); //D3 - Read/Write EEPROM +#endif //DEBUG_DCODE3 + extern void dcode_4(); //D4 - Read/Write PIN + +#ifdef DEBUG_DCODE5 extern void dcode_5(); //D5 - Read/Write FLASH +#endif //DEBUG_DCODE5 + extern void dcode_6(); //D6 - Read/Write external FLASH extern void dcode_7(); //D7 - Read/Write Bootloader extern void dcode_8(); //D8 - Read/Write PINDA extern void dcode_9(); //D9 - Read/Write ADC (Write=enable simulated, Read=disable simulated) - extern void dcode_10(); //D10 - XYZ calibration = OK +extern void dcode_12(); //D12 - Log time. Writes the current time in the log file. + +#ifdef HEATBED_ANALYSIS +extern void dcode_80(); //D80 - Bed check. This command will log data to SD card file "mesh.txt". +extern void dcode_81(); //D81 - Bed analysis. This command will log data to SD card file "wldsd.txt". +#endif //HEATBED_ANALYSIS + + extern void dcode_106(); //D106 - Print measured fan speed for different pwm values #ifdef TMC2130 -extern void dcode_2130(); //D2130 - TMC2130 + extern void dcode_2130(); //D2130 - TMC2130 #endif //TMC2130 #ifdef PAT9125 -extern void dcode_9125(); //D9125 - PAT9125 + extern void dcode_9125(); //D9125 - PAT9125 #endif //PAT9125 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e40cfb2..c4948a20e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8976,28 +8976,7 @@ Sigma_Exit: - `J` - Offset Y (default 34) */ case 80: - { - float dimension_x = 40; - float dimension_y = 40; - int points_x = 40; - int points_y = 40; - float offset_x = 74; - float offset_y = 33; - - if (code_seen('E')) dimension_x = code_value(); - if (code_seen('F')) dimension_y = code_value(); - if (code_seen('G')) {points_x = code_value(); } - if (code_seen('H')) {points_y = code_value(); } - if (code_seen('I')) {offset_x = code_value(); } - if (code_seen('J')) {offset_y = code_value(); } - printf_P(PSTR("DIM X: %f\n"), dimension_x); - printf_P(PSTR("DIM Y: %f\n"), dimension_y); - printf_P(PSTR("POINTS X: %d\n"), points_x); - printf_P(PSTR("POINTS Y: %d\n"), points_y); - printf_P(PSTR("OFFSET X: %f\n"), offset_x); - printf_P(PSTR("OFFSET Y: %f\n"), offset_y); - bed_check(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y); - }break; + dcode_80(); break; /*! ### D81 - Bed analysis D80: Bed analysis @@ -9015,24 +8994,7 @@ Sigma_Exit: - `J` - Offset Y (default 34) */ case 81: - { - float dimension_x = 40; - float dimension_y = 40; - int points_x = 40; - int points_y = 40; - float offset_x = 74; - float offset_y = 33; - - if (code_seen('E')) dimension_x = code_value(); - if (code_seen('F')) dimension_y = code_value(); - if (code_seen("G")) { strchr_pointer+=1; points_x = code_value(); } - if (code_seen("H")) { strchr_pointer+=1; points_y = code_value(); } - if (code_seen("I")) { strchr_pointer+=1; offset_x = code_value(); } - if (code_seen("J")) { strchr_pointer+=1; offset_y = code_value(); } - - bed_analysis(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y); - - } break; + dcode_81(); break; #endif //HEATBED_ANALYSIS #ifdef DEBUG_DCODES @@ -9041,17 +9003,7 @@ Sigma_Exit: ### 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) { - fanSpeed = i; - //delay_keep_alive(2000); - for (int j = 0; j < 100; j++) { - delay_keep_alive(100); - - } - printf_P(_N("%d: %d\n"), i, fan_speed[1]); - } - }break; + dcode_106(); break; #ifdef TMC2130 /*! From e48101312641776b43fe6426d7500c6a97ed04bd Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 30 Mar 2020 17:01:46 +0200 Subject: [PATCH 244/361] Reset all stats during Shipping prep (#2563) * Reset all stats during Shipping prep Last print stats were missing * keep old indentation Co-authored-by: D.R.racer --- Firmware/Marlin_main.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e40cfb2..ad5a1a85c 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -715,6 +715,12 @@ static void factory_reset(char level) eeprom_update_dword((uint32_t *)EEPROM_TOTALTIME, 0); eeprom_update_dword((uint32_t *)EEPROM_FILAMENTUSED, 0); + + eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0); + eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0); + eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0); + eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0); + eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_X_TOT, 0); eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_Y_TOT, 0); eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0); From 0c383e20b3d159b02ed99e445fccc15a14f62344 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 31 Mar 2020 17:33:08 -0400 Subject: [PATCH 245/361] Pull in changes from #5 --- Firmware/ultralcd.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c7c84d7f4..9982061c2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7832,7 +7832,7 @@ bool lcd_selftest() static void reset_crash_det(unsigned char axis) { current_position[axis] += 10; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_DET)) tmc2130_sg_stop_on_crash = true; } @@ -7853,17 +7853,15 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { tmc2130_home_exit(); enable_endstops(true); - if (axis == X_AXIS) { //there is collision between cables and PSU cover in X axis if Z coordinate is too low - raise_z_above(17,true); - tmc2130_home_enter(Z_AXIS_MASK); - st_synchronize(); - tmc2130_home_exit(); - } + + raise_z_above(MESH_HOME_Z_SEARCH); + st_synchronize(); + tmc2130_home_enter(1 << axis); // first axis length measurement begin current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); @@ -7873,11 +7871,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position_init = st_get_position_mm(axis); current_position[axis] += 2 * margin; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); current_position[axis] += axis_length; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); @@ -7893,11 +7891,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] -= margin; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); st_synchronize(); @@ -7905,6 +7903,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { measured_axis_length[1] = abs(current_position_final - current_position_init); + tmc2130_home_exit(); //end of second measurement, now check for possible errors: @@ -7923,6 +7922,8 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] = 0; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); reset_crash_det(axis); + enable_endstops(true); + endstops_hit_on_purpose(); return false; } } @@ -7941,12 +7942,13 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] = 0; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); reset_crash_det(axis); - + endstops_hit_on_purpose(); return false; } current_position[axis] = 0; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); reset_crash_det(axis); + endstops_hit_on_purpose(); return true; } #endif //TMC2130 From b449e248a15c07f7b790e062412209da404f0dea Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Tue, 31 Mar 2020 17:48:56 -0400 Subject: [PATCH 246/361] Fix printf()s --- Firmware/ultralcd.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9982061c2..ec67e415e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7476,21 +7476,21 @@ void lcd_belttest() uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); - lcd_puts_at_P(0,0,_i("Checking X axis ")); // share message with selftest - lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %d -> ..."),X); + lcd_printf_P(_i("Checking X axis ")); // share message with selftest + lcd_set_cursor(0,1), lcd_printf_P(PSTR("X: %u -> ..."),X); KEEPALIVE_STATE(IN_HANDLER); // N.B: it doesn't make sense to handle !lcd_selfcheck...() because selftest_sg throws its own error screen // that clobbers ours, with more info than we could provide. So on fail we just fall through to take us back to status. if (lcd_selfcheck_axis_sg(X_AXIS)){ X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); - lcd_set_cursor(9,1), lcd_printf_P(PSTR("%d"),X); // Show new X value next to old one. + lcd_set_cursor(10,1), lcd_printf_P(PSTR("%u"),X); // Show new X value next to old one. lcd_puts_at_P(0,2,_i("Checking Y axis ")); - lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %d -> ..."),Y); + lcd_set_cursor(0,3), lcd_printf_P(PSTR("Y: %u -> ..."),Y); if (lcd_selfcheck_axis_sg(Y_AXIS)) { Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); - lcd_set_cursor(9,3),lcd_printf_P(PSTR("%d"),Y); + lcd_set_cursor(10,3),lcd_printf_P(PSTR("%u"),Y); lcd_set_cursor(19, 3); lcd_print(LCD_STR_UPLEVEL); lcd_wait_for_click_delay(10); From b8896ad9c0dd53b8f2be5d2cf5ae80ab63511d88 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 1 Apr 2020 12:28:39 +0300 Subject: [PATCH 247/361] First attempt for Z probe checking during selftest on the MK3/S --- Firmware/ultralcd.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index daf9f0176..08e8d567f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -168,10 +168,10 @@ static void reset_crash_det(unsigned char axis); static bool lcd_selfcheck_axis_sg(unsigned char axis); static bool lcd_selfcheck_axis(int _axis, int _travel); #else -static bool lcd_selfcheck_endstops(); static bool lcd_selfcheck_axis(int _axis, int _travel); static bool lcd_selfcheck_pulleys(int axis); #endif //TMC2130 +static bool lcd_selfcheck_endstops(); static bool lcd_selfcheck_check_heater(bool _isbed); enum class TestScreen : uint_least8_t @@ -7667,11 +7667,7 @@ bool lcd_selftest() if (_result) { _progress = lcd_selftest_screen(TestScreen::FansOk, _progress, 3, true, 2000); -#ifndef TMC2130 - _result = lcd_selfcheck_endstops(); -#else - _result = true; -#endif + _result = lcd_selfcheck_endstops(); //With TMC2130, only the Z probe is tested. } if (_result) @@ -8137,31 +8133,42 @@ static bool lcd_selfcheck_pulleys(int axis) } return(true); } +#endif //not defined TMC2130 static bool lcd_selfcheck_endstops() { bool _result = true; - if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || + if ( + #ifndef TMC2130 + ((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) || + #endif //!TMC2130 ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1)) { + #ifndef TMC2130 if ((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) current_position[0] += 10; if ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) current_position[1] += 10; + #endif //!TMC2130 if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) current_position[2] += 10; } plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); - _delay(500); + st_synchronize(); - if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || + if ( + #ifndef TMC2130 + ((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) || + #endif //!TMC2130 ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1)) { _result = false; char _error[4] = ""; + #ifndef TMC2130 if ((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) strcat(_error, "X"); if ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) strcat(_error, "Y"); + #endif //!TMC2130 if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) strcat(_error, "Z"); lcd_selftest_error(TestError::Endstops, _error, ""); } @@ -8169,7 +8176,6 @@ static bool lcd_selfcheck_endstops() manage_inactivity(true); return _result; } -#endif //not defined TMC2130 static bool lcd_selfcheck_check_heater(bool _isbed) { From 8b2b32c85bf04b8dc6b6333228ce069f66b761bb Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 1 Apr 2020 13:15:08 +0300 Subject: [PATCH 248/361] Raise on nozzle crash --- 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 ad5a1a85c..0700514db 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2314,9 +2314,15 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) #ifdef TMC2130 if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; - if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - current_position[axis] = -5; //assume that nozzle crashed into bed - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + if (doError) + { + current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + st_synchronize(); + kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + } + current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); return 0; } #endif //TMC2130 @@ -2332,9 +2338,15 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) #ifdef TMC2130 if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; - if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - current_position[axis] = -5; //assume that nozzle crashed into bed - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + if (doError) + { + current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + st_synchronize(); + kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + } + current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); return 0; } #endif //TMC2130 From 792bab9bbb0ad21ab1bd36cb36c77df7e7333914 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 1 Apr 2020 13:50:22 +0300 Subject: [PATCH 249/361] Fix go up --- Firmware/Marlin_main.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0700514db..0a621aab3 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2316,14 +2316,16 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) FORCE_HIGH_POWER_END; if (doError) { + current_position[Z_AXIS] = 0; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); st_synchronize(); kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); } - current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed + current_position[Z_AXIS] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - return 0; + return 0; } #endif //TMC2130 current_position[axis] = 0; @@ -2340,14 +2342,16 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) FORCE_HIGH_POWER_END; if (doError) { + current_position[Z_AXIS] = 0; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); st_synchronize(); kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); } - current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed + current_position[Z_AXIS] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - return 0; + return 0; } #endif //TMC2130 axis_is_at_home(axis); From ecd409c44f37bb935c4918e7149a6fcb09ef271f Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 1 Apr 2020 16:24:20 +0200 Subject: [PATCH 250/361] Make ALL D-codes available for DEBUG mode until now D3 and D5 needed to be defined separately --- Firmware/Dcodes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 9b491a3cf..7d3d6dcec 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -97,7 +97,7 @@ void print_mem(uint32_t address, uint16_t count, uint8_t type, uint8_t countperl } } -#ifdef DEBUG_DCODE3 +#if defined DEBUG_DCODE3 || defined DEBUG_DCODES #define EEPROM_SIZE 0x1000 /*! ### D3 - Read/Write EEPROM D3: Read/Write EEPROM @@ -360,7 +360,7 @@ void dcode_4() } #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE5 +#if defined DEBUG_DCODE5 || defined DEBUG_DCODES /*! ### D5 - Read/Write FLASH D5: Read/Write Flash From f32b6c2912d9647b9cda98c2ac859615b0ab608e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 1 Apr 2020 18:56:34 +0200 Subject: [PATCH 251/361] Forgot to modify Marlin_main --- 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 0931ff579..a6becaa66 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8835,7 +8835,7 @@ Sigma_Exit: case 2: dcode_2(); break; #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE3 +#if defined DEBUG_DCODE3 || defined DEBUG_DCODES /*! ### D3 - Read/Write EEPROM D3: Read/Write EEPROM @@ -8876,7 +8876,7 @@ Sigma_Exit: case 4: dcode_4(); break; #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE5 +#if defined DEBUG_DCODE5 || defined DEBUG_DCODES /*! ### D5 - Read/Write FLASH D5: Read/Write Flash From fd1d05ab48c3885a0fbb5b613edaf8bbf3c05606 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 2 Apr 2020 14:44:44 +0300 Subject: [PATCH 252/361] :recycle:Code optimization --- Firmware/Marlin.h | 4 ++-- Firmware/Marlin_main.cpp | 52 +++++++++++++++------------------------- Firmware/tmc2130.cpp | 2 +- Firmware/ultralcd.cpp | 2 +- 4 files changed, 23 insertions(+), 37 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index fb70dfed7..363407e2e 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -310,9 +310,9 @@ extern int8_t lcd_change_fil_state; extern float default_retraction; #ifdef TMC2130 -bool homeaxis(int axis, bool doError = true, uint8_t cnt = 1, uint8_t* pstep = 0); +void homeaxis(int axis, uint8_t cnt = 1, uint8_t* pstep = 0); #else -bool homeaxis(int axis, bool doError = true, uint8_t cnt = 1); +void homeaxis(int axis, uint8_t cnt = 1); #endif //TMC2130 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0a621aab3..2ba941e1c 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2197,9 +2197,24 @@ bool calibrate_z_auto() #endif //TMC2130 #ifdef TMC2130 -bool homeaxis(int axis, bool doError, uint8_t cnt, uint8_t* pstep) +static void check_Z_crash(void) +{ + if (READ(Z_TMC2130_DIAG) != 0) { //Z crash + FORCE_HIGH_POWER_END; + current_position[Z_AXIS] = 0; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + st_synchronize(); + kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); + } +} +#endif //TMC2130 + +#ifdef TMC2130 +void homeaxis(int axis, uint8_t cnt, uint8_t* pstep) #else -bool homeaxis(int axis, bool doError, uint8_t cnt) +void homeaxis(int axis, uint8_t cnt) #endif //TMC2130 { bool endstops_enabled = enable_endstops(true); //RP: endstops should be allways enabled durring homing @@ -2312,21 +2327,7 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); st_synchronize(); #ifdef TMC2130 - if (READ(Z_TMC2130_DIAG) != 0) { //Z crash - FORCE_HIGH_POWER_END; - if (doError) - { - current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); - st_synchronize(); - kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - } - current_position[Z_AXIS] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - return 0; - } + check_Z_crash(); #endif //TMC2130 current_position[axis] = 0; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); @@ -2338,21 +2339,7 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); st_synchronize(); #ifdef TMC2130 - if (READ(Z_TMC2130_DIAG) != 0) { //Z crash - FORCE_HIGH_POWER_END; - if (doError) - { - current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); - st_synchronize(); - kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); - } - current_position[Z_AXIS] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - return 0; - } + check_Z_crash(); #endif //TMC2130 axis_is_at_home(axis); destination[axis] = current_position[axis]; @@ -2364,7 +2351,6 @@ bool homeaxis(int axis, bool doError, uint8_t cnt) #endif } enable_endstops(endstops_enabled); - return 1; } /**/ diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 3a4e5b51e..108d00b1d 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -994,7 +994,7 @@ bool tmc2130_home_calibrate(uint8_t axis) uint8_t step[16]; uint8_t cnt[16]; uint8_t val[16]; - homeaxis(axis, true, 16, step); + homeaxis(axis, 16, step); bubblesort_uint8(step, 16, 0); printf_P(PSTR("sorted samples:\n")); for (uint8_t i = 0; i < 16; i++) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 08e8d567f..62c410727 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7734,7 +7734,7 @@ bool lcd_selftest() set_destination_to_current(); _progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500); #ifdef TMC2130 - _result = homeaxis(Z_AXIS, false); + homeaxis(Z_AXIS); //In case of failure, the code gets stuck in this function. #else _result = lcd_selfcheck_axis(Z_AXIS, Z_MAX_POS); #endif //TMC2130 From a1b8ee67b32dafa74cca86dc8805606ed2522228 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 2 Apr 2020 14:56:19 +0200 Subject: [PATCH 253/361] Fix missing (hex) in D5 code (#2560) * Fix missing (hex) in D5 code * Make ALL D-codes available for DEBUG mode until now D3 and D5 needed to be defined separately * Forgot to modify Marlin_main --- Firmware/Dcodes.cpp | 6 +++--- Firmware/Marlin_main.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 67cf1eb80..f943b4a31 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -98,7 +98,7 @@ void print_mem(uint32_t address, uint16_t count, uint8_t type, uint8_t countperl } } -#ifdef DEBUG_DCODE3 +#if defined DEBUG_DCODE3 || defined DEBUG_DCODES #define EEPROM_SIZE 0x1000 /*! ### D3 - Read/Write EEPROM D3: Read/Write EEPROM @@ -360,7 +360,7 @@ void dcode_4() } #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE5 +#if defined DEBUG_DCODE5 || defined DEBUG_DCODES /*! ### D5 - Read/Write FLASH D5: Read/Write Flash @@ -372,7 +372,7 @@ void dcode_4() #### Parameters - `A` - Address (x00000-x3ffff) - `C` - Count (1-8192) - - `X` - Data + - `X` - Data (hex) - `E` - Erase #### Notes diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ad5a1a85c..a6becaa66 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8835,7 +8835,7 @@ Sigma_Exit: case 2: dcode_2(); break; #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE3 +#if defined DEBUG_DCODE3 || defined DEBUG_DCODES /*! ### D3 - Read/Write EEPROM D3: Read/Write EEPROM @@ -8876,7 +8876,7 @@ Sigma_Exit: case 4: dcode_4(); break; #endif //DEBUG_DCODES -#ifdef DEBUG_DCODE5 +#if defined DEBUG_DCODE5 || defined DEBUG_DCODES /*! ### D5 - Read/Write FLASH D5: Read/Write Flash @@ -8888,7 +8888,7 @@ Sigma_Exit: #### Parameters - `A` - Address (x00000-x3ffff) - `C` - Count (1-8192) - - `X` - Data + - `X` - Data (hex) - `E` - Erase #### Notes From 9b3f51008be76d86c25b3412f09fd91653a84ee3 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 2 Apr 2020 19:32:13 +0300 Subject: [PATCH 254/361] :art:Change CRLF line ending to LF --- Firmware/heatbed_pwm.cpp | 380 +++++++++++++++++++-------------------- 1 file changed, 190 insertions(+), 190 deletions(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index e85515016..4cd0bf5e5 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -1,190 +1,190 @@ -#include -#include -#include "io_atmega2560.h" - -// All this is about silencing the heat bed, as it behaves like a loudspeaker. -// Basically, we want the PWM heating switched at 30Hz (or so) which is a well ballanced -// frequency for both power supply units (i.e. both PSUs are reasonably silent). -// The only trouble is the rising or falling edge of bed heating - that creates an audible click. -// This audible click may be suppressed by making the rising or falling edge NOT sharp. -// Of course, making non-sharp edges in digital technology is not easy, but there is a solution. -// It is possible to do a fast PWM sequence with duty starting from 0 to 255. -// Doing this at higher frequency than the bed "loudspeaker" can handle makes the click barely audible. -// Technically: -// timer0 is set to fast PWM mode at 62.5kHz (timer0 is linked to the bed heating pin) (zero prescaler) -// To keep the bed switching at 30Hz - we don't want the PWM running at 62kHz all the time -// since it would burn the heatbed's MOSFET: -// 16MHz/256 levels of PWM duty gives us 62.5kHz -// 62.5kHz/256 gives ~244Hz, that is still too fast - 244/8 gives ~30Hz, that's what we need -// So the automaton runs atop of inner 8 (or 16) cycles. -// The finite automaton is running in the ISR(TIMER0_OVF_vect) - -// 2019-08-14 update: the original algorithm worked very well, however there were 2 regressions: -// 1. 62kHz ISR requires considerable amount of processing power, -// USB transfer speed dropped by 20%, which was most notable when doing short G-code segments. -// 2. Some users reported TLed PSU started clicking when running at 120V/60Hz. -// This looks like the original algorithm didn't maintain base PWM 30Hz, but only 15Hz -// To address both issues, there is an improved approach based on the idea of leveraging -// different CLK prescalers in some automaton states - i.e. when holding LOW or HIGH on the output pin, -// we don't have to clock 62kHz, but we can increase the CLK prescaler for these states to 8 (or even 64). -// That shall result in the ISR not being called that much resulting in regained performance -// Theoretically this is relatively easy, however one must be very carefull handling the AVR's timer -// control registers correctly, especially setting them in a correct order. -// Some registers are double buffered, some changes are applied in next cycles etc. -// The biggest problem was with the CLK prescaler itself - this circuit is shared among almost all timers, -// we don't want to reset the prescaler counted value when transiting among automaton states. -// Resetting the prescaler would make the PWM more precise, right now there are temporal segments -// of variable period ranging from 0 to 7 62kHz ticks - that's logical, the timer must "sync" -// to the new slower CLK after setting the slower prescaler value. -// In our application, this isn't any significant problem and may be ignored. -// Doing changes in timer's registers non-correctly results in artefacts on the output pin -// - it can toggle unnoticed, which will result in bed clicking again. -// That's why there are special transition states ZERO_TO_RISE and ONE_TO_FALL, which enable the -// counter change its operation atomically and without artefacts on the output pin. -// The resulting signal on the output pin was checked with an osciloscope. -// 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 - ZERO, ///< steady 0 (OFF), no change for the whole period - ZERO_TO_RISE, ///< metastate allowing the timer change its state atomically without artefacts on the output pin - RISE, ///< 16 fast PWM cycles with increasing duty up to steady ON - RISE_TO_ONE, ///< metastate allowing the timer change its state atomically without artefacts on the output pin - ONE, ///< steady 1 (ON), no change for the whole period - ONE_TO_FALL, ///< metastate allowing the timer change its state atomically without artefacts on the output pin - FALL, ///< 16 fast PWM cycles with decreasing duty down to steady OFF - FALL_TO_ZERO ///< metastate allowing the timer change its state atomically without artefacts on the output pin -}; - -///! 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) -static uint8_t fastCounter = 0; -///! PWM counter for the whole cycle - a cache for soft_pwm_bed -static uint8_t pwm = 0; - -///! The slow PWM duty for the next 30Hz cycle -///! Set in the whole firmware at various places -extern unsigned char soft_pwm_bed; - -/// fastMax - how many fast PWM steps to do in RISE and FALL states -/// 16 is a good compromise between silenced bed ("smooth" edges) -/// and not burning the switching MOSFET -static const uint8_t fastMax = 16; - -/// Scaler 16->256 for fast PWM -static const uint8_t fastShift = 4; - -/// Increment slow PWM counter by slowInc every ZERO or ONE state -/// This allows for fine-tuning the basic PWM switching frequency -/// A possible further optimization - use a 64 prescaler (instead of 8) -/// increment slowCounter by 1 -/// but use less bits of soft PWM - something like soft_pwm_bed >> 2 -/// that may further reduce the CPU cycles required by the bed heating automaton -/// Due to the nature of bed heating the reduced PID precision may not be a major issue, however doing 8x less ISR(timer0_ovf) may significantly improve the performance -static const uint8_t slowInc = 1; - -ISR(TIMER0_OVF_vect) // timer compare interrupt service routine -{ - switch(state){ - case States::ZERO_START: - 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 - } - break; - case States::ZERO: // end of state ZERO - we'll either stay in ZERO or change to RISE - // In any case update our cache of pwm value for the next whole cycle from soft_pwm_bed - slowCounter += slowInc; // this does software timer_clk/256 or less (depends on slowInc) - if( slowCounter > pwm ){ - return; - } // otherwise moving towards RISE - state = States::ZERO_TO_RISE; // and finalize the change in a transitional state RISE0 - break; - // even though it may look like the ZERO state may be glued together with the ZERO_TO_RISE, don't do it - // the timer must tick once more in order to get rid of occasional output pin toggles. - case States::ZERO_TO_RISE: // special state for handling transition between prescalers and switching inverted->non-inverted fast-PWM without toggling the output pin. - // It must be done in consequent steps, otherwise the pin will get flipped up and down during one PWM cycle. - // Also beware of the correct sequence of the following timer control registers initialization - it really matters! - state = States::RISE; // prepare for standard RISE cycles - fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE - TCNT0 = 255; // force overflow on the next clock cycle - TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz - TCCR0A &= ~(1 << COM0B0); // Clear OC0B on Compare Match, set OC0B at BOTTOM (non-inverting mode) - break; - case States::RISE: - OCR0B = (fastMax - fastCounter) << fastShift; - if( fastCounter ){ - --fastCounter; - } else { // end of RISE cycles, changing into state ONE - state = States::RISE_TO_ONE; - OCR0B = 255; // full duty - TCNT0 = 254; // make the timer overflow in the next cycle - // @@TODO these constants are still subject to investigation - } - break; - case States::RISE_TO_ONE: - state = States::ONE; - OCR0B = 255; // full duty - TCNT0 = 255; // make the timer overflow in the next cycle - TCCR0B = (1 << CS01); // change prescaler to 8, i.e. 7.8kHz - break; - case States::ONE: // state ONE - we'll either stay in ONE or change to FALL - OCR0B = 255; - 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; - } - 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; -// TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz -// break; -// case States::ONE_TO_FALL: -// OCR0B = 255; // zero duty - state=States::FALL; - fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE - TCNT0 = 255; // force overflow on the next clock cycle - TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz - // must switch to inverting mode already here, because it takes a whole PWM cycle and it would make a "1" at the end of this pwm cycle - // COM0B1 remains set both in inverting and non-inverting mode - TCCR0A |= (1 << COM0B0); // inverting mode - break; - case States::FALL: - OCR0B = (fastMax - fastCounter) << fastShift; // this is the same as in RISE, because now we are setting the zero part of duty due to inverting mode - //TCCR0A |= (1 << COM0B0); // already set in ONE_TO_FALL - if( fastCounter ){ - --fastCounter; - } else { // end of FALL cycles, changing into state ZERO - state = States::FALL_TO_ZERO; - TCNT0 = 128; //@@TODO again - need to wait long enough to propagate the timer state changes - OCR0B = 255; - } - break; - case States::FALL_TO_ZERO: - state = States::ZERO_START; // go to read new soft_pwm_bed value for the next cycle - TCNT0 = 128; - OCR0B = 255; - TCCR0B = (1 << CS01); // change prescaler to 8, i.e. 7.8kHz - break; - } -} +#include +#include +#include "io_atmega2560.h" + +// All this is about silencing the heat bed, as it behaves like a loudspeaker. +// Basically, we want the PWM heating switched at 30Hz (or so) which is a well ballanced +// frequency for both power supply units (i.e. both PSUs are reasonably silent). +// The only trouble is the rising or falling edge of bed heating - that creates an audible click. +// This audible click may be suppressed by making the rising or falling edge NOT sharp. +// Of course, making non-sharp edges in digital technology is not easy, but there is a solution. +// It is possible to do a fast PWM sequence with duty starting from 0 to 255. +// Doing this at higher frequency than the bed "loudspeaker" can handle makes the click barely audible. +// Technically: +// timer0 is set to fast PWM mode at 62.5kHz (timer0 is linked to the bed heating pin) (zero prescaler) +// To keep the bed switching at 30Hz - we don't want the PWM running at 62kHz all the time +// since it would burn the heatbed's MOSFET: +// 16MHz/256 levels of PWM duty gives us 62.5kHz +// 62.5kHz/256 gives ~244Hz, that is still too fast - 244/8 gives ~30Hz, that's what we need +// So the automaton runs atop of inner 8 (or 16) cycles. +// The finite automaton is running in the ISR(TIMER0_OVF_vect) + +// 2019-08-14 update: the original algorithm worked very well, however there were 2 regressions: +// 1. 62kHz ISR requires considerable amount of processing power, +// USB transfer speed dropped by 20%, which was most notable when doing short G-code segments. +// 2. Some users reported TLed PSU started clicking when running at 120V/60Hz. +// This looks like the original algorithm didn't maintain base PWM 30Hz, but only 15Hz +// To address both issues, there is an improved approach based on the idea of leveraging +// different CLK prescalers in some automaton states - i.e. when holding LOW or HIGH on the output pin, +// we don't have to clock 62kHz, but we can increase the CLK prescaler for these states to 8 (or even 64). +// That shall result in the ISR not being called that much resulting in regained performance +// Theoretically this is relatively easy, however one must be very carefull handling the AVR's timer +// control registers correctly, especially setting them in a correct order. +// Some registers are double buffered, some changes are applied in next cycles etc. +// The biggest problem was with the CLK prescaler itself - this circuit is shared among almost all timers, +// we don't want to reset the prescaler counted value when transiting among automaton states. +// Resetting the prescaler would make the PWM more precise, right now there are temporal segments +// of variable period ranging from 0 to 7 62kHz ticks - that's logical, the timer must "sync" +// to the new slower CLK after setting the slower prescaler value. +// In our application, this isn't any significant problem and may be ignored. +// Doing changes in timer's registers non-correctly results in artefacts on the output pin +// - it can toggle unnoticed, which will result in bed clicking again. +// That's why there are special transition states ZERO_TO_RISE and ONE_TO_FALL, which enable the +// counter change its operation atomically and without artefacts on the output pin. +// The resulting signal on the output pin was checked with an osciloscope. +// 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 + ZERO, ///< steady 0 (OFF), no change for the whole period + ZERO_TO_RISE, ///< metastate allowing the timer change its state atomically without artefacts on the output pin + RISE, ///< 16 fast PWM cycles with increasing duty up to steady ON + RISE_TO_ONE, ///< metastate allowing the timer change its state atomically without artefacts on the output pin + ONE, ///< steady 1 (ON), no change for the whole period + ONE_TO_FALL, ///< metastate allowing the timer change its state atomically without artefacts on the output pin + FALL, ///< 16 fast PWM cycles with decreasing duty down to steady OFF + FALL_TO_ZERO ///< metastate allowing the timer change its state atomically without artefacts on the output pin +}; + +///! 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) +static uint8_t fastCounter = 0; +///! PWM counter for the whole cycle - a cache for soft_pwm_bed +static uint8_t pwm = 0; + +///! The slow PWM duty for the next 30Hz cycle +///! Set in the whole firmware at various places +extern unsigned char soft_pwm_bed; + +/// fastMax - how many fast PWM steps to do in RISE and FALL states +/// 16 is a good compromise between silenced bed ("smooth" edges) +/// and not burning the switching MOSFET +static const uint8_t fastMax = 16; + +/// Scaler 16->256 for fast PWM +static const uint8_t fastShift = 4; + +/// Increment slow PWM counter by slowInc every ZERO or ONE state +/// This allows for fine-tuning the basic PWM switching frequency +/// A possible further optimization - use a 64 prescaler (instead of 8) +/// increment slowCounter by 1 +/// but use less bits of soft PWM - something like soft_pwm_bed >> 2 +/// that may further reduce the CPU cycles required by the bed heating automaton +/// Due to the nature of bed heating the reduced PID precision may not be a major issue, however doing 8x less ISR(timer0_ovf) may significantly improve the performance +static const uint8_t slowInc = 1; + +ISR(TIMER0_OVF_vect) // timer compare interrupt service routine +{ + switch(state){ + case States::ZERO_START: + 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 + } + break; + case States::ZERO: // end of state ZERO - we'll either stay in ZERO or change to RISE + // In any case update our cache of pwm value for the next whole cycle from soft_pwm_bed + slowCounter += slowInc; // this does software timer_clk/256 or less (depends on slowInc) + if( slowCounter > pwm ){ + return; + } // otherwise moving towards RISE + state = States::ZERO_TO_RISE; // and finalize the change in a transitional state RISE0 + break; + // even though it may look like the ZERO state may be glued together with the ZERO_TO_RISE, don't do it + // the timer must tick once more in order to get rid of occasional output pin toggles. + case States::ZERO_TO_RISE: // special state for handling transition between prescalers and switching inverted->non-inverted fast-PWM without toggling the output pin. + // It must be done in consequent steps, otherwise the pin will get flipped up and down during one PWM cycle. + // Also beware of the correct sequence of the following timer control registers initialization - it really matters! + state = States::RISE; // prepare for standard RISE cycles + fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE + TCNT0 = 255; // force overflow on the next clock cycle + TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz + TCCR0A &= ~(1 << COM0B0); // Clear OC0B on Compare Match, set OC0B at BOTTOM (non-inverting mode) + break; + case States::RISE: + OCR0B = (fastMax - fastCounter) << fastShift; + if( fastCounter ){ + --fastCounter; + } else { // end of RISE cycles, changing into state ONE + state = States::RISE_TO_ONE; + OCR0B = 255; // full duty + TCNT0 = 254; // make the timer overflow in the next cycle + // @@TODO these constants are still subject to investigation + } + break; + case States::RISE_TO_ONE: + state = States::ONE; + OCR0B = 255; // full duty + TCNT0 = 255; // make the timer overflow in the next cycle + TCCR0B = (1 << CS01); // change prescaler to 8, i.e. 7.8kHz + break; + case States::ONE: // state ONE - we'll either stay in ONE or change to FALL + OCR0B = 255; + 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; + } + 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; +// TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz +// break; +// case States::ONE_TO_FALL: +// OCR0B = 255; // zero duty + state=States::FALL; + fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE + TCNT0 = 255; // force overflow on the next clock cycle + TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz + // must switch to inverting mode already here, because it takes a whole PWM cycle and it would make a "1" at the end of this pwm cycle + // COM0B1 remains set both in inverting and non-inverting mode + TCCR0A |= (1 << COM0B0); // inverting mode + break; + case States::FALL: + OCR0B = (fastMax - fastCounter) << fastShift; // this is the same as in RISE, because now we are setting the zero part of duty due to inverting mode + //TCCR0A |= (1 << COM0B0); // already set in ONE_TO_FALL + if( fastCounter ){ + --fastCounter; + } else { // end of FALL cycles, changing into state ZERO + state = States::FALL_TO_ZERO; + TCNT0 = 128; //@@TODO again - need to wait long enough to propagate the timer state changes + OCR0B = 255; + } + break; + case States::FALL_TO_ZERO: + state = States::ZERO_START; // go to read new soft_pwm_bed value for the next cycle + TCNT0 = 128; + OCR0B = 255; + TCCR0B = (1 << CS01); // change prescaler to 8, i.e. 7.8kHz + break; + } +} From 65a406a2f3f4131a029f385cf4e4af582a6d4396 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 7 Apr 2020 11:22:48 +0200 Subject: [PATCH 255/361] Bugfix for last PR I forgot to change also the - `#ifdef DEBUG_DCODE_3` to `#if defined DEBUG_DCODE3 || defined DEBUG_DCODES` - `#ifdef DEBUG_DCODE_5` to `#if defined DEBUG_DCODE5 || defined DEBUG_DCODES` in the `Dcodes.h` file which I added to `Dcodes.cpp`. Due to this issue the "Debug" version fails during compiling. Sorry for that. --- Firmware/Dcodes.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.h b/Firmware/Dcodes.h index 894cba527..856d04ad0 100644 --- a/Firmware/Dcodes.h +++ b/Firmware/Dcodes.h @@ -6,13 +6,13 @@ extern void dcode_0(); //D0 - Reset extern void dcode_1(); //D1 - Clear EEPROM extern void dcode_2(); //D2 - Read/Write RAM -#ifdef DEBUG_DCODE3 +#if defined DEBUG_DCODE3 || defined DEBUG_DCODES extern void dcode_3(); //D3 - Read/Write EEPROM #endif //DEBUG_DCODE3 extern void dcode_4(); //D4 - Read/Write PIN -#ifdef DEBUG_DCODE5 +#if defined DEBUG_DCODE5 || defined DEBUG_DCODES extern void dcode_5(); //D5 - Read/Write FLASH #endif //DEBUG_DCODE5 From c1d05210ff7f36b9b95df4bd947eed9f615c29cd Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 7 Apr 2020 11:42:09 +0200 Subject: [PATCH 256/361] Cleanup useless `break;` --- Firmware/Marlin_main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8b3d4a735..95b2501cf 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8901,7 +8901,6 @@ Sigma_Exit: */ case 5: dcode_5(); break; - break; #endif //DEBUG_DCODE5 #ifdef DEBUG_DCODES From 4c4b4c489cf632b9c7535e1971b96782f3b5f78e Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Apr 2020 17:09:48 +0300 Subject: [PATCH 257/361] :bug::recycle: Update the feedrate percentage before drawing the screen --- Firmware/ultralcd.cpp | 60 +++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 62c410727..c60b6e425 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -997,6 +997,36 @@ void lcd_status_screen() // NOT static due to using ins } } +#ifdef ULTIPANEL_FEEDMULTIPLY + // Dead zone at 100% feedrate + if ((feedmultiply < 100 && (feedmultiply + int(lcd_encoder)) > 100) || + (feedmultiply > 100 && (feedmultiply + int(lcd_encoder)) < 100)) + { + lcd_encoder = 0; + feedmultiply = 100; + } + if (feedmultiply == 100 && int(lcd_encoder) > ENCODER_FEEDRATE_DEADZONE) + { + feedmultiply += int(lcd_encoder) - ENCODER_FEEDRATE_DEADZONE; + lcd_encoder = 0; + } + else if (feedmultiply == 100 && int(lcd_encoder) < -ENCODER_FEEDRATE_DEADZONE) + { + feedmultiply += int(lcd_encoder) + ENCODER_FEEDRATE_DEADZONE; + lcd_encoder = 0; + } + else if (feedmultiply != 100) + { + feedmultiply += int(lcd_encoder); + lcd_encoder = 0; + } +#endif //ULTIPANEL_FEEDMULTIPLY + + if (feedmultiply < 10) + feedmultiply = 10; + else if (feedmultiply > 999) + feedmultiply = 999; + if (lcd_status_update_delay) lcd_status_update_delay--; else @@ -1073,36 +1103,6 @@ void lcd_status_screen() // NOT static due to using ins menu_submenu(lcd_main_menu); lcd_refresh(); // to maybe revive the LCD if static electricity killed it. } - -#ifdef ULTIPANEL_FEEDMULTIPLY - // Dead zone at 100% feedrate - if ((feedmultiply < 100 && (feedmultiply + int(lcd_encoder)) > 100) || - (feedmultiply > 100 && (feedmultiply + int(lcd_encoder)) < 100)) - { - lcd_encoder = 0; - feedmultiply = 100; - } - if (feedmultiply == 100 && int(lcd_encoder) > ENCODER_FEEDRATE_DEADZONE) - { - feedmultiply += int(lcd_encoder) - ENCODER_FEEDRATE_DEADZONE; - lcd_encoder = 0; - } - else if (feedmultiply == 100 && int(lcd_encoder) < -ENCODER_FEEDRATE_DEADZONE) - { - feedmultiply += int(lcd_encoder) + ENCODER_FEEDRATE_DEADZONE; - lcd_encoder = 0; - } - else if (feedmultiply != 100) - { - feedmultiply += int(lcd_encoder); - lcd_encoder = 0; - } -#endif //ULTIPANEL_FEEDMULTIPLY - - if (feedmultiply < 10) - feedmultiply = 10; - else if (feedmultiply > 999) - feedmultiply = 999; } void lcd_commands() From 5d27f3362ae937b0ac9be520993323c116ec1991 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 8 Apr 2020 22:27:57 +0200 Subject: [PATCH 258/361] Remove empty line --- Firmware/Marlin_main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8b3d4a735..6999db99f 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7116,7 +7116,6 @@ Sigma_Exit: { float e = code_value(); #ifndef LA_NOCOMPAT - e = la10c_jerk(e); #endif cs.max_jerk[E_AXIS] = e; From 9ec0ac9c64324067fa220886d3d8e5a0ceb9ce27 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 8 Apr 2020 22:30:39 +0200 Subject: [PATCH 259/361] Always reset e_steps between blocks If e_steps are scheduled, but not ticked, they're just lost. Only carry over the pressure state. --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 6e0937cfd..c7105da74 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -354,10 +354,10 @@ FORCE_INLINE void stepper_next_block() max_adv_steps = current_block->max_adv_steps; e_step_loops = current_block->advance_step_loops; } else { - e_steps = 0; e_step_loops = 1; current_adv_steps = 0; } + e_steps = 0; nextAdvanceISR = ADV_NEVER; LA_phase = -1; #endif From 919386c957eaf35ff0cca442c9e3000ccf36f2ae Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 8 Apr 2020 22:36:27 +0200 Subject: [PATCH 260/361] Remove several globals by using a single target pressure In the current code we initialize the LA state on-demand already at the right step, which makes keeping track of the tick position no longer necessary. Make the advance ISR almost stateless by removing the last vestiges of the original implementation and introduce a single target pressure. This will be needed later in order to trigger the LA isr inside the cruising phase. --- Firmware/stepper.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index c7105da74..bc860b14a 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -128,9 +128,7 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; static uint16_t eISR_Err; 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 uint16_t target_adv_steps; static int8_t e_steps; static uint8_t e_step_loops; @@ -349,10 +347,8 @@ FORCE_INLINE void stepper_next_block() #ifdef LIN_ADVANCE 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; e_step_loops = current_block->advance_step_loops; + target_adv_steps = current_block->max_adv_steps; } else { e_step_loops = 1; current_adv_steps = 0; @@ -827,11 +823,14 @@ FORCE_INLINE void isr() { uint16_t timer = calc_timer(step_rate, step_loops); _NEXT_ISR(timer); 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) + if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) { + target_adv_steps = current_block->final_adv_steps; la_state |= ADV_INIT; + } } #endif } @@ -898,7 +897,7 @@ FORCE_INLINE void isr() { // Timer interrupt for E. e_steps is set in the main routine. FORCE_INLINE void advance_isr() { - if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { + if (current_adv_steps > target_adv_steps) { // decompression e_steps -= e_step_loops; if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); @@ -908,7 +907,7 @@ FORCE_INLINE void advance_isr() { current_adv_steps = 0; nextAdvanceISR = eISR_Rate; } - else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { + else if (current_adv_steps < target_adv_steps) { // compression e_steps += e_step_loops; if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); @@ -1233,9 +1232,6 @@ void st_init() nextMainISR = 0; nextAdvanceISR = ADV_NEVER; main_Rate = ADV_NEVER; - e_steps = 0; - e_step_loops = 1; - LA_phase = -1; current_adv_steps = 0; #endif From 02a36c498cfb087fc4d1e470a7490d08a10484a5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 8 Apr 2020 22:49:48 +0200 Subject: [PATCH 261/361] Release excess pressure within cruising blocks LA assumes all the nozzle pressure is released at the end of each extrusion, which makes calculating the required pressure advance during travels and retracts not normally necessary. This is not always true in our planner, since the E axis is explicitly ignored when not in use, but also due to E-jerk allowing a non-linear jump in speed. And since the compression factor is currently tied by XYZ axes and not independently calculated, this can result in a wrong estimation of final pressure in several conditions. To avoid overburdening the planner, change the underlying assumptions about backpressure: 1) Pressure is no longer lost when LA is disabled: if a retract is followed by an unretract of the same length, the pressure will be likely maintained entirely. This also holds true during travels, as long as the retract length can overcome all the backpressure (which is the case in all but the most noodly materials) 2) Pressure is released as soon as possible during travels: we now enable LA also during travels, but under the sole condition of undoing excess pressure. We do that by checking for backpressure at the start of any segment without an acceleration phase that doesn't have any E-steps (a result which can happen due to the above). If pressure is not nominal, we run the extruder in reverse at maximum jerk as long as the segment allows us, since proper acceleration would be prohibitive at this stage. As the pressure difference resulting by the above is still _very_ low, any wipe or short travel will be able to equalize the nozzle pressure *before* extrusion is resumed, avoiding ooze. --- Firmware/planner.cpp | 17 ++++++++++------- Firmware/stepper.cpp | 19 ++++++++++++++++++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 57d7b89bb..35031ab2d 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1061,14 +1061,12 @@ Having the real displacement of the head, we can calculate the total movement le /** * 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. - * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + * delta_mm[E_AXIS] >= 0 : Extruding or traveling, but _not_ retracting. * |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 + block->use_advance_lead = extruder_advance_K + && delta_mm[E_AXIS] >= 0 && abs(delta_mm[Z_AXIS]) < 0.5; if (block->use_advance_lead) { e_D_ratio = (e - position_float[E_AXIS]) / @@ -1082,7 +1080,7 @@ Having the real displacement of the head, we can calculate the total movement le // 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. if (e_D_ratio > 3.0) block->use_advance_lead = false; - else { + else if (e_D_ratio > 0) { 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; @@ -1133,9 +1131,14 @@ Having the real displacement of the head, we can calculate the total movement le 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; + float advance_speed; + if (e_D_ratio > 0) + advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); + else + advance_speed = cs.max_jerk[E_AXIS] * cs.axis_steps_per_unit[E_AXIS]; + // 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 * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; float advance_rate = (F_CPU / 8.0) / advance_speed; if (advance_speed > 20000) { diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index bc860b14a..de068166a 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -351,7 +351,6 @@ FORCE_INLINE void stepper_next_block() target_adv_steps = current_block->max_adv_steps; } else { e_step_loops = 1; - current_adv_steps = 0; } e_steps = 0; nextAdvanceISR = ADV_NEVER; @@ -840,6 +839,24 @@ FORCE_INLINE void isr() { // the initial interrupt blocking. OCR1A_nominal = calc_timer(uint16_t(current_block->nominal_rate), step_loops); step_loops_nominal = step_loops; + +#ifdef LIN_ADVANCE + if(current_block->use_advance_lead) { + if(current_adv_steps < target_adv_steps) { + // after reaching cruising speed, halt compression. if we couldn't accumulate the + // required pressure in the acceleration phase due to lost ticks it's unlikely we + // could undo all of it during deceleration either + target_adv_steps = current_adv_steps; + } + else if (!nextAdvanceISR && current_adv_steps > target_adv_steps) { + // we're cruising in a block with excess backpressure and without a previous + // acceleration phase - this *cannot* happen during a regular block, but it's + // likely in result of chained a wipe move. release the pressure earlier by + // forcedly enabling LA while cruising! + la_state = ADV_INIT; + } + } +#endif } _NEXT_ISR(OCR1A_nominal); } From 207f0f27a69a00f6b3b8bdf3d3d69918d15fce6d Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 9 Apr 2020 16:33:51 +0300 Subject: [PATCH 262/361] :bug:Flip lcd_detect_IRsensor logic --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 62c410727..8fab599fc 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7563,7 +7563,7 @@ static void lcd_detect_IRsensor(){ bMenuFSDetect = true; // inhibits some code inside "manage_inactivity()" bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament loaded?"), false, false); - if(!bAction){ + if(bAction){ lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action.")); return; } From 13b0e27cd76e014c7856ce8037f618242dad7e37 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 9 Apr 2020 22:34:30 +0200 Subject: [PATCH 263/361] Do not overflow during LA acceleration limiting Perform the check one step earlier, avoiding 32bit overflow for very low compression factors. Fixes #2566 (although for K15 to have effect the conversion probably needs to be adjusted on the low end) --- Firmware/planner.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 35031ab2d..1bc97de63 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1081,9 +1081,9 @@ Having the real displacement of the head, we can calculate the total movement le if (e_D_ratio > 3.0) block->use_advance_lead = false; else if (e_D_ratio > 0) { - 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; + const float max_accel_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * e_D_ratio); + if (cs.acceleration > max_accel_per_s2) { + block->acceleration_st = ceil(max_accel_per_s2 * steps_per_mm); #ifdef LA_DEBUG SERIAL_ECHOLNPGM("LA: Block acceleration limited due to max E-jerk"); #endif From 727a8683281b64b202cef1eb3e88ba57b765267e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 11 Apr 2020 16:14:38 +0200 Subject: [PATCH 264/361] Add SD card or USB/Octoprint It happens quite often that we are looking for a bug and later see that it is related to USB/Octoprints and not SD card prints. --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 196d5756d..32122b962 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -15,6 +15,9 @@ Please, before you create a new bug report, please make sure you searched in ope **MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1] **MMU upgrade firmware version [e.g. 1.0.6, 1.0.6-RC2, ...] +**SD card or USB/Octoprint** + Please let us know if you print via SD card or USB/Octoprint + **Describe the bug** A clear and concise description of what the bug is. From ae4abdf11f5ae57478333f8b08e10255ecdd03d4 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 12 Apr 2020 01:17:45 +0200 Subject: [PATCH 265/361] Unify LA for all trapezoid steps Handle uniformly compression & decompression at any stage of the trapezoid. Compared to before, this now enables LA compression also in the cruising step (handling the converse of a chained wipe), as well as decompression during acceleration. Both of these can happen as a result of jerk moves, but are incredibly rare. This is mostly needed to allow rapid decompression directly at the acceleration step during travels between a retraction&deretraction. We also check for the pressure level in a single place, reducing code size as well as disabling LA earlier when not needed for the rest of the block. --- Firmware/planner.cpp | 4 +++- Firmware/stepper.cpp | 54 +++++++++++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 1bc97de63..0d77900eb 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1065,10 +1065,12 @@ Having the real displacement of the head, we can calculate the total movement le * delta_mm[E_AXIS] >= 0 : Extruding or traveling, but _not_ retracting. * |delta_mm[Z_AXIS]| < 0.5 : Z is only moved for leveling (_not_ for priming) */ - block->use_advance_lead = extruder_advance_K + block->use_advance_lead = extruder_advance_K > 0 && delta_mm[E_AXIS] >= 0 && abs(delta_mm[Z_AXIS]) < 0.5; if (block->use_advance_lead) { + // all extrusion moves with LA require a compression which is proportional to the + // extrusion_length to distance ratio (e/D) e_D_ratio = (e - position_float[E_AXIS]) / sqrt(sq(x - position_float[X_AXIS]) + sq(y - position_float[Y_AXIS]) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index de068166a..1b4c3b9af 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -117,8 +117,8 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; void advance_isr(); static const uint16_t ADV_NEVER = 0xFFFF; - static const uint8_t ADV_INIT = 0b01; - static const uint8_t ADV_DECELERATE = 0b10; + static const uint8_t ADV_INIT = 0b01; // initialize LA + static const uint8_t ADV_ACC_VARY = 0b10; // varying acceleration phase static uint16_t nextMainISR; static uint16_t nextAdvanceISR; @@ -130,9 +130,10 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; static uint16_t current_adv_steps; static uint16_t target_adv_steps; - static int8_t e_steps; - static uint8_t e_step_loops; - static int8_t LA_phase; + static int8_t e_steps; // scheduled e-steps during each isr loop + static uint8_t e_step_loops; // e-steps to execute at most in each isr loop + static uint8_t e_extruding; // current move is an extrusion move + static int8_t LA_phase; // LA compensation phase #define _NEXT_ISR(T) main_Rate = nextMainISR = T #else @@ -366,11 +367,17 @@ FORCE_INLINE void stepper_next_block() counter_y.lo = counter_x.lo; counter_z.lo = counter_x.lo; counter_e.lo = counter_x.lo; +#ifdef LIN_ADVANCE + e_extruding = current_block->steps_e.lo != 0; +#endif } else { counter_x.wide = -(current_block->step_event_count.wide >> 1); counter_y.wide = counter_x.wide; counter_z.wide = counter_x.wide; counter_e.wide = counter_x.wide; +#ifdef LIN_ADVANCE + e_extruding = current_block->steps_e.wide != 0; +#endif } step_events_completed.wide = 0; // Set directions. @@ -806,7 +813,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { if (step_events_completed.wide <= (unsigned long int)step_loops) - la_state = ADV_INIT; + la_state = ADV_INIT | ADV_ACC_VARY; } #endif } @@ -825,10 +832,9 @@ FORCE_INLINE void isr() { #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) { target_adv_steps = current_block->final_adv_steps; - la_state |= ADV_INIT; + la_state = ADV_INIT | ADV_ACC_VARY; } } #endif @@ -842,17 +848,10 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE if(current_block->use_advance_lead) { - if(current_adv_steps < target_adv_steps) { - // after reaching cruising speed, halt compression. if we couldn't accumulate the - // required pressure in the acceleration phase due to lost ticks it's unlikely we - // could undo all of it during deceleration either - target_adv_steps = current_adv_steps; - } - else if (!nextAdvanceISR && current_adv_steps > target_adv_steps) { - // we're cruising in a block with excess backpressure and without a previous - // acceleration phase - this *cannot* happen during a regular block, but it's - // likely in result of chained a wipe move. release the pressure earlier by - // forcedly enabling LA while cruising! + if (!nextAdvanceISR) { + // Due to E-jerk, there can be discontinuities in pressure state where an + // acceleration or deceleration can be skipped or joined with the previous block. + // If LA was not previously active, re-check the pressure level la_state = ADV_INIT; } } @@ -865,10 +864,23 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE // avoid multiple instances or function calls to advance_spread - if (la_state & ADV_INIT) eISR_Err = current_block->advance_rate / 4; + if (la_state & ADV_INIT) { + if (current_adv_steps == target_adv_steps) { + // nothing to be done in this phase + la_state = 0; + } + else { + eISR_Err = current_block->advance_rate / 4; + if ((la_state & ADV_ACC_VARY) && e_extruding && (current_adv_steps > target_adv_steps)) { + // LA could reverse the direction of extrusion in this phase + LA_phase = 0; + } + } + } if (la_state & ADV_INIT || nextAdvanceISR != ADV_NEVER) { + // update timers & phase for the next iteration advance_spread(main_Rate); - if (la_state & ADV_DECELERATE) { + if (LA_phase >= 0) { if (step_loops == e_step_loops) LA_phase = (eISR_Rate > main_Rate); else { From 48c459e208ce733e95f2bfc8d99e288a8abe9d74 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 12 Apr 2020 02:58:44 +0200 Subject: [PATCH 266/361] Increase the LA10->15 response --- Firmware/la10compat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/la10compat.cpp b/Firmware/la10compat.cpp index 5b851bc34..9f0d5e5fe 100644 --- a/Firmware/la10compat.cpp +++ b/Firmware/la10compat.cpp @@ -37,7 +37,7 @@ void la10c_mode_change(LA10C_MODE mode) // Approximate a LA10 value to a LA15 equivalent. static float la10c_convert(float k) { - float new_K = k * 0.004 - 0.06; + float new_K = k * 0.004 - 0.05; return (new_K < 0? 0: new_K); } From 85a4c44d83bff1253e86e2bd62be578ceabffd56 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Thu, 16 Apr 2020 07:29:59 -0400 Subject: [PATCH 267/361] revert feedrates --- Firmware/ultralcd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ec67e415e..07c19ad5f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7832,7 +7832,7 @@ bool lcd_selftest() static void reset_crash_det(unsigned char axis) { current_position[axis] += 10; - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_DET)) tmc2130_sg_stop_on_crash = true; } @@ -7861,7 +7861,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { // first axis length measurement begin current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); @@ -7871,11 +7871,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position_init = st_get_position_mm(axis); current_position[axis] += 2 * margin; - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); current_position[axis] += axis_length; - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(hmanual_feedrate[0] / 60, active_extruder); st_synchronize(); @@ -7891,11 +7891,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] -= margin; - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(homing_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); From dce453fd4a9f41c097e15cabebf1a65aba495837 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Thu, 16 Apr 2020 07:31:54 -0400 Subject: [PATCH 268/361] typo --- Firmware/ultralcd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 07c19ad5f..ad19c66b8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7875,7 +7875,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { st_synchronize(); current_position[axis] += axis_length; - plan_buffer_line_curposXYZE(hmanual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); @@ -7891,11 +7891,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] -= margin; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); st_synchronize(); From 1bac0c176518a13a320d7dd69d400f21902927c7 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 18 Apr 2020 16:39:04 +0200 Subject: [PATCH 269/361] Add dummy G21 to prevent UNKOWN warnings in serial And as Prusa firmware operates ONLY in milimeters it kind of does what G21 is supposed to do. --- Firmware/Marlin_main.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e1e0b2b..d6955f89c 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4276,6 +4276,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //FWRETRACT + /*! + ### G21 - Sets Units to Millimters G21: Set Units to Millimeters + Units are in millimeters. Prusa doesn't support inches. + */ + case 21: + break; //Doing nothing. This is just to prevent serial UNKOWN warnings. + + /*! ### 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). From 8ef87d76ef46379586f8248b1e61b0232f02d346 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 20 Apr 2020 10:55:14 +0300 Subject: [PATCH 270/361] MK2.x: move away from endstops after lcd_selfcheck_pulleys() (#2617) * Removed duplicate #defines cleaned up display routine * Change to raise_z_above() * Better display handling * Ditch charswitch, show ... for measuring * Pull in changes from #5 * Fix printf()s * revert feedrates * typo * MK2.x: move away from endstops after lcd_selfcheck_pulleys() amend * Use absolute coordinates Co-authored-by: vintagepc <53943260+vintagepc@users.noreply.github.com> --- Firmware/ultralcd.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c44e3c377..469a9ce1a 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7705,8 +7705,8 @@ bool lcd_selftest() //homeaxis(X_AXIS); //homeaxis(Y_AXIS); - current_position[X_AXIS] += pgm_read_float(bed_ref_points_4); - current_position[Y_AXIS] += pgm_read_float(bed_ref_points_4+1); + current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4+1); #ifdef TMC2130 //current_position[X_AXIS] += 0; current_position[Y_AXIS] += 4; @@ -8099,6 +8099,9 @@ static bool lcd_selfcheck_pulleys(int axis) ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) { endstop_triggered = true; if (current_position_init - 1 <= current_position[axis] && current_position_init + 1 >= current_position[axis]) { + current_position[axis] += 10; + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + st_synchronize(); return(true); } else { From 4e50ed22fb55c54f9805c8f7a14ff31be531ea91 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 24 Apr 2020 15:15:47 +0200 Subject: [PATCH 271/361] Put credit where credit is due We wouldn't be here without Marlin and all the contributors! Fixes #2625 --- README.md | 405 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 207 insertions(+), 198 deletions(-) diff --git a/README.md b/README.md index 9d62d9ae3..c48ac164c 100644 --- a/README.md +++ b/README.md @@ -1,198 +1,207 @@ -# Table of contents - - - * [Linux build](#linux) - * Windows build - * [Using Arduino](#using-arduino) - * [Using Linux subsystem](#using-linux-subsystem-under-windows-10-64-bit) - * [Using Git-bash](#using-git-bash-under-windows-10-64-bit) - * [Automated tests](#3-automated-tests) - * [Documentation](#4-documentation) - * [FAQ](#5-faq) - - - -# Build -## Linux - -1. Clone this repository and checkout the correct branch for your desired release version. - -2. Set your printer model. - - For MK3 --> skip to step 3. - - If you have a different printer model, follow step [2.b](#2b) from Windows build - -3. Run `./build.sh` - - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well. - -4. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE. - - If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first. - - -_Notes:_ - -The script downloads Arduino with our modifications and Rambo board support installed, unpacks it into folder `PF-build-env-\` on the same level, as your Prusa-Firmware folder is located, builds firmware for MK3 using that Arduino in Prusa-Firmware-build folder on the same level as Prusa-Firmware, runs secondary language support scripts. Firmware with secondary language support is generated in lang subfolder. Use firmware.hex for MK3 variant. Use `firmware_\.hex` for other printers. Don't forget to follow step [2.b](#2b) first for non-MK3 printers. - -## Windows -### Using Arduino -_Note: Multi language build is not supported._ - -#### 1. Development environment preparation - -**a.** Install `"Arduino Software IDE"` from the official website `https://www.arduino.cc -> Software->Downloads` - - _It is recommended to use version `"1.8.5"`, as it is used on out build server to produce official builds._ - -**b.** Setup Arduino to use Prusa Rambo board definition - -* 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 Boards by Prusa Research` - -**c.** Modify compiler flags in `platform.txt` file - -* The platform.txt file can be found in Arduino instalation directory, or after Arduino has been updated at: `"C:\Users\(user)\AppData\Local\Arduino15\packages\arduino\hardware\avr\(version)"` If you can locate the file in both places, file from user profile is probably used. - -* Add `"-Wl,-u,vfprintf -lprintf_flt -lm"` to `"compiler.c.elf.flags="` before existing flag "-Wl,--gc-sections" - - For example: `"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"` - -_Notes:_ - - -_In the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be at leas `4.8.1`; -If you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_ - -_Name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_ - -#### 2. Source code compilation - -**a.** Clone this repository`https://github.com/prusa3d/Prusa-Firmware/` to your local drive. - -**b.** In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory. - -**c.** In file `"Firmware/config.h"` set LANG_MODE to 0. - -**d.** Run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source code `File->Open` Make the desired code customizations; **all changes are on your own risk!** - -**e.** Select the target board `"Tools->Board->PrusaResearch Einsy RAMBo"` - -**f.** Run the compilation `Sketch->Verify/Compile` - -**g.** Upload the result code into the connected printer `Sketch->Upload` - -* or you can also save the output code to the file (in so called `HEX`-format) `"Firmware.ino.rambo.hex"`: `Sketch->ExportCompiledBinary` and then upload it to the printer using the program `"FirmwareUpdater"` -_note: this file is created in the directory `"Firmware/"`_ - -### Using Linux subsystem under Windows 10 64-bit -_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Prusa-Firmware/issues) Multi language build is supported._ -- follow the Microsoft guide https://docs.microsoft.com/en-us/windows/wsl/install-win10 - You can also use the 'prepare_winbuild.ps1' powershell script with Administrator rights -- Tested versions are at this moment - - Ubuntu other may different - - After the installation and reboot please open your Ubuntu bash and do following steps - - run command `apt-get update` - - to install zip run `apt-get install zip` - - add few lines at the top of `~/.bashrc` by running `sudo nano ~/.bashrc` - - export OS="Linux" - export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true" - export GPG_TTY=$(tty) - - use `CRTL-X` to close nano and confirm to write the new entries - - restart Ubuntu bash -Now your Ubuntu subsystem is ready to use the automatic `PF-build.sh` script and compile your firmware correctly - -#### Some Tips for Ubuntu -- Linux is case sensetive so please don't forget to use capital letters where needed, like changing to a directory -- To change the path to your Prusa-Firmware location you downloaded and unzipped - - Example: You files are under `C:\Users\\Downloads\Prusa-Firmware-MK3` - - use under Ubuntu the following command `cd /mnt/c/Users//Downloads/Prusa-Firmware-MK3` - to change to the right folder -- Unix and windows have different line endings (LF vs CRLF), try dos2unix to convert - - This should fix the `"$'\r': command not found"` error - - to install run `apt-get install dos2unix` -- If your Windows isn't in English the Paths may look different - Example in other languages - - English `/mnt/c/Users//Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender//Downloads/Prusa-Firmware-MK3` -#### Compile Prusa-firmware with Ubuntu Linux subsystem installed -- open Ubuntu bash -- change to your source code folder (case sensitive) -- run `./PF-build.sh` -- follow the instructions - -### Using Git-bash under Windows 10 64-bit -_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Prusa-Firmware/issues) Multi language build is supported._ -- Download and install the 64bit Git version https://git-scm.com/download/win -- Also follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 -- Download and install 7z-zip from its official website https://www.7-zip.org/ - By default, it is installed under the directory /c/Program\ Files/7-Zip in Windows 10 -- Run `Git-Bash` under Administrator privilege -- navigate to the directory /c/Program\ Files/Git/mingw64/bin -- run `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe` -- If your Windows isn't in English the Paths may look different - Example in other languages - - English `/mnt/c/Users//Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender//Downloads/Prusa-Firmware-MK3` - - English `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe` will be on a Spanish Windows `ln -s /c/Archivos\ de\ programa/7-Zip/7z.exe zip.exe` -#### Compile Prusa-firmware with Git-bash installed -- open Git-bash -- change to your source code folder -- run `bash PF-build.sh` -- follow the instructions - - -# 3. Automated tests -## Prerequisites -* c++11 compiler e.g. g++ 6.3.1 -* cmake -* build system - ninja or gnu make - -## Building -Create a folder where you want to build tests. - -Example: - -`cd ..` - -`mkdir Prusa-Firmware-test` - -Generate build scripts in target folder. - -Example: - -`cd Prusa-Firmware-test` - -`cmake -G "Eclipse CDT4 - Ninja" ../Prusa-Firmware` - -or for DEBUG build: - -`cmake -G "Eclipse CDT4 - Ninja" -DCMAKE_BUILD_TYPE=Debug ../Prusa-Firmware` - -Build it. - -Example: - -`ninja` - -## Runing -`./tests` - -# 4. Documentation -run [doxygen](http://www.doxygen.nl/) in Firmware folder -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. - -A:Step 1.c was ommited or you updated Arduino and now platform.txt located somewhere in your user profile is used. - -Q:I built firmware using Arduino and printer now speaks Klingon (nonsense characters and symbols are displayed @^#$&*°;~ÿ) - -A:Step 2.c was omitted. - -Q:What environment does Prusa use to build the firmware in the first place? - -A:Our production builds are 99.9% equivalent to https://github.com/prusa3d/Prusa-Firmware#linux this is also easiest way to build as only one step is needed - run single script, which downloads patched Arduino from github, builds using it, then extracts translated strings and creates language variants (for MK2x) or language hex file for external SPI flash (MK3x). But you need Linux or Linux in virtual machine. This is also what happens when you open pull request to our repository - all variants are built by Travis http://travis-ci.org/ (to check for compilation errors). You can see, what is happening in .travis.yml. It would be also possible to get hex built by travis, only deploy step is missing in .travis.yml. You can get inspiration how to deploy hex by travis and how to setup travis in https://github.com/prusa3d/MM-control-01/ repository. Final hex is located in ./lang/firmware.hex Community reproduced this for Windows in https://github.com/prusa3d/Prusa-Firmware#using-linux-subsystem-under-windows-10-64-bit or https://github.com/prusa3d/Prusa-Firmware#using-git-bash-under-windows-10-64-bit . - -Q:Why are build instructions for Arduino mess. - -Y:We are too lazy to ship proper board definition for Arduino. We plan to swich to cmake + ninja to be inherently multiplatform, easily integrate build tools, suport more IDEs, get 10 times shorter build times and be able to update compiler whenewer we want. +# Prusa Firmware MK3 + +This repository contains the source code and the development versions of the firmware running on the [Prusa](https://prusa3d.com/) MK3S/MK3/MK2.5S/MK2.5 line of printers. + +The latest official builds can be downloaded from [Prusa Drivers](https://www.prusa3d.com/drivers/). Pre-built development releases are also [available here](https://github.com/prusa3d/Prusa-Firmware/releases). + +The MK3 firmware is proudly based on [Marlin 1.0.x](https://github.com/MarlinFirmware/Marlin/) by Scott Lahteine (@thinkyhead) et al. and is distributed under the terms of the [GNU GPL 3 license](LICENSE). + + +# Table of contents + + + * [Linux build](#linux) + * Windows build + * [Using Arduino](#using-arduino) + * [Using Linux subsystem](#using-linux-subsystem-under-windows-10-64-bit) + * [Using Git-bash](#using-git-bash-under-windows-10-64-bit) + * [Automated tests](#3-automated-tests) + * [Documentation](#4-documentation) + * [FAQ](#5-faq) + + + +# Build +## Linux + +1. Clone this repository and checkout the correct branch for your desired release version. + +2. Set your printer model. + - For MK3 --> skip to step 3. + - If you have a different printer model, follow step [2.b](#2b) from Windows build + +3. Run `./build.sh` + - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well. + +4. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE. + - If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first. + + +_Notes:_ + +The script downloads Arduino with our modifications and Rambo board support installed, unpacks it into folder `PF-build-env-\` on the same level, as your Prusa-Firmware folder is located, builds firmware for MK3 using that Arduino in Prusa-Firmware-build folder on the same level as Prusa-Firmware, runs secondary language support scripts. Firmware with secondary language support is generated in lang subfolder. Use firmware.hex for MK3 variant. Use `firmware_\.hex` for other printers. Don't forget to follow step [2.b](#2b) first for non-MK3 printers. + +## Windows +### Using Arduino +_Note: Multi language build is not supported._ + +#### 1. Development environment preparation + +**a.** Install `"Arduino Software IDE"` from the official website `https://www.arduino.cc -> Software->Downloads` + + _It is recommended to use version `"1.8.5"`, as it is used on out build server to produce official builds._ + +**b.** Setup Arduino to use Prusa Rambo board definition + +* 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 Boards by Prusa Research` + +**c.** Modify compiler flags in `platform.txt` file + +* The platform.txt file can be found in Arduino instalation directory, or after Arduino has been updated at: `"C:\Users\(user)\AppData\Local\Arduino15\packages\arduino\hardware\avr\(version)"` If you can locate the file in both places, file from user profile is probably used. + +* Add `"-Wl,-u,vfprintf -lprintf_flt -lm"` to `"compiler.c.elf.flags="` before existing flag "-Wl,--gc-sections" + + For example: `"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"` + +_Notes:_ + + +_In the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be at leas `4.8.1`; +If you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_ + +_Name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_ + +#### 2. Source code compilation + +**a.** Clone this repository`https://github.com/prusa3d/Prusa-Firmware/` to your local drive. + +**b.** In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory. + +**c.** In file `"Firmware/config.h"` set LANG_MODE to 0. + +**d.** Run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source code `File->Open` Make the desired code customizations; **all changes are on your own risk!** + +**e.** Select the target board `"Tools->Board->PrusaResearch Einsy RAMBo"` + +**f.** Run the compilation `Sketch->Verify/Compile` + +**g.** Upload the result code into the connected printer `Sketch->Upload` + +* or you can also save the output code to the file (in so called `HEX`-format) `"Firmware.ino.rambo.hex"`: `Sketch->ExportCompiledBinary` and then upload it to the printer using the program `"FirmwareUpdater"` +_note: this file is created in the directory `"Firmware/"`_ + +### Using Linux subsystem under Windows 10 64-bit +_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Prusa-Firmware/issues) Multi language build is supported._ +- follow the Microsoft guide https://docs.microsoft.com/en-us/windows/wsl/install-win10 + You can also use the 'prepare_winbuild.ps1' powershell script with Administrator rights +- Tested versions are at this moment + - Ubuntu other may different + - After the installation and reboot please open your Ubuntu bash and do following steps + - run command `apt-get update` + - to install zip run `apt-get install zip` + - add few lines at the top of `~/.bashrc` by running `sudo nano ~/.bashrc` + + export OS="Linux" + export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true" + export GPG_TTY=$(tty) + + use `CRTL-X` to close nano and confirm to write the new entries + - restart Ubuntu bash +Now your Ubuntu subsystem is ready to use the automatic `PF-build.sh` script and compile your firmware correctly + +#### Some Tips for Ubuntu +- Linux is case sensetive so please don't forget to use capital letters where needed, like changing to a directory +- To change the path to your Prusa-Firmware location you downloaded and unzipped + - Example: You files are under `C:\Users\\Downloads\Prusa-Firmware-MK3` + - use under Ubuntu the following command `cd /mnt/c/Users//Downloads/Prusa-Firmware-MK3` + to change to the right folder +- Unix and windows have different line endings (LF vs CRLF), try dos2unix to convert + - This should fix the `"$'\r': command not found"` error + - to install run `apt-get install dos2unix` +- If your Windows isn't in English the Paths may look different + Example in other languages + - English `/mnt/c/Users//Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender//Downloads/Prusa-Firmware-MK3` +#### Compile Prusa-firmware with Ubuntu Linux subsystem installed +- open Ubuntu bash +- change to your source code folder (case sensitive) +- run `./PF-build.sh` +- follow the instructions + +### Using Git-bash under Windows 10 64-bit +_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Prusa-Firmware/issues) Multi language build is supported._ +- Download and install the 64bit Git version https://git-scm.com/download/win +- Also follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 +- Download and install 7z-zip from its official website https://www.7-zip.org/ + By default, it is installed under the directory /c/Program\ Files/7-Zip in Windows 10 +- Run `Git-Bash` under Administrator privilege +- navigate to the directory /c/Program\ Files/Git/mingw64/bin +- run `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe` +- If your Windows isn't in English the Paths may look different + Example in other languages + - English `/mnt/c/Users//Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender//Downloads/Prusa-Firmware-MK3` + - English `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe` will be on a Spanish Windows `ln -s /c/Archivos\ de\ programa/7-Zip/7z.exe zip.exe` +#### Compile Prusa-firmware with Git-bash installed +- open Git-bash +- change to your source code folder +- run `bash PF-build.sh` +- follow the instructions + + +# 3. Automated tests +## Prerequisites +* c++11 compiler e.g. g++ 6.3.1 +* cmake +* build system - ninja or gnu make + +## Building +Create a folder where you want to build tests. + +Example: + +`cd ..` + +`mkdir Prusa-Firmware-test` + +Generate build scripts in target folder. + +Example: + +`cd Prusa-Firmware-test` + +`cmake -G "Eclipse CDT4 - Ninja" ../Prusa-Firmware` + +or for DEBUG build: + +`cmake -G "Eclipse CDT4 - Ninja" -DCMAKE_BUILD_TYPE=Debug ../Prusa-Firmware` + +Build it. + +Example: + +`ninja` + +## Runing +`./tests` + +# 4. Documentation +run [doxygen](http://www.doxygen.nl/) in Firmware folder +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. + +A:Step 1.c was ommited or you updated Arduino and now platform.txt located somewhere in your user profile is used. + +Q:I built firmware using Arduino and printer now speaks Klingon (nonsense characters and symbols are displayed @^#$&*°;~ÿ) + +A:Step 2.c was omitted. + +Q:What environment does Prusa use to build the firmware in the first place? + +A:Our production builds are 99.9% equivalent to https://github.com/prusa3d/Prusa-Firmware#linux this is also easiest way to build as only one step is needed - run single script, which downloads patched Arduino from github, builds using it, then extracts translated strings and creates language variants (for MK2x) or language hex file for external SPI flash (MK3x). But you need Linux or Linux in virtual machine. This is also what happens when you open pull request to our repository - all variants are built by Travis http://travis-ci.org/ (to check for compilation errors). You can see, what is happening in .travis.yml. It would be also possible to get hex built by travis, only deploy step is missing in .travis.yml. You can get inspiration how to deploy hex by travis and how to setup travis in https://github.com/prusa3d/MM-control-01/ repository. Final hex is located in ./lang/firmware.hex Community reproduced this for Windows in https://github.com/prusa3d/Prusa-Firmware#using-linux-subsystem-under-windows-10-64-bit or https://github.com/prusa3d/Prusa-Firmware#using-git-bash-under-windows-10-64-bit . + +Q:Why are build instructions for Arduino mess. + +Y:We are too lazy to ship proper board definition for Arduino. We plan to swich to cmake + ninja to be inherently multiplatform, easily integrate build tools, suport more IDEs, get 10 times shorter build times and be able to update compiler whenewer we want. From baaa372a56c8deece078087c6e309e8507aaccd2 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 24 Apr 2020 19:46:54 +0200 Subject: [PATCH 272/361] Rephrase texts for fsensor detection and cleanup (#2630) * Rephrase texts for fsensor detection and cleanup * fsensor msgs only for MK3S --- Firmware/Marlin_main.cpp | 4 ++-- Firmware/fsensor.cpp | 6 +++--- Firmware/fsensor.h | 2 +- Firmware/messages.c | 6 ++++++ Firmware/messages.h | 4 ++++ Firmware/ultralcd.cpp | 26 +++++++++++++------------- Firmware/ultralcd.h | 2 +- 7 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e1e0b2b..731ac380f 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9484,10 +9484,10 @@ static uint8_t nFSCheckCount=0; if(nFSCheckCount>FS_CHECK_COUNT) { nFSCheckCount=0; // not necessary - oFsensorPCB=ClFsensorPCB::_Rev03b; + oFsensorPCB=ClFsensorPCB::_Rev04; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); printf_IRSensorAnalogBoardChange(true); - lcd_setstatuspgm(_i("FS rev. 03b or newer")); + lcd_setstatuspgm(_i("FS v0.4 or newer")); } } else nFSCheckCount=0; diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 219ab4f85..0acb9e28f 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -201,7 +201,7 @@ void fsensor_init(void) fsensor_disable(false); // (in this case) EEPROM update is not necessary printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED"))); #ifdef IR_SENSOR_ANALOG - printf_P(PSTR(" (sensor board revision: %S)\n"),(oFsensorPCB==ClFsensorPCB::_Rev03b)?PSTR("03b or newer"):PSTR("03 or older")); + printf_P(PSTR(" (sensor board revision: %S)\n"),(oFsensorPCB==ClFsensorPCB::_Rev04) ? MSG_04_OR_NEWER : MSG_03_OR_OLDER); #else //IR_SENSOR_ANALOG printf_P(PSTR("\n")); #endif //IR_SENSOR_ANALOG @@ -691,7 +691,7 @@ void fsensor_update(void) ADCSRB=nMUX2; ENABLE_TEMPERATURE_INTERRUPT(); // end of sequence for ... - if((oFsensorPCB==ClFsensorPCB::_Rev03b)&&((nADC*OVERSAMPLENR)>((int)IRsensor_Hopen_TRESHOLD))) + if((oFsensorPCB==ClFsensorPCB::_Rev04)&&((nADC*OVERSAMPLENR)>((int)IRsensor_Hopen_TRESHOLD))) { fsensor_disable(); fsensor_not_responding = true; @@ -727,7 +727,7 @@ 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)))); +bCheckResult=bCheckResult&&(!((oFsensorPCB==ClFsensorPCB::_Rev04)&&(volt_IR_int>((int)IRsensor_Hopen_TRESHOLD)))); return(bCheckResult); } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 4949381b4..4038d6b61 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -90,7 +90,7 @@ extern uint8_t fsensor_log; enum class ClFsensorPCB:uint_least8_t { _Old=0, - _Rev03b=1, + _Rev04=1, _Undef=EEPROM_EMPTY_VALUE }; diff --git a/Firmware/messages.c b/Firmware/messages.c index 4e229ba76..c18b7a912 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -138,6 +138,11 @@ 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"); //// +#ifdef IR_SENSOR_ANALOG +// Beware - the space at the beginning is necessary since it is reused in LCD menu items which are to be with a space +const char MSG_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer"); +const char MSG_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older"); +#endif //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// @@ -170,3 +175,4 @@ 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 const char MSG_ADVANCE_K[] PROGMEM_N1 = "Advance K:"; ////c=13 const char MSG_POWERPANIC_DETECTED[] PROGMEM_N1 = "POWER PANIC DETECTED"; ////c=20 + diff --git a/Firmware/messages.h b/Firmware/messages.h index 7cc240d3b..599f1d1fa 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -138,6 +138,10 @@ extern const char MSG_TIMEOUT[]; extern const char MSG_BRIGHT[]; extern const char MSG_DIM[]; extern const char MSG_AUTO[]; +#ifdef IR_SENSOR_ANALOG +extern const char MSG_04_OR_NEWER[]; +extern const char MSG_03_OR_OLDER[]; +#endif //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 469a9ce1a..eeda00d1e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2166,14 +2166,14 @@ static void lcd_support_menu() switch(oFsensorPCB) { case ClFsensorPCB::_Old: - MENU_ITEM_BACK_P(PSTR(" 03 or older")); + MENU_ITEM_BACK_P(MSG_03_OR_OLDER); break; - case ClFsensorPCB::_Rev03b: - MENU_ITEM_BACK_P(PSTR(" 03b or newer")); + case ClFsensorPCB::_Rev04: + MENU_ITEM_BACK_P(MSG_04_OR_NEWER); break; case ClFsensorPCB::_Undef: default: - MENU_ITEM_BACK_P(PSTR(" state unknown")); + MENU_ITEM_BACK_P(PSTR(" unknown state")); } #endif // IR_SENSOR_ANALOG @@ -7504,19 +7504,19 @@ void lcd_belttest() #ifdef IR_SENSOR_ANALOG // called also from marlin_main.cpp -void printf_IRSensorAnalogBoardChange(bool bPCBrev03b){ - printf_P(PSTR("Filament sensor board change detected: revision %S\n"), bPCBrev03b ? PSTR("03b or newer") : PSTR("03 or older")); +void printf_IRSensorAnalogBoardChange(bool bPCBrev04){ + printf_P(PSTR("Filament sensor board change detected: revision %S\n"), bPCBrev04 ? MSG_04_OR_NEWER : MSG_03_OR_OLDER); } static bool lcd_selftest_IRsensor(bool bStandalone) { bool bAction; - bool bPCBrev03b; + bool bPCBrev04; uint16_t volt_IR_int; float volt_IR; volt_IR_int=current_voltage_raw_IR; - bPCBrev03b=(volt_IR_int<((int)IRsensor_Hopen_TRESHOLD)); + bPCBrev04=(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)){ @@ -7524,7 +7524,7 @@ static bool lcd_selftest_IRsensor(bool bStandalone) 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.")); + lcd_show_fullscreen_message_and_wait_P(_i("Insert the filament (do not load it) into the 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); @@ -7533,9 +7533,9 @@ static bool lcd_selftest_IRsensor(bool bStandalone) lcd_selftest_error(TestError::FsensorLevel,"LOW",""); return(false); } - if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev03b" - printf_IRSensorAnalogBoardChange(bPCBrev03b); - oFsensorPCB=bPCBrev03b?ClFsensorPCB::_Rev03b:ClFsensorPCB::_Old; + if((bPCBrev04?1:0)!=(uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev04" + printf_IRSensorAnalogBoardChange(bPCBrev04); + oFsensorPCB=bPCBrev04?ClFsensorPCB::_Rev04:ClFsensorPCB::_Old; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); } return(true); @@ -7545,7 +7545,7 @@ static void lcd_detect_IRsensor(){ bool bAction; bMenuFSDetect = true; // inhibits some code inside "manage_inactivity()" - bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament loaded?"), false, false); + bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament loaded?"), false, false); if(bAction){ lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action.")); return; diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index c183e0a5c..70584d6eb 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -142,7 +142,7 @@ extern uint8_t farm_status; #ifdef IR_SENSOR_ANALOG extern bool bMenuFSDetect; -void printf_IRSensorAnalogBoardChange(bool bPCBrev03b); +void printf_IRSensorAnalogBoardChange(bool bPCBrev04); #endif //IR_SENSOR_ANALOG extern int8_t SilentModeMenu; From 40c052f48285c5ab563dad5ff2d65c6eced28fd1 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 24 Apr 2020 20:02:13 +0200 Subject: [PATCH 273/361] Version changed (3.9.0-RC2 build 3398) --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 98923ef4f..8d241bb0e 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.9.0-RC1" -#define FW_COMMIT_NR 3272 +#define FW_VERSION "3.9.0-RC2" +#define FW_COMMIT_NR 3398 // 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 67e9b4c0962ad54ef2559b2af84c172edf9e5e11 Mon Sep 17 00:00:00 2001 From: DRracer Date: Tue, 28 Apr 2020 10:20:21 +0200 Subject: [PATCH 274/361] IR fsensor fixes (#2632) * MK3S IR sensor detection and safe operational range fix * debug, change of fsensor_IR_check behavior * more doc + disable debug print voltage * fix displaying MSG_04_OR_NEWER and MSG_03.... kudos to @ovariludovit * better handling of fsensor not responding scenario --- Firmware/Marlin_main.cpp | 56 +++++++++++++++++++++-------- Firmware/fsensor.cpp | 76 ++++++++++++++++++++++++++-------------- Firmware/temperature.cpp | 2 +- Firmware/temperature.h | 2 +- Firmware/ultralcd.cpp | 39 ++++++++++----------- Firmware/ultralcd.h | 17 ++++++--- 6 files changed, 126 insertions(+), 66 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 731ac380f..08031e401 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9446,13 +9446,13 @@ static void handleSafetyTimer() } #endif //SAFETYTIMER -#define FS_CHECK_COUNT 15 +#define FS_CHECK_COUNT 250 void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h { #ifdef FILAMENT_SENSOR bool bInhibitFlag; #ifdef IR_SENSOR_ANALOG -static uint8_t nFSCheckCount=0; +static uint16_t nFSCheckCount=0; #endif // IR_SENSOR_ANALOG if (mmu_enabled == false) @@ -9472,25 +9472,53 @@ static uint8_t nFSCheckCount=0; if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { #ifdef IR_SENSOR_ANALOG - bool bTemp=current_voltage_raw_IR>IRsensor_Hmin_TRESHOLD; - bTemp=bTemp&¤t_voltage_raw_IR maxVolt )maxVolt = current_voltage_raw_IR; + if( current_voltage_raw_IR < minVolt )minVolt = current_voltage_raw_IR; + +#if 0 + { // debug print + static uint16_t lastVolt = ~0U; + if( current_voltage_raw_IR != lastVolt ){ + printf_P(PSTR("fs volt=%4.2fV (min=%4.2f max=%4.2f)\n"), Raw2Voltage(current_voltage_raw_IR), Raw2Voltage(minVolt), Raw2Voltage(maxVolt) ); + lastVolt = current_voltage_raw_IR; + } + } +#endif + // the trouble is, I can hold the filament in the hole in such a way, that it creates the exact voltage + // to be detected as the new fsensor + // We can either fake it by extending the detection window to a looooong time + // or do some other countermeasures + + // what we want to detect: + // if minvolt gets below ~0.6V, it means there is an old fsensor + // if maxvolt gets above 4.6V, it means we either have an old fsensor or broken cables/fsensor + // So I'm waiting for a situation, when minVolt gets to range <0, 0.7> and maxVolt gets into range <4.4, 5> + // If and only if minVolt is in range <0.6, 0.7> and maxVolt is in range <4.4, 4.5>, I'm considering a situation with the new fsensor + // otherwise, I don't care + + if( minVolt >= Voltage2Raw(0.3F) && minVolt <= Voltage2Raw(0.5F) + && maxVolt >= Voltage2Raw(4.2F) && maxVolt <= Voltage2Raw(4.6F) + ){ + bool bTemp = (!CHECK_ALL_HEATERS); + bTemp = bTemp && (menu_menu==lcd_status_screen); + bTemp = bTemp && ((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); + bTemp = bTemp && fsensor_enabled; + if(bTemp){ nFSCheckCount++; - if(nFSCheckCount>FS_CHECK_COUNT) - { + if(nFSCheckCount>FS_CHECK_COUNT){ nFSCheckCount=0; // not necessary oFsensorPCB=ClFsensorPCB::_Rev04; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); printf_IRSensorAnalogBoardChange(true); lcd_setstatuspgm(_i("FS v0.4 or newer")); } - } - else nFSCheckCount=0; + } else { + nFSCheckCount=0; + } + } #endif // IR_SENSOR_ANALOG if (fsensor_check_autoload()) { diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 0acb9e28f..edb2fa894 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -174,39 +174,46 @@ 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); + uint8_t fsensor_enabled = eeprom_read_byte((uint8_t*)EEPROM_FSENSOR); fsensor_autoload_enabled=eeprom_read_byte((uint8_t*)EEPROM_FSENS_AUTOLOAD_ENABLED); - fsensor_not_responding = false; + 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; - fsensor_set_axis_steps_per_unit(cs.axis_steps_per_unit[E_AXIS]); - - if (!pat9125) - { - fsensor = 0; //disable sensor + fsensor_set_axis_steps_per_unit(cs.axis_steps_per_unit[E_AXIS]); + + if (!pat9125){ + fsensor_enabled = 0; //disable sensor fsensor_not_responding = true; } #endif //PAT9125 #ifdef 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); + bIRsensorStateFlag=false; + oFsensorPCB = (ClFsensorPCB)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_PCB); + oFsensorActionNA = (ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA); + + // If the fsensor is not responding even at the start of the printer, + // set this flag accordingly to show N/A in Settings->Filament sensor. + // This is even valid for both fsensor board revisions (0.3 or older and 0.4). + // Must be done after reading what type of fsensor board we have + fsensor_not_responding = ! fsensor_IR_check(); #endif //IR_SENSOR_ANALOG - if (fsensor) + if (fsensor_enabled){ fsensor_enable(false); // (in this case) EEPROM update is not necessary - else + } else { fsensor_disable(false); // (in this case) EEPROM update is not necessary + } printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED"))); #ifdef IR_SENSOR_ANALOG - printf_P(PSTR(" (sensor board revision: %S)\n"),(oFsensorPCB==ClFsensorPCB::_Rev04) ? MSG_04_OR_NEWER : MSG_03_OR_OLDER); + printf_P(PSTR(" (sensor board revision:%S)\n"), (oFsensorPCB==ClFsensorPCB::_Rev04) ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER)); #else //IR_SENSOR_ANALOG printf_P(PSTR("\n")); #endif //IR_SENSOR_ANALOG - if (check_for_ir_sensor()) ir_sensor_detected = true; - + if (check_for_ir_sensor()){ + ir_sensor_detected = true; + } } bool fsensor_enable(bool bUpdateEEPROM) @@ -691,12 +698,16 @@ void fsensor_update(void) ADCSRB=nMUX2; ENABLE_TEMPERATURE_INTERRUPT(); // end of sequence for ... - if((oFsensorPCB==ClFsensorPCB::_Rev04)&&((nADC*OVERSAMPLENR)>((int)IRsensor_Hopen_TRESHOLD))) + // Detection of correct function of fsensor v04 - it must NOT read >4.6V + // If it does, it means a disconnected cables or faulty board + if( (oFsensorPCB == ClFsensorPCB::_Rev04) && ( (nADC*OVERSAMPLENR) > 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((ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA)==ClFsensorActionNA::_Pause) + + // if we are printing and FS action is set to "Pause", force pause the print if(oFsensorActionNA==ClFsensorActionNA::_Pause) lcd_pause_print(); } @@ -720,14 +731,27 @@ void fsensor_update(void) } #ifdef IR_SENSOR_ANALOG -bool fsensor_IR_check() -{ -uint16_t volt_IR_int; -bool bCheckResult; +/// This is called only upon start of the printer or when switching the fsensor ON in the menu +/// We cannot do temporal window checks here (aka the voltage has been in some range for a period of time) +bool fsensor_IR_check(){ + if( IRsensor_Lmax_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_Hmin_TRESHOLD ){ + // If the voltage is in forbidden range, the fsensor is ok, but the lever is mounted improperly. + // Or the user is so creative so that he can hold a piece of fillament in the hole in such a genius way, + // that the IR fsensor reading is within 1.5 and 3V ... this would have been highly unusual + // and would have been considered more like a sabotage than normal printer operation + printf_P(PSTR("fsensor in forbidden range 1.5-3V - bad lever\n")); + return false; + } + + if( oFsensorPCB == ClFsensorPCB::_Rev04 ){ + // newer IR sensor cannot normally produce 4.6-5V, this is considered a failure/bad mount + if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){ + printf_P(PSTR("fsensor v0.4 in fault range 4.6-5V - unconnected\n")); + return false; + } + } -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::_Rev04)&&(volt_IR_int>((int)IRsensor_Hopen_TRESHOLD)))); -return(bCheckResult); + // otherwise the IR fsensor is considered working correctly + return true; } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 7ca035f74..f6f8f3206 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -74,7 +74,7 @@ int current_voltage_raw_bed = 0; #endif #ifdef IR_SENSOR_ANALOG -int current_voltage_raw_IR = 0; +uint16_t current_voltage_raw_IR = 0; #endif //IR_SENSOR_ANALOG int current_temperature_bed_raw = 0; diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 5fb62d58c..7b7637b11 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -79,7 +79,7 @@ extern int current_voltage_raw_bed; #endif #ifdef IR_SENSOR_ANALOG -extern int current_voltage_raw_IR; +extern uint16_t current_voltage_raw_IR; #endif //IR_SENSOR_ANALOG #if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index eeda00d1e..2e23d358d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1981,8 +1981,7 @@ static void lcd_menu_voltages() lcd_home(); lcd_printf_P(PSTR(" PWR: %4.1fV\n" " BED: %4.1fV"), volt_pwr, volt_bed); #ifdef 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); + lcd_printf_P(PSTR("\n IR : %3.1fV"), Raw2Voltage(current_voltage_raw_IR)); #endif //IR_SENSOR_ANALOG menu_back_if_clicked(); } @@ -2166,10 +2165,10 @@ static void lcd_support_menu() switch(oFsensorPCB) { case ClFsensorPCB::_Old: - MENU_ITEM_BACK_P(MSG_03_OR_OLDER); + MENU_ITEM_BACK_P(_T(MSG_03_OR_OLDER)); break; case ClFsensorPCB::_Rev04: - MENU_ITEM_BACK_P(MSG_04_OR_NEWER); + MENU_ITEM_BACK_P(_T(MSG_04_OR_NEWER)); break; case ClFsensorPCB::_Undef: default: @@ -7505,37 +7504,33 @@ void lcd_belttest() #ifdef IR_SENSOR_ANALOG // called also from marlin_main.cpp void printf_IRSensorAnalogBoardChange(bool bPCBrev04){ - printf_P(PSTR("Filament sensor board change detected: revision %S\n"), bPCBrev04 ? MSG_04_OR_NEWER : MSG_03_OR_OLDER); + printf_P(PSTR("Filament sensor board change detected: revision%S\n"), bPCBrev04 ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER)); } static bool lcd_selftest_IRsensor(bool bStandalone) { - bool bAction; bool bPCBrev04; uint16_t volt_IR_int; - float volt_IR; - volt_IR_int=current_voltage_raw_IR; - bPCBrev04=(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)){ + volt_IR_int = current_voltage_raw_IR; + bPCBrev04=(volt_IR_int < IRsensor_Hopen_TRESHOLD); + printf_P(PSTR("Measured filament sensor high level: %4.2fV\n"), Raw2Voltage(volt_IR_int) ); + if(volt_IR_int < IRsensor_Hmin_TRESHOLD){ if(!bStandalone) lcd_selftest_error(TestError::FsensorLevel,"HIGH",""); return(false); } lcd_show_fullscreen_message_and_wait_P(_i("Insert the filament (do not load it) into the 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)){ + volt_IR_int = current_voltage_raw_IR; + printf_P(PSTR("Measured filament sensor low level: %4.2fV\n"), Raw2Voltage(volt_IR_int)); + if(volt_IR_int > (IRsensor_Lmax_TRESHOLD)){ if(!bStandalone) lcd_selftest_error(TestError::FsensorLevel,"LOW",""); return(false); } - if((bPCBrev04?1:0)!=(uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev04" + if((bPCBrev04 ? 1 : 0) != (uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev04" printf_IRSensorAnalogBoardChange(bPCBrev04); - oFsensorPCB=bPCBrev04?ClFsensorPCB::_Rev04:ClFsensorPCB::_Old; + oFsensorPCB=bPCBrev04 ? ClFsensorPCB::_Rev04 : ClFsensorPCB::_Old; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); } return(true); @@ -7551,10 +7546,14 @@ static void lcd_detect_IRsensor(){ return; } bAction = lcd_selftest_IRsensor(true); - if(bAction) + if(bAction){ lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now.")); - else + // the fsensor board has been successfully identified, any previous "not responding" may be cleared now + fsensor_not_responding = false; + } else { lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again.")); + // here it is unclear what to to with the fsensor_not_responding flag + } bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 70584d6eb..d68ab14b2 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -259,10 +259,19 @@ void lcd_wizard(WizState state); #define VOLT_DIV_REF 5 #ifdef 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 +constexpr uint16_t Voltage2Raw(float V){ + return ( V * 1023 * OVERSAMPLENR / VOLT_DIV_REF ) + 0.5F; +} +constexpr float Raw2Voltage(uint16_t raw){ + return VOLT_DIV_REF*(raw / (1023.F * OVERSAMPLENR) ); +} +constexpr uint16_t IRsensor_Hmin_TRESHOLD = Voltage2Raw(3.0F); // ~3.0V (0.6*Vcc), raw value=9821 +constexpr uint16_t IRsensor_Lmax_TRESHOLD = Voltage2Raw(1.5F); // ~1.5V (0.3*Vcc), raw value=4910 +constexpr uint16_t IRsensor_Hopen_TRESHOLD = Voltage2Raw(4.6F); // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k), raw value=15059 +constexpr uint16_t IRsensor_Ldiode_TRESHOLD = Voltage2Raw(0.3F); // ~0.3V, raw value=982 +constexpr uint16_t IRsensor_VMax_TRESHOLD = Voltage2Raw(5.F); // ~5V, raw value=16368 + + #endif //IR_SENSOR_ANALOG #endif //ULTRALCD_H From 7be713199d2934290c29ae4d40174da974940058 Mon Sep 17 00:00:00 2001 From: DRracer Date: Tue, 28 Apr 2020 12:06:13 +0200 Subject: [PATCH 275/361] Version changed (3.9.0-RC3 build 3401) --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 8d241bb0e..9d0874421 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.9.0-RC2" -#define FW_COMMIT_NR 3398 +#define FW_VERSION "3.9.0-RC3" +#define FW_COMMIT_NR 3401 // 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 8289fcf2434014bfbfa60853618fbc3467f64332 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 28 Apr 2020 13:39:06 +0200 Subject: [PATCH 276/361] Added RC3 detection in PF-build.sh As we we got a RC3 version I have updated also `PF-build.sh` to detect it correctly. --- PF-build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 8f1fa2478..4244dc16e 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_13 +# Version: 1.0.6-Build_14 # 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 @@ -118,6 +118,7 @@ # 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 +# 28 Apr 2020, 3d-gussner, Added RC3 detection #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -527,7 +528,7 @@ do # Check development status DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) if [ -z "$DEV_STATUS_SELECTED" ] ; then - if [[ "$DEV_CHECK" == "RC1" || "$DEV_CHECK" == "RC2" ]] ; then + if [[ "$DEV_CHECK" == "RC1" || "$DEV_CHECK" == "RC2" || "$DEV_CHECK" == "RC3" ]] ; then DEV_STATUS="RC" elif [[ "$DEV_CHECK" == "ALPHA" ]]; then DEV_STATUS="ALPHA" From 0b666ee7335e50fe49de49acb090209c6c35099b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Apr 2020 17:24:03 +0200 Subject: [PATCH 277/361] Parametrize LA limits and threshold values Allow the LA 1.5 MAX value to be configured in Configuration_adv.h. Define a customizable LA10<>15 detection threshold in function of the above limit. Clamp the result of of the LA10->15 return value to always respect the new LA_K_MAX. --- Firmware/Configuration_adv.h | 12 +++++++----- Firmware/Marlin_main.cpp | 2 +- Firmware/la10compat.cpp | 9 ++++++--- Firmware/planner.cpp | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index ab9274243..5386c2815 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -285,11 +285,13 @@ #define LIN_ADVANCE #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 + #define LA_K_DEF 0 // Default K factor (Unit: mm compression per 1mm/s extruder speed) + #define LA_K_MAX 10 // Maximum acceptable K factor (exclusive, see notes in planner.cpp:plan_buffer_line) + #define LA_LA10_MIN LA_K_MAX // Lin. Advance 1.0 threshold value (inclusive) + //#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 #endif // Arc interpretation settings: diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 731ac380f..ea597c195 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2066,7 +2066,7 @@ static float probe_pt(float x, float y, float z_before) { inline void gcode_M900() { float newK = code_seen('K') ? code_value_float() : -2; #ifdef LA_NOCOMPAT - if (newK >= 0 && newK < 10) + if (newK >= 0 && newK < LA_K_MAX) extruder_advance_K = newK; else SERIAL_ECHOLNPGM("K out of allowed range!"); diff --git a/Firmware/la10compat.cpp b/Firmware/la10compat.cpp index 9f0d5e5fe..918659255 100644 --- a/Firmware/la10compat.cpp +++ b/Firmware/la10compat.cpp @@ -1,5 +1,6 @@ #include "la10compat.h" #include "Marlin.h" +#include static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode @@ -38,7 +39,9 @@ void la10c_mode_change(LA10C_MODE mode) static float la10c_convert(float k) { float new_K = k * 0.004 - 0.05; - return (new_K < 0? 0: new_K); + return new_K < 0? 0: + new_K > (LA_K_MAX - FLT_EPSILON)? (LA_K_MAX - FLT_EPSILON): + new_K; } @@ -52,11 +55,11 @@ float la10c_value(float k) else if(k < 0) return -1; - la10c_mode_change(k < 10? LA10C_LA15: LA10C_LA10); + la10c_mode_change(k < LA_LA10_MIN? LA10C_LA15: LA10C_LA10); } if(la10c_mode == LA10C_LA15) - return (k >= 0 && k < 10? k: -1); + return (k >= 0 && k < LA_K_MAX? k: -1); else return (k >= 0? la10c_convert(k): -1); } diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 0d77900eb..fcebfa58f 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -126,7 +126,7 @@ float extrude_min_temp=EXTRUDE_MINTEMP; #endif #ifdef LIN_ADVANCE -float extruder_advance_K = LIN_ADVANCE_K; +float extruder_advance_K = LA_K_DEF; float position_float[NUM_AXIS]; #endif From b9ce57255904e70d16e167c6e5a156ae0398806f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Apr 2020 17:35:28 +0200 Subject: [PATCH 278/361] Reset LA10/15 state also when stopping a print Based on f22fb2770bb278f71ad162b1abd8108633424f6c by @leptun --- Firmware/ultralcd.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index eeda00d1e..275145d7f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -51,6 +51,10 @@ #include "adc.h" #include "config.h" +#ifndef LA_NOCOMPAT +#include "la10compat.h" +#endif + int scrollstuff = 0; char longFilenameOLD[LONG_FILENAME_LENGTH]; @@ -7336,6 +7340,9 @@ void lcd_print_stop() #ifdef MESH_BED_LEVELING mbl.active = false; //also prevents undoing the mbl compensation a second time in the second planner_abort_hard() #endif +#ifndef LA_NOCOMPAT + la10c_reset(); +#endif lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); stoptime = _millis(); From 5082f2a36efd338b1e1afc4766e1db161c2e841b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 29 Apr 2020 22:51:23 +0200 Subject: [PATCH 279/361] Move reset LA state from G80 to M84 Move la10c_reset into finishAndDisableStepper, which is called in both via lcd_print_stop() and indirectly via M84, saving some space. M84 is checked-for to determine a complete file, so it's a superior candidate to G80 (which some people avoid due to MBL issues). --- Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 23 ++++++++++++++++++----- Firmware/stepper.cpp | 11 ----------- Firmware/stepper.h | 2 -- Firmware/ultralcd.cpp | 3 --- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 363407e2e..52444337a 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -238,8 +238,8 @@ void get_coordinates(); void prepare_move(); void kill(const char *full_screen_message = NULL, unsigned char id = 0); void Stop(); - bool IsStopped(); +void finishAndDisableSteppers(); //put an ASCII command at the end of the current buffer. void enquecommand(const char *cmd, bool from_progmem = false); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ea597c195..488639b95 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4864,11 +4864,6 @@ 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 @@ -9698,6 +9693,24 @@ void Stop() bool IsStopped() { return Stopped; }; +void finishAndDisableSteppers() +{ + st_synchronize(); + disable_x(); + disable_y(); + disable_z(); + disable_e0(); + disable_e1(); + disable_e2(); + +#ifndef LA_NOCOMPAT + // Steppers are disabled both when a print is stopped and also via M84 (which is additionally + // checked-for to indicate a complete file), so abuse this function to reset the LA detection + // state for the next print. + la10c_reset(); +#endif +} + #ifdef FAST_PWM_FAN void setPwmFrequency(uint8_t pin, int val) { diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 1b4c3b9af..de250ec97 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -1356,17 +1356,6 @@ float st_get_position_mm(uint8_t axis) } -void finishAndDisableSteppers() -{ - st_synchronize(); - disable_x(); - disable_y(); - disable_z(); - disable_e0(); - disable_e1(); - disable_e2(); -} - void quickStop() { DISABLE_STEPPER_DRIVER_INTERRUPT(); diff --git a/Firmware/stepper.h b/Firmware/stepper.h index 7fdf426f3..84773913c 100644 --- a/Firmware/stepper.h +++ b/Firmware/stepper.h @@ -69,8 +69,6 @@ void invert_z_endstop(bool endstop_invert); void checkStepperErrors(); //Print errors detected by the stepper -void finishAndDisableSteppers(); - extern block_t *current_block; // A pointer to the block currently being traced extern bool x_min_endstop; extern bool x_max_endstop; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 275145d7f..d8f3b16f4 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7340,9 +7340,6 @@ void lcd_print_stop() #ifdef MESH_BED_LEVELING mbl.active = false; //also prevents undoing the mbl compensation a second time in the second planner_abort_hard() #endif -#ifndef LA_NOCOMPAT - la10c_reset(); -#endif lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); stoptime = _millis(); From 2f4f4547c6be924d011bb70620b5da971515525d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 29 Apr 2020 22:56:06 +0200 Subject: [PATCH 280/361] Also reset LA10C when disabling LA with K0 As pointed out by @leptun, with MMUs the combination of old/new filament profiles in the same print is a likely scenario as we transition towards LA1.5. Reset the detection state also with K0. --- 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 488639b95..ae775129e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2072,9 +2072,10 @@ inline void gcode_M900() { SERIAL_ECHOLNPGM("K out of allowed range!"); #else if (newK == 0) + { extruder_advance_K = 0; - else if (newK == -1) la10c_reset(); + } else { newK = la10c_value(newK); From ad4e9482a008ce83ad4d001fe5b9b8105fbfbbc2 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 3 May 2020 14:19:38 +0200 Subject: [PATCH 281/361] Accecpt all RCx as RC versions Thanks to @deliopoulos --- PF-build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 4244dc16e..15bc43357 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_14 +# Version: 1.0.6-Build_15 # 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 @@ -119,6 +119,7 @@ # 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 # 28 Apr 2020, 3d-gussner, Added RC3 detection +# 03 May 2020, deliopoulos, Accept all RCx as RC versions #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -528,7 +529,7 @@ do # Check development status DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) if [ -z "$DEV_STATUS_SELECTED" ] ; then - if [[ "$DEV_CHECK" == "RC1" || "$DEV_CHECK" == "RC2" || "$DEV_CHECK" == "RC3" ]] ; then + if [[ "$DEV_CHECK" == *"RC"* ]] ; then DEV_STATUS="RC" elif [[ "$DEV_CHECK" == "ALPHA" ]]; then DEV_STATUS="ALPHA" From 943ea988f903677ce4a5319a4caf34a73f5cf62a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 6 May 2020 10:54:16 +0200 Subject: [PATCH 282/361] Adding copy of `not_tran.txt` and `not_used.txt` to make it easier to find not translated and unused messages. This will hopfully improve the translation process. --- PF-build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index 15bc43357..c318c4640 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_15 +# Version: 1.0.6-Build_16 # 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 @@ -120,6 +120,8 @@ # 17 Dec 2019, 3d-gussner, Fix "timer0_fract = 0" warning by using Arduino_boards v1.0.3 # 28 Apr 2020, 3d-gussner, Added RC3 detection # 03 May 2020, deliopoulos, Accept all RCx as RC versions +# 05 May 2020, 3d-gussner, Make a copy of `not_tran.txt`and `not_used.txt` as `not_tran_$VARIANT.txt`and `not_used_$VARIANT.txt` +# After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -684,6 +686,8 @@ do ./lang-build.sh || exit 32 # Combine compiled firmware with languages ./fw-build.sh || exit 33 + cp not_tran.txt not_tran_$VARIANT.txt + cp not_used.txt not_used_$VARIANT.txt echo "$(tput sgr 0)" # Check if the motherboard is an EINSY and if so only one hex file will generated MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) From 61e1cc60f490bab46926ecb9b4be61a0766bc612 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 6 May 2020 17:12:16 +0200 Subject: [PATCH 283/361] Correct product names --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c48ac164c..fb1c79689 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Prusa Firmware MK3 -This repository contains the source code and the development versions of the firmware running on the [Prusa](https://prusa3d.com/) MK3S/MK3/MK2.5S/MK2.5 line of printers. +This repository contains the source code and the development versions of the firmware running on the [Original Prusa i3](https://prusa3d.com/) MK3S/MK3/MK2.5S/MK2.5 line of printers. The latest official builds can be downloaded from [Prusa Drivers](https://www.prusa3d.com/drivers/). Pre-built development releases are also [available here](https://github.com/prusa3d/Prusa-Firmware/releases). -The MK3 firmware is proudly based on [Marlin 1.0.x](https://github.com/MarlinFirmware/Marlin/) by Scott Lahteine (@thinkyhead) et al. and is distributed under the terms of the [GNU GPL 3 license](LICENSE). +The firmware for the Original Prusa i3 printers is proudly based on [Marlin 1.0.x](https://github.com/MarlinFirmware/Marlin/) by Scott Lahteine (@thinkyhead) et al. and is distributed under the terms of the [GNU GPL 3 license](LICENSE). # Table of contents From 127a1790bcb274e5468a5696422df3ec88776f2f Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 12 May 2020 20:15:02 +0200 Subject: [PATCH 284/361] Set unknown IR sensor after factory reset as 0.3 or older --- Firmware/ultralcd.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2cdf9e311..6dbc1d5ec 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7572,12 +7572,10 @@ bool lcd_selftest() int _progress = 0; bool _result = true; bool _swapped_fan = false; -//#ifdef IR_SENSOR_ANALOG -#if (0) - bool bAction; - bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); - if(!bAction) - return(false); +#ifdef IR_SENSOR_ANALOG + //! Check if IR sensor is in unknown state, set it temporarily to 0.3 or older + //! @todo This has to be improved + if( oFsensorPCB == ClFsensorPCB::_Undef) eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,0); #endif //IR_SENSOR_ANALOG lcd_wait_for_cool_down(); lcd_clear(); From deff8dcfdedc2d94b4f41a6a0bc04a3a3b0b271a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 12 May 2020 22:23:40 +0200 Subject: [PATCH 285/361] MK3 3 9 0 missing translations (#2646) * Add and update missing translations - updated in Firmware/ files the missing `c=xx` column and `r=yy` rows. - added missing translations to lang/lang_en*.txt Everyone is developing and adding messages to serial and especially to LCD PLEASE add `//// c=xx` or `//// c=xx r=yy` comments. Preparing translations files without that information is a pain in the ... and takes way more time for somebody else to review to code as it would take you. * No need to have `MSG_abcde` again in comments `////` in `messages.c` * German translation * Missed a space * Use the same format as somewhere else * French translation. I am not a native French speaking person, so please excuse my mistakes I may have done. * Spanish translation. I am not a native Spanish speaking person, so please excuse my mistakes I may have done. * CZ translation * Fix typos * Another fix It is Dimmwert and not Dim Wert * Fix issues reported by `lang-check.py` * Add "difficult" messages containing `%` * Updated MSG and German translation * removed a translation as it breaks the language selection * No need to wait until any-key is pressed * No need to wait any-key is pressed * Fixed two LF issues * Updated PO files ready to be send to translators * Add missing italian translations * Improve some existing italian translations * More italian fixes * More italian fixes * Add exceptions in editorconfig for po files to avoid recoding * Fix typo Thanks @DRracer for pointing out * Italian translation by @wavexx * Update po/new/*.po files * Update after merging MK3 branch * Update French translation and some c=xx comments Big thanks to @awenelo @carlin57 for helping with the french translations and their comments. * Update po files after French translation * Fixed most `lang-check.py` reported translation errors for Czech and German. Two Czech have to be reviewed as these are too long. One German is correct as it is shown in c=20 r=2 but is 1 char longer than this to split the message. One German translation seams to be to long but have to review the actual max length * Fix `lang-check.py` Spanish translation errors There have been quite lot TOO long messages, Can't imagine that nobody every complained about that. * Fix `lang-check.py` Italian translations errors * Update not_tran and not_used files after fixing several translations * Some more error fixes and update of `po` files * Polish translation * Czech updated * Fix typo * no need to translate `\x00` if it is the same * Polish: Runouts->Koniec * Polish: Runouts->Konce f ... hopefully the last change * Added MK2.5/s auto power mode to eeprom doxygen * Final updates. - Compiled all versions with multi-languages - Compiled all versions with EN_ONLY - updated all /lang/po/Firmware*.* files * Add crlf attributes for po files As done for editorconfig, this similarly forces git to handle po files consistently in DOS format. * Further improvent of IT translations * Updated translation Added cleanup to PF-build.sh * remove lang/not_tran* and lang/not_used mistakenly added into the PR Co-authored-by: DRracer Co-authored-by: Yuri D'Elia Co-authored-by: D.R.racer --- .editorconfig | 4 + .gitattributes | 1 + Firmware/Marlin_main.cpp | 10 +- Firmware/cardreader.cpp | 2 +- Firmware/eeprom.h | 1 + Firmware/messages.c | 44 +- Firmware/mmu.cpp | 4 +- Firmware/ultralcd.cpp | 66 +- PF-build.sh | 7 +- lang/lang-add.sh | 2 +- lang/lang-check.sh | 2 +- lang/lang_en.txt | 156 +- lang/lang_en_cz.txt | 195 +- lang/lang_en_de.txt | 191 +- lang/lang_en_es.txt | 219 ++- lang/lang_en_fr.txt | 224 ++- lang/lang_en_it.txt | 276 ++- lang/lang_en_pl.txt | 204 ++- lang/po/Firmware.pot | 1202 +++++++------ lang/po/Firmware_cs.po | 3654 ++++++++++++++++++------------------- lang/po/Firmware_de.po | 3659 ++++++++++++++++++------------------- lang/po/Firmware_es.po | 3654 ++++++++++++++++++------------------- lang/po/Firmware_fr.po | 3659 ++++++++++++++++++------------------- lang/po/Firmware_it.po | 3679 +++++++++++++++++++------------------- lang/po/Firmware_pl.po | 3654 ++++++++++++++++++------------------- lang/po/new/cs.po | 1268 ++++++------- lang/po/new/de.po | 1279 ++++++------- lang/po/new/es.po | 1306 +++++++------- lang/po/new/fr.po | 1303 +++++++------- lang/po/new/it.po | 1345 +++++++------- lang/po/new/pl.po | 1286 ++++++------- 31 files changed, 16877 insertions(+), 15679 deletions(-) create mode 100644 .gitattributes diff --git a/.editorconfig b/.editorconfig index 8acdfc7e9..0b8d80e28 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,3 +12,7 @@ indent_style = space indent_size = 4 tab_width = 4 max_line_length = 100 + +[lang/po/*.po] +end_of_line = crlf +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..29fc24623 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +lang/po/*.po text eol=crlf diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 244b28e50..a0ef55910 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -869,14 +869,14 @@ static void check_if_fw_is_on_right_printer(){ swi2c_init(); const uint8_t pat9125_detected = swi2c_readByte_A8(PAT9125_I2C_ADDR,0x00,NULL); if (pat9125_detected){ - lcd_show_fullscreen_message_and_wait_P(_i("MK3S firmware detected on MK3 printer"));} + lcd_show_fullscreen_message_and_wait_P(_i("MK3S firmware detected on MK3 printer"));}////c=20 r=3 #endif //IR_SENSOR #ifdef PAT9125 //will return 1 only if IR can detect filament in bondtech extruder so this may fail even when we have IR sensor const uint8_t ir_detected = !(PIN_GET(IR_SENSOR_PIN)); if (ir_detected){ - lcd_show_fullscreen_message_and_wait_P(_i("MK3 firmware detected on MK3S printer"));} + lcd_show_fullscreen_message_and_wait_P(_i("MK3 firmware detected on MK3S printer"));}////c=20 r=3 #endif //PAT9125 } #endif //FILAMENT_SENSOR @@ -1515,7 +1515,7 @@ void setup() } if (!previous_settings_retrieved) { - lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 + lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 Config_StoreSettings(); } if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) { @@ -9509,7 +9509,7 @@ static uint16_t nFSCheckCount=0; oFsensorPCB=ClFsensorPCB::_Rev04; eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); printf_IRSensorAnalogBoardChange(true); - lcd_setstatuspgm(_i("FS v0.4 or newer")); + lcd_setstatuspgm(_i("FS v0.4 or newer"));////c=18 } } else { nFSCheckCount=0; @@ -10880,7 +10880,7 @@ void recover_print(uint8_t automatic) { char cmd[30]; lcd_update_enable(true); lcd_update(2); - lcd_setstatuspgm(_i("Recovering print "));////MSG_RECOVERING_PRINT c=20 r=1 + lcd_setstatuspgm(_i("Recovering print "));////MSG_RECOVERING_PRINT c=20 // Recover position, temperatures and extrude_multipliers bool mbl_was_active = recover_machine_state_after_power_panic(); diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index 1c2cbf3c5..fb25ff6cf 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -735,7 +735,7 @@ void CardReader::presort() { // Never sort more than the max allowed // If you use folders to organize, 20 may be enough if (fileCnt > SDSORT_LIMIT) { - lcd_show_fullscreen_message_and_wait_P(_i("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."));////MSG_FILE_CNT c=20 r=4 + lcd_show_fullscreen_message_and_wait_P(_i("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."));////MSG_FILE_CNT c=20 r=6 fileCnt = SDSORT_LIMIT; } lcd_clear(); diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 3e97cac2a..61e078fc0 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -81,6 +81,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | :-- | :-- | :-- | :--: | :--: | :-- | :--: | :--: | 0x0FFFh 4095 | uchar | EEPROM_SILENT | 00h 0 | ffh 255 | TMC Stealth mode: __off__ / miniRambo Power mode | LCD menu | D3 Ax0fff C1 | ^ | ^ | ^ | 01h 1 | ^ | TMC Stealth mode: __on__ / miniRambo Silent mode | ^ | ^ +| ^ | ^ | ^ | 02h 2 | ^ | miniRambo Auto mode | ^ | ^ | 0x0FFEh 4094 | uchar | EEPROM_LANG | 00h 0 | ffh 255 __L__ | English / LANG_ID_PRI | LCD menu | D3 Ax0ffe C1 | ^ | ^ | ^ | 01h 1 | ^ | Other language LANG_ID_SEC | ^ | ^ | 0x0FFCh 4092 | uint16 | EEPROM_BABYSTEP_X | ??? | ff ffh 65535 | Babystep for X axis _unsued_ | ??? | D3 Ax0ffc C2 diff --git a/Firmware/messages.c b/Firmware/messages.c index c18b7a912..9c31c1266 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -14,14 +14,14 @@ const char MSG_BABYSTEP_Z_NOT_SET[] PROGMEM_I1 = ISTR("Distance between tip of t const char MSG_BED[] PROGMEM_I1 = ISTR("Bed"); //// const char MSG_BED_DONE[] PROGMEM_I1 = ISTR("Bed done"); //// const char MSG_BED_HEATING[] PROGMEM_I1 = ISTR("Bed Heating"); //// -const char MSG_BED_LEVELING_FAILED_POINT_LOW[] PROGMEM_I1 = ISTR("Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."); ////c=20 r=4 +const char MSG_BED_LEVELING_FAILED_POINT_LOW[] PROGMEM_I1 = ISTR("Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."); ////c=20 r=5 const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED[] PROGMEM_I1 = ISTR("XYZ calibration failed. Please consult the manual."); ////c=20 r=8 const char MSG_CALIBRATE_Z_AUTO[] PROGMEM_I1 = ISTR("Calibrating Z"); ////c=20 r=2 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[] PROGMEM_I1 = ISTR("Crash det."); //// +const char MSG_CRASHDETECT[] PROGMEM_I1 = ISTR("Crash det."); ////c=13 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 @@ -34,10 +34,10 @@ const char MSG_FILAMENT_LOADING_T3[] PROGMEM_I1 = ISTR("Insert filament into ext const char MSG_FILAMENTCHANGE[] PROGMEM_I1 = ISTR("Change filament"); //// const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1[] PROGMEM_I1 = ISTR("Searching bed calibration point"); ////c=60 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2[] PROGMEM_I1 = ISTR(" of 4"); ////c=14 -const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 r=1 +const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 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_FSENSOR_AUTOLOAD[] PROGMEM_I1 = ISTR("F. autoload"); ////c=17 r=1 +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=9 +const char MSG_FSENSOR_AUTOLOAD[] PROGMEM_I1 = ISTR("F. autoload"); ////c=13 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 @@ -48,7 +48,7 @@ const char MSG_LOAD_FILAMENT[] PROGMEM_I1 = ISTR("Load filament"); //// Number 1 const char MSG_LOADING_FILAMENT[] PROGMEM_I1 = ISTR("Loading filament"); ////c=20 const char MSG_EJECT_FILAMENT[] PROGMEM_I1 = ISTR("Eject filament"); //// Number 1 to 5 is added behind text e.g. "Eject filament 1" c=16 const char MSG_CUT_FILAMENT[] PROGMEM_I1 = ISTR("Cut filament"); //// Number 1 to 5 is added behind text e.g. "Cut filament 1" c=16 -const char MSG_M117_V2_CALIBRATION[] PROGMEM_I1 = ISTR("M117 First layer cal."); ////c=25 r=1 +const char MSG_M117_V2_CALIBRATION[] PROGMEM_I1 = ISTR("M117 First layer cal."); ////c=25 const char MSG_MAIN[] PROGMEM_I1 = ISTR("Main"); //// const char MSG_BACK[] PROGMEM_I1 = ISTR("Back"); //// const char MSG_SHEET[] PROGMEM_I1 = ISTR("Sheet"); ////c=10 @@ -57,7 +57,7 @@ const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2[] PROGMEM_I1 = ISTR(" of 9"); const char MSG_MENU_CALIBRATION[] PROGMEM_I1 = ISTR("Calibration"); //// const char MSG_NO[] PROGMEM_I1 = ISTR("No"); //// const char MSG_NOZZLE[] PROGMEM_I1 = ISTR("Nozzle"); //// -const char MSG_PAPER[] PROGMEM_I1 = ISTR("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."); ////c=20 r=8 +const char MSG_PAPER[] PROGMEM_I1 = ISTR("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."); ////c=20 r=10 const char MSG_PLACE_STEEL_SHEET[] PROGMEM_I1 = ISTR("Please place steel sheet on heatbed."); ////c=20 r=4 const char MSG_PLEASE_WAIT[] PROGMEM_I1 = ISTR("Please wait"); ////c=20 const char MSG_PREHEAT_NOZZLE[] PROGMEM_I1 = ISTR("Preheat the nozzle!"); ////c=20 @@ -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=12 r=1 +const char MSG_TEMP_CALIBRATION[] PROGMEM_I1 = ISTR("Temp. cal."); ////c=14 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 @@ -100,13 +100,13 @@ const char MSG_WIZARD_DONE[] PROGMEM_I1 = ISTR("All is done. Happy printing!"); const char MSG_WIZARD_HEATING[] PROGMEM_I1 = ISTR("Preheating nozzle. Please wait."); ////c=20 r=3 const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard from Calibration -> Wizard."); ////c=20 r=8 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 MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=18 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"); //// +const char MSG_CUTTER[] PROGMEM_I1 = ISTR("Cutter"); ////c=9 const char MSG_NONE[] PROGMEM_I1 = ISTR("None"); //// const char MSG_WARN[] PROGMEM_I1 = ISTR("Warn"); //// const char MSG_STRICT[] PROGMEM_I1 = ISTR("Strict"); //// @@ -128,20 +128,20 @@ 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"); //// -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"); //// +const char MSG_FS_ACTION[] PROGMEM_I1 = ISTR("FS Action"); ////c=10 +const char MSG_FS_CONTINUE[] PROGMEM_I1 = ISTR("Cont."); ////c=5 +const char MSG_FS_PAUSE[] PROGMEM_I1 = ISTR("Pause"); ////c=5 +const char MSG_BRIGHTNESS[] PROGMEM_I1 = ISTR("Brightness"); ////c=18 +const char MSG_BL_HIGH[] PROGMEM_I1 = ISTR("Level Bright"); ////c=12 +const char MSG_BL_LOW[] PROGMEM_I1 = ISTR("Level Dimmed"); ////c=12 +const char MSG_TIMEOUT[] PROGMEM_I1 = ISTR("Timeout"); ////c=12 +const char MSG_BRIGHT[] PROGMEM_I1 = ISTR("Bright"); ////c=6 +const char MSG_DIM[] PROGMEM_I1 = ISTR("Dim"); ////c=6 +const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); ////c=6 #ifdef IR_SENSOR_ANALOG // Beware - the space at the beginning is necessary since it is reused in LCD menu items which are to be with a space -const char MSG_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer"); -const char MSG_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older"); +const char MSG_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer");////c=18 +const char MSG_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older");////c=18 #endif //not internationalized messages diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 08b775c45..ebf8c0131 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -830,7 +830,7 @@ void mmu_M600_wait_and_beep() { KEEPALIVE_STATE(PAUSED_FOR_USER); int counterBeep = 0; - lcd_display_message_fullscreen_P(_i("Remove old filament and press the knob to start loading new filament.")); + lcd_display_message_fullscreen_P(_i("Remove old filament and press the knob to start loading new filament.")); ////MSG_REMOVE_OLD_FILAMENT c=20 r=5 bool bFirst=true; while (!lcd_clicked()){ @@ -1385,7 +1385,7 @@ void mmu_cut_filament(uint8_t filament_nr) { LcdUpdateDisabler disableLcdUpdate; lcd_clear(); - lcd_set_cursor(0, 1); lcd_puts_P(_i("Cutting filament")); //// c=18 r=1 + lcd_set_cursor(0, 1); lcd_puts_P(_i("Cutting filament")); //// c=18 lcd_print(" "); lcd_print(filament_nr + 1); mmu_filament_ramming(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 6dbc1d5ec..9537d9df6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1819,7 +1819,7 @@ static void lcd_menu_fails_stats_print() " %-7.7S X %-3d Y %-3d"), _i("Last print failures"), ////c=20 r=1 _i("Power failures"), power, ////c=14 r=1 - _i("Runouts"), filam, fsensor_softfail, //c=7 r=1 + _i("Runouts"), filam, fsensor_softfail, //c=7 _i("Crash"), crashX, crashY); ////c=7 r=1 #endif menu_back_if_clicked_fb(); @@ -1956,7 +1956,7 @@ static void lcd_menu_temperatures() lcd_menu_temperatures_line( _i("Ambient"), (int)current_temperature_ambient ); ////c=14 r=1 #endif //AMBIENT_THERMISTOR #ifdef PINDA_THERMISTOR - lcd_menu_temperatures_line( _i("PINDA"), (int)current_temperature_pinda ); ////c=14 r=1 + lcd_menu_temperatures_line( _i("PINDA"), (int)current_temperature_pinda ); ////c=14 #endif //PINDA_THERMISTOR menu_back_if_clicked(); } @@ -1996,7 +1996,7 @@ static void lcd_menu_voltages() //! //! @code{.unparsed} //! |01234567890123456789| -//! | Belt status | c=18 r=1 +//! | Belt status | c=18 //! | X: 000 | //! | Y: 000 | //! | | @@ -2076,7 +2076,7 @@ static void lcd_preheat_menu() //! //! @code{.unparsed} //! | -------------- | STR_SEPARATOR -//! | XYZ cal. details | MSG_XYZ_DETAILS +//! | XYZ cal. details | MSG_XYZ_DETAILS c=18 //! | Extruder info | MSG_INFO_EXTRUDER //! | XYZ cal. details | MSG_INFO_SENSORS //! @endcode @@ -2207,12 +2207,12 @@ static void lcd_support_menu() #ifndef MK1BP MENU_ITEM_BACK_P(STR_SEPARATOR); - MENU_ITEM_SUBMENU_P(_i("XYZ cal. details"), lcd_menu_xyz_y_min);////MSG_XYZ_DETAILS c=19 r=1 - MENU_ITEM_SUBMENU_P(_i("Extruder info"), lcd_menu_extruder_info);////MSG_INFO_EXTRUDER c=18 r=1 + MENU_ITEM_SUBMENU_P(_i("XYZ cal. details"), lcd_menu_xyz_y_min);////MSG_XYZ_DETAILS c=18 + MENU_ITEM_SUBMENU_P(_i("Extruder info"), lcd_menu_extruder_info);////MSG_INFO_EXTRUDER c=18 MENU_ITEM_SUBMENU_P(_i("Sensor info"), lcd_menu_show_sensors_state);////MSG_INFO_SENSORS c=18 r=1 #ifdef TMC2130 - MENU_ITEM_SUBMENU_P(_i("Belt status"), lcd_menu_belt_status);////MSG_MENU_BELT_STATUS c=18 r=1 + MENU_ITEM_SUBMENU_P(_i("Belt status"), lcd_menu_belt_status);////MSG_MENU_BELT_STATUS c=18 #endif //TMC2130 MENU_ITEM_SUBMENU_P(_i("Temperatures"), lcd_menu_temperatures);////MSG_MENU_TEMPERATURES c=18 r=1 @@ -2439,17 +2439,17 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) case FilamentAction::Load: case FilamentAction::AutoLoad: case FilamentAction::MmuLoad: - lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 + lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 break; case FilamentAction::UnLoad: case FilamentAction::MmuUnLoad: - lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 + lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 break; case FilamentAction::MmuEject: - lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 + lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 break; case FilamentAction::MmuCut: - lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 + lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 break; case FilamentAction::None: case FilamentAction::Preheat: @@ -2606,7 +2606,7 @@ void lcd_wait_interact() { #endif if (!fsensor_autoload_enabled) { lcd_set_cursor(0, 2); - lcd_puts_P(_i("and press the knob"));////MSG_PRESS c=20 + lcd_puts_P(_i("and press the knob"));////MSG_PRESS c=20 r=2 } } @@ -2830,7 +2830,7 @@ static void lcd_LoadFilament() //! //! @code{.unparsed} //! |01234567890123456789| -//! |Filament used: | c=19 r=1 +//! |Filament used: | c=19 //! | 0000.00m | //! |Print time: | c=19 r=1 //! | 00h 00m 00s | @@ -2866,7 +2866,7 @@ void lcd_menu_statistics() "%S:\n" "%10ldh %02hhdm %02hhds" ), - _i("Filament used"), _met, ////c=19 r=1 + _i("Filament used"), _met, ////c=19 _i("Print time"), _h, _m, _s); ////c=19 r=1 menu_back_if_clicked_fb(); } @@ -5187,11 +5187,11 @@ void lcd_settings_linearity_correction_menu(void) #ifdef TMC2130_LINEARITY_CORRECTION_XYZ //tmc2130_wave_fac[X_AXIS] - MENU_ITEM_EDIT_int3_P(_i("X-correct:"), &tmc2130_wave_fac[X_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=10 - MENU_ITEM_EDIT_int3_P(_i("Y-correct:"), &tmc2130_wave_fac[Y_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=10 - MENU_ITEM_EDIT_int3_P(_i("Z-correct:"), &tmc2130_wave_fac[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=10 + MENU_ITEM_EDIT_int3_P(_i("X-correct:"), &tmc2130_wave_fac[X_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_X_CORRECTION c=13 + MENU_ITEM_EDIT_int3_P(_i("Y-correct:"), &tmc2130_wave_fac[Y_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_Y_CORRECTION c=13 + MENU_ITEM_EDIT_int3_P(_i("Z-correct:"), &tmc2130_wave_fac[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_Z_CORRECTION c=13 #endif //TMC2130_LINEARITY_CORRECTION_XYZ - MENU_ITEM_EDIT_int3_P(_i("E-correct:"), &tmc2130_wave_fac[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=10 + MENU_ITEM_EDIT_int3_P(_i("E-correct:"), &tmc2130_wave_fac[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=13 MENU_END(); } #endif // TMC2130 @@ -5719,7 +5719,7 @@ void lcd_hw_setup_menu(void) // can not be "static" MENU_BEGIN(); MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch - MENU_ITEM_SUBMENU_P(_i("Steel sheets"), sheets_menu); + MENU_ITEM_SUBMENU_P(_i("Steel sheets"), sheets_menu); ////MSG_STEEL_SHEETS c=18 SETTINGS_NOZZLE; MENU_ITEM_SUBMENU_P(_i("Checks"), lcd_checking_menu); @@ -5834,13 +5834,13 @@ static void lcd_calibration_menu() MENU_ITEM_FUNCTION_P(_i("Wizard"), lcd_wizard);////MSG_WIZARD c=17 r=1 if (lcd_commands_type == LcdCommands::Idle) { - MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_first_layer_calibration_reset); + MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_first_layer_calibration_reset);////MSG_V2_CALIBRATION c=18 } 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 + MENU_ITEM_FUNCTION_P(_i("Belt test "), lcd_belttest_v);////MSG_BELTTEST c=17 #endif //TMC2130 - MENU_ITEM_FUNCTION_P(_i("Selftest "), lcd_selftest_v);////MSG_SELFTEST + MENU_ITEM_FUNCTION_P(_i("Selftest "), lcd_selftest_v);////MSG_SELFTEST c=17 #ifdef MK1BP // MK1 // "Calibrate Z" @@ -5861,7 +5861,7 @@ static void lcd_calibration_menu() MENU_ITEM_SUBMENU_P(_i("Bed level correct"), lcd_adjust_bed);////MSG_BED_CORRECTION_MENU MENU_ITEM_SUBMENU_P(_i("PID calibration"), pid_extruder);////MSG_PID_EXTRUDER c=17 r=1 #ifndef TMC2130 - MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=17 r=1 + MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=18 #endif #ifndef MK1BP MENU_ITEM_GCODE_P(_i("Reset XYZ calibr."), PSTR("M44"));////MSG_CALIBRATE_BED_RESET @@ -6713,7 +6713,7 @@ void lcd_resume_print() lcd_setstatuspgm(_T(MSG_FINISHING_MOVEMENTS)); st_synchronize(); - lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); + lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); ////MSG_RESUMING_PRINT c=20 isPrintPaused = false; restore_print_from_ram_and_continue(default_retraction); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation @@ -6801,7 +6801,7 @@ static void activate_calibrate_sheet() static void lcd_sheet_menu() { MENU_BEGIN(); - MENU_ITEM_BACK_P(_i("Steel sheets")); + MENU_ITEM_BACK_P(_i("Steel sheets")); ////MSG_STEEL_SHEETS c=18 if(eeprom_is_sheet_initialized(selected_sheet)){ MENU_ITEM_SUBMENU_P(_i("Select"), change_sheet); //// c=18 @@ -6809,7 +6809,7 @@ static void lcd_sheet_menu() if (lcd_commands_type == LcdCommands::Idle) { - MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), activate_calibrate_sheet); + MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), activate_calibrate_sheet);////MSG_V2_CALIBRATION c=18 } MENU_ITEM_SUBMENU_P(_i("Rename"), lcd_rename_sheet_menu); //// c=18 MENU_ITEM_FUNCTION_P(_i("Reset"), lcd_reset_sheet); //// c=18 @@ -6958,7 +6958,7 @@ static void lcd_main_menu() #endif #ifdef FILAMENT_SENSOR if ((fsensor_autoload_enabled == true) && (fsensor_enabled == true) && (mmu_enabled == false)) - MENU_ITEM_SUBMENU_P(_i("AutoLoad filament"), lcd_menu_AutoLoadFilament);////MSG_AUTOLOAD_FILAMENT c=17 + MENU_ITEM_SUBMENU_P(_i("AutoLoad filament"), lcd_menu_AutoLoadFilament);////MSG_AUTOLOAD_FILAMENT c=18 else #endif //FILAMENT_SENSOR { @@ -7524,7 +7524,7 @@ static bool lcd_selftest_IRsensor(bool bStandalone) lcd_selftest_error(TestError::FsensorLevel,"HIGH",""); return(false); } - lcd_show_fullscreen_message_and_wait_P(_i("Insert the filament (do not load it) into the extruder and then press the knob.")); + lcd_show_fullscreen_message_and_wait_P(_i("Insert the filament (do not load it) into the extruder and then press the knob."));////c=20 r=6 volt_IR_int = current_voltage_raw_IR; printf_P(PSTR("Measured filament sensor low level: %4.2fV\n"), Raw2Voltage(volt_IR_int)); if(volt_IR_int > (IRsensor_Lmax_TRESHOLD)){ @@ -7546,16 +7546,16 @@ static void lcd_detect_IRsensor(){ bMenuFSDetect = true; // inhibits some code inside "manage_inactivity()" bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament loaded?"), false, false); if(bAction){ - lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action.")); + lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action."));////c=20 r=4 return; } bAction = lcd_selftest_IRsensor(true); if(bAction){ - lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now.")); + lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now."));////c=20 r=3 // the fsensor board has been successfully identified, any previous "not responding" may be cleared now fsensor_not_responding = false; } else { - lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again.")); + lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again."));////c=20 r=5 // here it is unclear what to to with the fsensor_not_responding flag } bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" @@ -8290,7 +8290,7 @@ static void lcd_selftest_error(TestError testError, const char *_error_1, const break; case TestError::Endstop: lcd_set_cursor(0, 2); - lcd_puts_P(_i("Endstop not hit"));////MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 + lcd_puts_P(_i("Endstop not hit"));////MSG_SELFTEST_ENDSTOP_NOTHIT c=20 lcd_set_cursor(0, 3); lcd_puts_P(_T(MSG_SELFTEST_MOTOR)); lcd_set_cursor(18, 3); @@ -8811,7 +8811,7 @@ static void menu_action_sdfile(const char* filename) } if (!check_file(filename)) { - result = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("File incomplete. Continue anyway?"), false, false);////MSG_FILE_INCOMPLETE c=20 r=2 + result = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("File incomplete. Continue anyway?"), false, false);////MSG_FILE_INCOMPLETE c=20 r=3 lcd_update_enable(true); } if (result) { diff --git a/PF-build.sh b/PF-build.sh index c318c4640..545e463cf 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_16 +# Version: 1.0.6-Build_17 # 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 @@ -121,7 +121,8 @@ # 28 Apr 2020, 3d-gussner, Added RC3 detection # 03 May 2020, deliopoulos, Accept all RCx as RC versions # 05 May 2020, 3d-gussner, Make a copy of `not_tran.txt`and `not_used.txt` as `not_tran_$VARIANT.txt`and `not_used_$VARIANT.txt` -# After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. +# After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. +# 12 May 2020, DRracer , Cleanup double MK2/s MK25/s `not_tran` and `not_used` files #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -722,6 +723,8 @@ do # Cleanup Firmware rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 + rm $SCRIPT_PATH/lang/*RAMBo10a*.txt + rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h echo $MULTI_LANGUAGE_CHECK diff --git a/lang/lang-add.sh b/lang/lang-add.sh index 0b63a4622..f1bf56802 100755 --- a/lang/lang-add.sh +++ b/lang/lang-add.sh @@ -69,5 +69,5 @@ cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do fi done -read x +read -t 5 exit 0 \ No newline at end of file diff --git a/lang/lang-check.sh b/lang/lang-check.sh index c363cdc00..dd0a6e21b 100755 --- a/lang/lang-check.sh +++ b/lang/lang-check.sh @@ -71,5 +71,5 @@ else echo 'binary data NG!' fi -read +read -t 5 exit diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 73c1e9c27..a209acfd6 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -1,6 +1,12 @@ # "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" @@ -31,7 +37,10 @@ # "Ambient" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" + +#MSG_PRESS c=20 r=2 "and press the knob" #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 @@ -43,7 +52,7 @@ #MSG_AUTO_HOME "Auto home" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" #MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 @@ -70,13 +79,22 @@ #MSG_BED_CORRECTION_MENU "Bed level correct" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." +#MSG_BRIGHT c=6 +"Bright" + +#MSG_BRIGHTNESS c=18 +"Brightness" + #MSG_BED "Bed" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" #MSG_RECOVER_PRINT c=20 r=2 @@ -124,8 +142,9 @@ # "Copy selected language?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." + # "Choose a filament for the First Layer Calibration and select it in the on-screen menu." @@ -150,10 +169,13 @@ #MSG_BABYSTEP_Z_NOT_SET c=20 r=12 "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." +#MSG_FS_CONTINUE c=5 +"Cont." + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" #MSG_EJECT_FILAMENT c=17 r=1 @@ -162,7 +184,7 @@ #MSG_EJECTING_FILAMENT c=20 r=1 "Ejecting filament" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" #MSG_SELFTEST_ENDSTOP @@ -174,16 +196,28 @@ #MSG_STACK_ERROR c=20 r=4 "Error - static memory has been overwritten" +#MSG_CUT_FILAMENT c=16 +"Cut filament" + +#MSG_CUTTER c=9 +"Cutter" + +# c=18 +"Cutting filament" + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." +#MSG_DIM c=6 +"Dim" + #MSG_ERROR "ERROR:" #MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 "Extruder fan:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" #MSG_MOVE_E @@ -192,7 +226,7 @@ # "Fail stats MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" # @@ -210,7 +244,7 @@ #MSG_FSENSOR "Fil. sensor" -# +# c=14 "Filam. runouts" #MSG_FILAMENT_CLEAN c=20 r=2 @@ -222,19 +256,25 @@ #MSG_FILAMENT_SENSOR c=20 "Filament sensor" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" #MSG_PRINT_TIME c=19 r=1 "Print time" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" + +# c=18 +"FS v0.4 or newer" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." #MSG_WIZARD_SELFTEST c=20 r=8 @@ -357,6 +397,9 @@ #MSG_BABYSTEP_Z "Live adjust Z" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." + #MSG_LOAD_FILAMENT c=17 "Load filament" @@ -372,12 +415,18 @@ # "Load to nozzle" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." #MSG_MAIN "Main" +#MSG_BL_HIGH c=12 +"Level Bright" + +#MSG_BL_LOW c=12 +"Level Dimmed" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" @@ -408,6 +457,9 @@ #MSG_MODE "Mode" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" + #MSG_NORMAL "Normal" @@ -477,7 +529,7 @@ #MSG_NOZZLE "Nozzle" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." # @@ -501,7 +553,7 @@ #MSG_PINDA_PREHEAT c=20 r=1 "PINDA Heating" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." #MSG_WIZARD_CLEAN_HEATBED c=20 r=8 @@ -555,22 +607,28 @@ #MSG_WIZARD_HEATING c=20 r=3 "Preheating nozzle. Please wait." +# c=14 +"PINDA" + # "Please upgrade." #MSG_PRESS_TO_PREHEAT c=20 r=4 "Press knob to preheat nozzle and continue." +#MSG_FS_PAUSE c=5 +"Pause" + # "Power failures" #MSG_PRINT_ABORTED c=20 "Print aborted" -# +# c=20 "Preheating to load" -# +# c=20 "Preheating to unload" #MSG_SELFTEST_PRINT_FAN_SPEED c=18 @@ -609,13 +667,16 @@ #MSG_BED_CORRECTION_REAR c=14 r=1 "Rear side [um]" -#MSG_RECOVERING_PRINT c=20 r=1 +# c=20 r=4 +"Please unload the filament first, then repeat this action." + +#MSG_RECOVERING_PRINT c=20 "Recovering print " -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." -# +# c=20 "Prusa i3 MK3S OK." #MSG_CALIBRATE_BED_RESET @@ -627,7 +688,7 @@ #MSG_RESUME_PRINT "Resume print" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" #MSG_BED_CORRECTION_RIGHT c=14 r=1 @@ -678,16 +739,25 @@ #MSG_SET_TEMPERATURE c=19 r=1 "Set temperature:" +# c=20 +"Prusa i3 MK2.5 OK." + +# c=20 +"Prusa i3 MK2.5S OK." + +# c=20 +"Prusa i3 MK3 OK." + #MSG_SETTINGS "Settings" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" # "Sensor state" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." #MSG_SORT @@ -717,6 +787,9 @@ #MSG_SOUND "Sound" +# c=7 +"Runouts" + # "Some problem encountered, Z-leveling enforced ..." @@ -750,7 +823,7 @@ # "Select filament:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." # @@ -765,13 +838,16 @@ #MSG_TEMP_CALIBRATION_DONE c=20 r=12 "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." +# c=20 r=3 +"Sensor verified, remove the filament now." + #MSG_TEMPERATURE "Temperature" #MSG_MENU_TEMPERATURES c=15 r=1 "Temperatures" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." # @@ -843,7 +919,7 @@ #MSG_WIZARD c=17 r=1 "Wizard" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" #MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 @@ -861,7 +937,10 @@ #MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" -# +#MSG_TIMEOUT c=12 +"Timeout" + +#MSG_X_CORRECTION c=13 "X-correct:" #MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 @@ -891,7 +970,10 @@ # "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)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." + +#MSG_Y_CORRECTION c=13 "Y-correct:" #MSG_OFF @@ -972,10 +1054,10 @@ # "PINDA:" -# +# c=20 "Preheating to cut" -# +# c=20 "Preheating to eject" # @@ -984,6 +1066,9 @@ # "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +# c=20 +"%s level expected" + # "Rename" @@ -993,17 +1078,18 @@ # "Sensor info" -# +#MSG_SHEET c=10 "Sheet" #MSG_SOUND_BLIND "Assist" -# +# c=18 "Steel sheets" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" #MSG_Z_PROBE_NR "Z-probe nr." + diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 230055b12..4914bc800 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 nebo starsi" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 nebo novejsi" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " z 4" @@ -42,7 +50,11 @@ "Ambient" "Okoli" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" +"\x00" + +#MSG_PRESS c=20 r=2 "and press the knob" "a stisknete tlacitko" @@ -58,7 +70,7 @@ "Auto home" "\x00" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" "AutoZavedeni fil." @@ -94,15 +106,27 @@ "Bed level correct" "Korekce podlozky" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Test remenu " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset." +#MSG_BRIGHT c=6 +"Bright" +"Jasny" + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Podsviceni" + #MSG_BED "Bed" "Podlozka" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" "Stav remenu" @@ -166,13 +190,13 @@ "Copy selected language?" "Kopirovat vybrany jazyk?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." "\x00" # -"Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu" "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +"Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu" #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." @@ -202,11 +226,15 @@ "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." "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." +#MSG_FS_CONTINUE c=5 +"Cont." +"Pokr." + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "Korekce E:" @@ -218,7 +246,7 @@ "Ejecting filament" "Vysouvam filament" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" "Kon. spinac nesepnut" @@ -234,9 +262,25 @@ "Error - static memory has been overwritten" "Chyba - Doslo k prepisu staticke pameti!" +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Ustrihnout" + +#MSG_CUTTER c=9 +"Cutter" +"Strihani" + +# c=18 +"Cutting filament" +"Strihani filamentu" + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." -"CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." +"CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni." + +#MSG_DIM c=6 +"Dim" +"Temny" #MSG_ERROR "ERROR:" @@ -246,7 +290,7 @@ "Extruder fan:" "Levy vent.:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" "\x00" @@ -258,7 +302,7 @@ "Fail stats MMU" "Selhani MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" "F. autozav." @@ -282,7 +326,7 @@ "Fil. sensor" "Fil. senzor" -# +# c=14 "Filam. runouts" "Vypadky filam." @@ -298,23 +342,31 @@ "Filament sensor" "Senzor filamentu" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" -"Spotrebovano filamentu" +"Spotrebovano filam." #MSG_PRINT_TIME c=19 r=1 "Print time" "Cas tisku" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"FS reakce" + +# c=18 +"FS v0.4 or newer" +"FS v0.4 a novejsi" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "Soubor nekompletni. Pokracovat?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" "Dokoncovani pohybu" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Kal. prvni vrstvy" @@ -478,6 +530,10 @@ "Live adjust Z" "Doladeni osy Z" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko" + #MSG_LOAD_FILAMENT c=17 "Load filament" "Zavest filament" @@ -498,7 +554,7 @@ "Load to nozzle" "Zavest do trysky" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." "M117 Kal. prvni vrstvy" @@ -506,6 +562,14 @@ "Main" "Hlavni nabidka" +#MSG_BL_HIGH c=12 +"Level Bright" +"\x00" + +#MSG_BL_LOW c=12 +"Level Dimmed" +"\x00" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" "Merim referencni vysku kalibracniho bodu" @@ -546,6 +610,10 @@ "Mode" "Mod" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"\x00" + #MSG_NORMAL "Normal" "\x00" @@ -638,7 +706,7 @@ "Nozzle" "Tryska" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." @@ -670,7 +738,7 @@ "PINDA Heating" "Nahrivani PINDA" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu." @@ -742,6 +810,10 @@ "Preheating nozzle. Please wait." "Predehrev trysky. Prosim cekejte." +# c=14 +"PINDA" +"\x00" + # "Please upgrade." "Prosim aktualizujte." @@ -750,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Pro nahrati trysky a pokracovani stisknete tlacitko." +#MSG_FS_PAUSE c=5 +"Pause" +"\x00" + # "Power failures" "Vypadky proudu" @@ -758,11 +834,11 @@ "Print aborted" "Tisk prerusen" -# +# c=20 "Preheating to load" "Predehrev k zavedeni" -# +# c=20 "Preheating to unload" "Predehrev k vyjmuti" @@ -814,15 +890,19 @@ "Rear side [um]" "Vzadu [um]" -#MSG_RECOVERING_PRINT c=20 r=1 -"Recovering print " -"Obnovovani tisku " +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"Prosim vyjmete filament a zopakujte tuto akci" -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_RECOVERING_PRINT c=20 +"Recovering print " +"Obnovovani tisku " + +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." -# +# c=20 "Prusa i3 MK3S OK." "\x00" @@ -838,7 +918,7 @@ "Resume print" "Pokracovat" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" "Obnoveni tisku" @@ -906,11 +986,23 @@ "Set temperature:" "Nastavte teplotu:" +# c=20 +"Prusa i3 MK2.5 OK." +"\x00" + +# c=20 +"Prusa i3 MK2.5S OK." +"\x00" + +# c=20 +"Prusa i3 MK3 OK." +"\x00" + #MSG_SETTINGS "Settings" "Nastaveni" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Stav konc. spin." @@ -918,7 +1010,7 @@ "Sensor state" "Stav senzoru" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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." @@ -958,6 +1050,10 @@ "Sound" "Zvuk" +# c=7 +"Runouts" +"\x00" + # "Some problem encountered, Z-leveling enforced ..." "Vyskytl se problem, srovnavam osu Z ..." @@ -1002,7 +1098,7 @@ "Select filament:" "Zvolte filament:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." "Tepl. kal." @@ -1022,6 +1118,10 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Senzor overen, vyjmete filament." + #MSG_TEMPERATURE "Temperature" "Teplota" @@ -1030,7 +1130,7 @@ "Temperatures" "Teploty" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." @@ -1126,7 +1226,7 @@ "Wizard" "Pruvodce" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" "Detaily XYZ kal." @@ -1150,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!" -# +#MSG_TIMEOUT c=12 +"Timeout" +"\x00" + +#MSG_X_CORRECTION c=13 "X-correct:" "Korekce X:" @@ -1190,7 +1294,11 @@ "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)." "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"Overeni selhalo, vyjmete filament a zkuste znovu." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Korekce Y:" @@ -1298,11 +1406,11 @@ "PINDA:" "\x00" -# +# c=20 "Preheating to cut" -"Predehrev k ustrizeni" +"Predehrev ke strihu" -# +# c=20 "Preheating to eject" "Predehrev k vysunuti" @@ -1314,6 +1422,10 @@ "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." +# c=20 +"%s level expected" +"\x00" + # "Rename" "Prejmenovat" @@ -1326,7 +1438,7 @@ "Sensor info" "Senzor info" -# +#MSG_SHEET c=10 "Sheet" "Plat" @@ -1334,14 +1446,15 @@ "Assist" "Asist." -# +# c=18 "Steel sheets" "Tiskove platy" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Korekce Z:" #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 11c36b407..67789291d 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 oder aelter" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 oder neuer" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " von 4" @@ -42,7 +50,11 @@ "Ambient" "Raumtemp." -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" +"\x00" + +#MSG_PRESS c=20 r=2 "and press the knob" "und Knopf druecken" @@ -58,7 +70,7 @@ "Auto home" "Startposition" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" "AutoLaden Filament" @@ -94,15 +106,27 @@ "Bed level correct" "Ausgleich Bett ok" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Riementest " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset." +#MSG_BRIGHT c=6 +"Bright" +"Hell" + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Helligkeit" + #MSG_BED "Bed" "Bett" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" "Gurtstatus" @@ -166,7 +190,7 @@ "Copy selected language?" "Gewaehlte Sprache kopieren?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." "Crash Erk." @@ -202,11 +226,15 @@ "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." "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_FS_CONTINUE c=5 +"Cont." +"\x00" + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "E-Korrektur:" @@ -218,7 +246,7 @@ "Ejecting filament" "werfe Filament aus" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" "Ende nicht getroffen" @@ -234,10 +262,26 @@ "Error - static memory has been overwritten" "Fehler - statischer Speicher wurde ueberschrieben" +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Fil. schneiden" + +#MSG_CUTTER c=9 +"Cutter" +"Messer" + +# c=18 +"Cutting filament" +"Schneide filament" + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." +#MSG_DIM c=6 +"Dim" +"Dimm" + #MSG_ERROR "ERROR:" "FEHLER:" @@ -246,7 +290,7 @@ "Extruder fan:" "Extruder Luefter:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" "Extruder Info" @@ -258,7 +302,7 @@ "Fail stats MMU" "MMU-Fehler" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" "F. autoladen" @@ -282,7 +326,7 @@ "Fil. sensor" "\x00" -# +# c=14 "Filam. runouts" "Filam. Maengel" @@ -298,7 +342,7 @@ "Filament sensor" "Filamentsensor" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" "Filament benutzt" @@ -306,15 +350,23 @@ "Print time" "Druckzeit" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"FS Aktion" + +# c=18 +"FS v0.4 or newer" +"FS v0.4 oder neuer" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "Datei unvollstaendig Trotzdem fortfahren?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" "Bewegung beenden" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Erste-Schicht Kal." @@ -478,6 +530,10 @@ "Live adjust Z" "Z einstellen" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf." + #MSG_LOAD_FILAMENT c=17 "Load filament" "Filament laden" @@ -498,7 +554,7 @@ "Load to nozzle" "In Druckduese laden" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." "M117 Erste-Schicht Kal." @@ -506,6 +562,14 @@ "Main" "Hauptmenue" +#MSG_BL_HIGH c=12 +"Level Bright" +"Hell.wert" + +#MSG_BL_LOW c=12 +"Level Dimmed" +"Dimmwert" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" "Messen der Referenzhoehe des Kalibrierpunktes" @@ -546,6 +610,10 @@ "Mode" "Modus" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"MK3-Firmware am MK3S-Drucker erkannt" + #MSG_NORMAL "Normal" "\x00" @@ -568,7 +636,7 @@ #MSG_AUTO_POWER "Auto power" -"\x00" +"Auto Leist" #MSG_HIGH_POWER "High power" @@ -638,7 +706,7 @@ "Nozzle" "Duese" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt." @@ -670,7 +738,7 @@ "PINDA Heating" "PINDA erwaermen" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "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." @@ -742,6 +810,10 @@ "Preheating nozzle. Please wait." "Vorheizen der Duese. Bitte warten." +# c=14 +"PINDA" +"\x00" + # "Please upgrade." "Bitte aktualisieren." @@ -750,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." +#MSG_FS_PAUSE c=5 +"Pause" +"\x00" + # "Power failures" "Netzfehler" @@ -758,11 +834,11 @@ "Print aborted" "Druck abgebrochen" -# +# c=20 "Preheating to load" "Heizen zum Laden" -# +# c=20 "Preheating to unload" "Heizen zum Entladen" @@ -814,15 +890,19 @@ "Rear side [um]" "Hinten [um]" -#MSG_RECOVERING_PRINT c=20 r=1 -"Recovering print " -"Druck wiederherst " +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"Bitte entladen Sie erst das Filament und versuchen Sie es nochmal." -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_RECOVERING_PRINT c=20 +"Recovering print " +"Druck wiederherst " + +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden." -# +# c=20 "Prusa i3 MK3S OK." "\x00" @@ -838,7 +918,7 @@ "Resume print" "Druck fortsetzen" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" "Druck fortgesetzt" @@ -906,11 +986,23 @@ "Set temperature:" "Temp. einstellen:" +# c=20 +"Prusa i3 MK2.5 OK." +"\x00" + +# c=20 +"Prusa i3 MK2.5S OK." +"\x00" + +# c=20 +"Prusa i3 MK3 OK." +"\x00" + #MSG_SETTINGS "Settings" "Einstellungen" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Endschalter Status" @@ -918,7 +1010,7 @@ "Sensor state" "Sensorstatus" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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." @@ -958,6 +1050,10 @@ "Sound" "\x00" +# c=7 +"Runouts" +"\x00" + # "Some problem encountered, Z-leveling enforced ..." "Fehler aufgetreten, Z-Kalibrierung erforderlich..." @@ -1002,7 +1098,7 @@ "Select filament:" "Filament auswaehlen:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." "Temp Kalib." @@ -1022,6 +1118,10 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Sensor ueberprueft, entladen Sie jetzt das Filament." + #MSG_TEMPERATURE "Temperature" "Temperatur" @@ -1030,9 +1130,9 @@ "Temperatures" "Temperaturen" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -"Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." +"Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." # "Total filament" @@ -1126,7 +1226,7 @@ "Wizard" "Assistent" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" "XYZ Kal. Details" @@ -1150,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg." -# +#MSG_TIMEOUT c=12 +"Timeout" +"Auszeit" + +#MSG_X_CORRECTION c=13 "X-correct:" "X-Korrektur:" @@ -1190,7 +1294,11 @@ "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)." "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)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Y-Korrektur:" @@ -1298,11 +1406,11 @@ "PINDA:" "\x00" -# +# c=20 "Preheating to cut" "Heizen zum Schnitt" -# +# c=20 "Preheating to eject" "Heizen zum Auswurf" @@ -1314,6 +1422,10 @@ "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." +# c=20 +"%s level expected" +"\x00" + # "Rename" "Umbenennen" @@ -1326,7 +1438,7 @@ "Sensor info" "Sensor Info" -# +#MSG_SHEET c=10 "Sheet" "Blech" @@ -1334,14 +1446,15 @@ "Assist" "\x00" -# +# c=18 "Steel sheets" "Stahlbleche" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Z-Korrektur:" #MSG_Z_PROBE_NR "Z-probe nr." "\x00" + diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 8255bd792..8404c5b3e 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 o mayor" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 o mas nueva" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " de 4" @@ -42,7 +50,11 @@ "Ambient" "Ambiente" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" +"\x00" + +#MSG_PRESS c=20 r=2 "and press the knob" "Haz clic" @@ -58,9 +70,9 @@ "Auto home" "Llevar al origen" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" -"Carga automatica de filamento" +"Carga auto. filam." #MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 "Autoloading filament available only when filament sensor is turned on..." @@ -94,17 +106,29 @@ "Bed level correct" "Corr. de la cama" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Test cinturon " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." "Nivelacion fallada. Sensor no funciona. Restos en boquilla? Esperando reset." +#MSG_BRIGHT c=6 +"Bright" +"Brill." + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Brillo" + #MSG_BED "Bed" "Base" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" -"Estado de la correa" +"Estado de correa" #MSG_RECOVER_PRINT c=20 r=2 "Blackout occurred. Recover print?" @@ -166,7 +190,7 @@ "Copy selected language?" "Copiar idioma seleccionado?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." "Det. choque" @@ -202,23 +226,27 @@ "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." "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_FS_CONTINUE c=5 +"Cont." +"\x00" + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "Corregir-E:" #MSG_EJECT_FILAMENT c=17 r=1 "Eject filament" -"Expulsar filamento" +"Expulsar fil." #MSG_EJECTING_FILAMENT c=20 r=1 "Ejecting filament" "Expulsando filamento" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" "Endstop no alcanzado" @@ -234,10 +262,26 @@ "Error - static memory has been overwritten" "Error - se ha sobre-escrito la memoria estatica" +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Cortar filament" + +#MSG_CUTTER c=9 +"Cutter" +"Cuchillo" + +# c=18 +"Cutting filament" +"Corte de filament" + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." +#MSG_DIM c=6 +"Dim" +"\x00" + #MSG_ERROR "ERROR:" "\x00" @@ -246,9 +290,9 @@ "Extruder fan:" "Vent.extrusor:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" -"Informacion del extrusor" +"Info. del extrusor" #MSG_MOVE_E "Extruder" @@ -258,7 +302,7 @@ "Fail stats MMU" "Estadistica de fallos MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" "Autocarg.fil." @@ -268,7 +312,7 @@ #MSG_FAN_SPEED c=14 "Fan speed" -"Velocidad Vent." +"Velocidad Vent" #MSG_SELFTEST_FAN c=20 "Fan test" @@ -282,7 +326,7 @@ "Fil. sensor" "Sensor Fil." -# +# c=14 "Filam. runouts" "Filam. acabado" @@ -298,7 +342,7 @@ "Filament sensor" "Sensor de filamento" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" "Filamento usado" @@ -306,15 +350,23 @@ "Print time" "Tiempo de imp.:" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"FS accion" + +# c=18 +"FS v0.4 or newer" +"FS v0.4 o +nueva" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "Archivo incompleto. ?Continuar de todos modos?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" "Term. movimientos" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Cal. primera cap." @@ -356,7 +408,7 @@ #MSG_HEATING_COMPLETE c=20 "Heating done." -"Calentamiento acabado." +"Calentando acabado." #MSG_HEATING "Heating" @@ -396,7 +448,7 @@ #MSG_SELFTEST_CHECK_FSENSOR c=20 "Checking sensors " -"Comprobando los sensores" +"Comprobando sensores" #MSG_SELFTEST_CHECK_X c=20 "Checking X axis " @@ -444,7 +496,7 @@ #MSG_STEEL_SHEET_CHECK c=20 r=2 "Is steel sheet on heatbed?" -"?Esta colocada la lamina de acero sobre la base?" +"?Esta colocada la lamina sobre la base" # "Last print failures" @@ -478,6 +530,10 @@ "Live adjust Z" "Micropaso Eje Z" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial." + #MSG_LOAD_FILAMENT c=17 "Load filament" "Introducir filam." @@ -498,7 +554,7 @@ "Load to nozzle" "Cargar a la boquilla" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." "M117 Cal. primera cap." @@ -506,6 +562,14 @@ "Main" "Menu principal" +#MSG_BL_HIGH c=12 +"Level Bright" +"Valor brill." + +#MSG_BL_LOW c=12 +"Level Dimmed" +"\x00" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" "Midiendo altura del punto de calibracion" @@ -546,6 +610,10 @@ "Mode" "Modo" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"Firmware MK3 detectado en impresora MK3S" + #MSG_NORMAL "Normal" "\x00" @@ -638,7 +706,7 @@ "Nozzle" "Boquilla" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc" @@ -670,7 +738,7 @@ "PINDA Heating" "Calentando PINDA" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "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." @@ -732,7 +800,7 @@ #MSG_PREHEAT_NOZZLE c=20 "Preheat the nozzle!" -"Precalienta extrusor!" +"Precalienta extrusor" #MSG_PREHEAT "Preheat" @@ -742,6 +810,10 @@ "Preheating nozzle. Please wait." "Precalentando nozzle. Espera por favor." +# c=14 +"PINDA" +"\x00" + # "Please upgrade." "Actualize por favor" @@ -750,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Pulsa el dial para precalentar la boquilla y continue." +#MSG_FS_PAUSE c=5 +"Pause" +"Pausa" + # "Power failures" "Cortes de energia" @@ -758,13 +834,13 @@ "Print aborted" "Impresion cancelada" -# +# c=20 "Preheating to load" -"Precalentar para cargar" +"Precalent. cargar" -# +# c=20 "Preheating to unload" -"Precalentar para descargar" +"Precalent. descargar" #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" @@ -814,15 +890,19 @@ "Rear side [um]" "Trasera [um]" -#MSG_RECOVERING_PRINT c=20 r=1 -"Recovering print " -"Recuperando impresion" +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"Primero descargue el filamento, luego repita esta accion." -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_RECOVERING_PRINT c=20 +"Recovering print " +"Recuper. impresion " + +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento." -# +# c=20 "Prusa i3 MK3S OK." "\x00" @@ -838,9 +918,9 @@ "Resume print" "Reanudar impres." -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" -"Continuando impresion" +"Continuan. impresion" #MSG_BED_CORRECTION_RIGHT c=14 r=1 "Right side[um]" @@ -884,7 +964,7 @@ #MSG_SELFTEST "Selftest " -"Selftest" +"\x00" #MSG_SELFTEST_ERROR "Selftest error !" @@ -906,11 +986,23 @@ "Set temperature:" "Establecer temp.:" +# c=20 +"Prusa i3 MK2.5 OK." +"\x00" + +# c=20 +"Prusa i3 MK2.5S OK." +"\x00" + +# c=20 +"Prusa i3 MK3 OK." +"\x00" + #MSG_SETTINGS "Settings" "Configuracion" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Mostrar endstops" @@ -918,7 +1010,7 @@ "Sensor state" "Estado del sensor" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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. " @@ -958,6 +1050,10 @@ "Sound" "Sonido" +# c=7 +"Runouts" +"\x00" + # "Some problem encountered, Z-leveling enforced ..." "Problema encontrado, nivelacion Z forzosa ..." @@ -1002,7 +1098,7 @@ "Select filament:" "Selecciona filamento:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." "Cal. temp." @@ -1022,6 +1118,10 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "Calibracion temperatura terminada. Haz clic para continuar." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Sensor verificado, retire el filamento ahora." + #MSG_TEMPERATURE "Temperature" "Temperatura" @@ -1030,7 +1130,7 @@ "Temperatures" "Temperaturas" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." @@ -1126,9 +1226,9 @@ "Wizard" "\x00" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" -"Detalles de calibracion XYZ" +"Detalles cal. XYZ" #MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 "XYZ calibration failed. Please consult the manual." @@ -1150,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!" -# +#MSG_TIMEOUT c=12 +"Timeout" +"Expirar" + +#MSG_X_CORRECTION c=13 "X-correct:" "Corregir-X:" @@ -1190,7 +1294,11 @@ "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)." "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)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"La verificacion fallo, retire el filamento e intente nuevamente." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Corregir-Y:" @@ -1298,13 +1406,13 @@ "PINDA:" "PINDA:" -# +# c=20 "Preheating to cut" -"Precalentando para laminar" +"Precalent. laminar" -# +# c=20 "Preheating to eject" -"Precalentar para expulsar" +"Precalent. expulsar" # "Printer nozzle diameter differs from the G-code. Continue?" @@ -1314,6 +1422,10 @@ "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." +# c=20 +"%s level expected" +"\x00" + # "Rename" "Renombrar" @@ -1326,7 +1438,7 @@ "Sensor info" "Info sensor" -# +#MSG_SHEET c=10 "Sheet" "Lamina" @@ -1334,14 +1446,15 @@ "Assist" "Asistido" -# +# c=18 "Steel sheets" "Lamina de acero" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Corregir-Z:" #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 51ddf1596..bbd82522f 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 ou +ancien" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 ou +recent" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " de 4" @@ -42,9 +50,13 @@ "Ambient" "Ambiant" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" +"\x00" + +#MSG_PRESS c=20 r=2 "and press the knob" -"et pressez le bouton" +"et appuyez sur le bouton" #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 "Are left and right Z~carriages all up?" @@ -58,7 +70,7 @@ "Auto home" "Mise a 0 des axes" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" "Autocharge du fil." @@ -94,15 +106,27 @@ "Bed level correct" "Corr. niveau plateau" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Test de courroie " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." -"Echec bed leveling. Capt. non declenche. Debris sur buse? En attente d'un reset." +"Capt. non declenche pendant que je nivele le plateau. Debris sur buse? En attente d'un reset." + +#MSG_BRIGHT c=6 +"Bright" +"Brill." + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Luminosite" #MSG_BED "Bed" "Lit" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" "Statut courroie" @@ -164,9 +188,9 @@ # "Copy selected language?" -"Copier la langue selectionne?" +"Copier la langue choisie?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." "Detect.crash" @@ -202,11 +226,15 @@ "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." "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_FS_CONTINUE c=5 +"Cont." +"\x00" + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" -"Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le plateau chauffant?" +"Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "Correct-E:" @@ -218,7 +246,7 @@ "Ejecting filament" "Le fil. remonte" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" "Butee non atteinte" @@ -234,10 +262,26 @@ "Error - static memory has been overwritten" "Erreur - la memoire statique a ete ecrasee" +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Coupe filament" + +#MSG_CUTTER c=9 +"Cutter" +"Coupeur" + +# c=18 +"Cutting filament" +"Je coupe filament" + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement." +#MSG_DIM c=6 +"Dim" +"\x00" + #MSG_ERROR "ERROR:" "ERREUR:" @@ -246,7 +290,7 @@ "Extruder fan:" "Ventilo extrudeur:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" "Infos extrudeur" @@ -258,9 +302,10 @@ "Fail stats MMU" "Stat. d'echec MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" -"Autochargeur" +"F. autocharg." + # "Fail stats" "Stat. d'echec" @@ -280,9 +325,10 @@ #MSG_FSENSOR "Fil. sensor" "Capteur Fil." -# + +# c=14 "Filam. runouts" -"Fins de filament" +"Fins filament" #MSG_FILAMENT_CLEAN c=20 r=2 "Filament extruding & with correct color?" @@ -296,7 +342,7 @@ "Filament sensor" "Capteur de filament" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" "Filament utilise" @@ -304,15 +350,23 @@ "Print time" "Temps d'impression" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"\x00" + +# c=18 +"FS v0.4 or newer" +"FS v0.4 ou +recent" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "Fichier incomplet. Continuer qd meme?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" "Mouvement final" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Cal. 1ere couche" @@ -382,7 +436,7 @@ #MSG_SELFTEST_CHECK_BED c=20 "Checking bed " -"Verification du lit" +"Verif. plateau chauf" #MSG_SELFTEST_CHECK_ENDSTOPS c=20 "Checking endstops" @@ -442,7 +496,7 @@ #MSG_STEEL_SHEET_CHECK c=20 r=2 "Is steel sheet on heatbed?" -"Plaque d'impression sur le lit chauffant?" +"Est la plaque sur le plat. chauffant?" # "Last print failures" @@ -450,7 +504,7 @@ # "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." -"Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Feuilles d'acier." +"Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier." # "Last print" @@ -458,7 +512,7 @@ #MSG_SELFTEST_EXTRUDER_FAN c=20 "Left hotend fan?" -"Ventilo tete gauche?" +"Ventilo gauche?" # "Left" @@ -476,6 +530,10 @@ "Live adjust Z" "Ajuster Z en dir." +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton." + #MSG_LOAD_FILAMENT c=17 "Load filament" "Charger filament" @@ -496,7 +554,7 @@ "Load to nozzle" "Charger la buse" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." "M117 Cal. 1ere couche" @@ -504,9 +562,17 @@ "Main" "Menu principal" +#MSG_BL_HIGH c=12 +"Level Bright" +"Niveau brill" + +#MSG_BL_LOW c=12 +"Level Dimmed" +"\x00" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" -"Mesure de la hauteur de reference du point de calibration" +"Je mesure la hauteur de reference du point de calibrage" #MSG_MESH_BED_LEVELING "Mesh Bed Leveling" @@ -544,6 +610,10 @@ "Mode" "\x00" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"Firmware MK3 detecte sur imprimante MK3S" + #MSG_NORMAL "Normal" "\x00" @@ -636,7 +706,7 @@ "Nozzle" "Buse" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles" @@ -668,13 +738,13 @@ "PINDA Heating" "Chauffe de la PINDA" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "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 "Please clean heatbed and then press the knob." -"Nettoyez la plaque en acier et appuyez sur le bouton." +"Nettoyez plateau chauffant en acier et appuyez sur le bouton." #MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 "Please clean the nozzle for calibration. Click when done." @@ -740,6 +810,10 @@ "Preheating nozzle. Please wait." "Prechauffage de la buse. Merci de patienter." +# c=14 +"PINDA" +"\x00" + # "Please upgrade." "Mettez a jour le FW." @@ -748,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Appuyez sur le bouton pour prechauffer la buse et continuer." +#MSG_FS_PAUSE c=5 +"Pause" +"\x00" + # "Power failures" "Coup.de courant" @@ -756,11 +834,11 @@ "Print aborted" "Impression annulee" -# c=20 r=1 +# c=20 "Preheating to load" "Chauffe pour charger" -# c=20 r=1 +# c=20 "Preheating to unload" "Chauf.pour decharger" @@ -812,15 +890,19 @@ "Rear side [um]" "Arriere [um]" -#MSG_RECOVERING_PRINT c=20 r=1 -"Recovering print " -"Recup. impression" +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"SVP, dechargez le filament et reessayez." -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_RECOVERING_PRINT c=20 +"Recovering print " +"Recup. impression " + +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau." -# +# c=20 "Prusa i3 MK3S OK." "\x00" @@ -836,7 +918,7 @@ "Resume print" "Reprendre impression" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" "Reprise de l'impr." @@ -866,7 +948,7 @@ #MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 "Searching bed calibration point" -"Recherche du point de calibration du lit" +"Recherche du point de calibration du plateau chauffant" #MSG_LANGUAGE_SELECT "Select language" @@ -904,11 +986,23 @@ "Set temperature:" "Regler temp.:" +# c=20 +"Prusa i3 MK2.5 OK." +"\x00" + +# c=20 +"Prusa i3 MK2.5S OK." +"\x00" + +# c=20 +"Prusa i3 MK3 OK." +"\x00" + #MSG_SETTINGS "Settings" "Reglages" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Afficher butees" @@ -916,7 +1010,7 @@ "Sensor state" "Etat capteur" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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." @@ -956,6 +1050,10 @@ "Sound" "Son" +# c=7 +"Runouts" +"\x00" + # "Some problem encountered, Z-leveling enforced ..." "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..." @@ -963,6 +1061,7 @@ #MSG_SOUND_ONCE "Once" "Une fois" + #MSG_SPEED "Speed" "Vitesse" @@ -999,7 +1098,7 @@ "Select filament:" "Selectionnez le filament:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." "Calib. Temp." @@ -1019,6 +1118,10 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Capteur verifie, retirez le filament maintenant." + #MSG_TEMPERATURE "Temperature" "\x00" @@ -1027,7 +1130,7 @@ "Temperatures" "\x00" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." @@ -1069,7 +1172,7 @@ # "Total" -"\x00" +"Totale" #MSG_USED c=19 r=1 "Used during print" @@ -1089,7 +1192,7 @@ #MSG_WAITING_TEMP c=20 r=3 "Waiting for nozzle and bed cooling" -"Attente du refroidissement des buse et plateau" +"Attente du refroidissement des buse et plateau chauffant" #MSG_WAITING_TEMP_PINDA c=20 r=3 "Waiting for PINDA probe cooling" @@ -1123,7 +1226,7 @@ "Wizard" "Assistant" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" "Details calib. XYZ" @@ -1147,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!" -# +#MSG_TIMEOUT c=12 +"Timeout" +"\x00" + +#MSG_X_CORRECTION c=13 "X-correct:" "Correct-X:" @@ -1187,7 +1294,11 @@ "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)." "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)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"Verification en echec, retirez le filament et reessayez." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Correct-Y:" @@ -1269,11 +1380,11 @@ # "G-code sliced for a different level. Continue?" -"\x00" +"Le G-code a ete prepare pour un niveau different. Continuer?" # "G-code sliced for a different level. Please re-slice the model again. Print cancelled." -"\x00" +"Le G-code a ete prepare pour un niveau different. Veuillez decouper le modele a nouveau. L'impression a ete annulee." # "G-code sliced for a different printer type. Continue?" @@ -1295,11 +1406,11 @@ "PINDA:" "PINDA:" -# c=20 r=1 +# c=20 "Preheating to cut" "Chauffe pour couper" -# c=20 r=1 +# c=20 "Preheating to eject" "Chauf. pour remonter" @@ -1311,6 +1422,10 @@ "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." +# c=20 +"%s level expected" +"\x00" + # "Rename" "Renommer" @@ -1323,7 +1438,7 @@ "Sensor info" "Info capteur" -# +#MSG_SHEET c=10 "Sheet" "Plaque" @@ -1331,14 +1446,15 @@ "Assist" "\x00" -# +# c=18 "Steel sheets" "Plaques en acier" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Correct-Z:" #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 672859a09..8d7f4571e 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cContinua%cReset" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 o inferiore" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 o superiore" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " su 4" @@ -42,7 +50,11 @@ "Ambient" "Ambiente" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" + + +#MSG_PRESS c=20 r=2 "and press the knob" "e cliccare manopola" @@ -52,13 +64,13 @@ #MSG_AUTO_DEPLETE c=17 r=1 "SpoolJoin" -"\x00" +"" #MSG_AUTO_HOME "Auto home" "Trova origine" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" "Autocaric. filam." @@ -80,7 +92,7 @@ #MSG_SELFTEST_BEDHEATER "Bed / Heater" -"Letto/Riscald." +"Piano/Riscald." #MSG_BED_DONE "Bed done" @@ -88,27 +100,39 @@ #MSG_BED_HEATING "Bed Heating" -"Riscald. letto" +"Riscald. piano" #MSG_BED_CORRECTION_MENU "Bed level correct" -"Correz. liv.letto" +"Correz. liv.piano" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Test cinghie " + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." -"Livellamento letto fallito.NoRispSensore.Residui su ugello? In attesa di reset." +"Livellamento piano fallito. Sensore KO? Residui su ugello? In attesa di reset." + +#MSG_BRIGHT c=6 +"Bright" +"Chiaro" + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Luminosita'" #MSG_BED "Bed" -"Letto" +"Piano" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" "Stato cinghie" #MSG_RECOVER_PRINT c=20 r=2 "Blackout occurred. Recover print?" -"C'e stato un Blackout. Recuperare la stampa?" +"Blackout rilevato. Recuperare la stampa?" # "Calibrating home" @@ -166,7 +190,7 @@ "Copy selected language?" "Copiare la lingua selezionata?" -#MSG_CRASHDETECT +#MSG_CRASHDETECT c=13 "Crash det." "Rileva.crash" @@ -200,27 +224,31 @@ #MSG_BABYSTEP_Z_NOT_SET c=20 r=12 "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." -"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." +"Distanza tra la punta dell'ugello e la superficie del piano non ancora impostata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo strato." + +#MSG_FS_CONTINUE c=5 +"Cont." + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "Correzione-E:" #MSG_EJECT_FILAMENT c=17 r=1 "Eject filament" -"Espelli filamento " +"Espelli filamento" #MSG_EJECTING_FILAMENT c=20 r=1 "Ejecting filament" -"Espellendo filamento " +"Espellendo filamento" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" -"Finecorsa fuori portata" +"Finec. fuori portata" #MSG_SELFTEST_ENDSTOP "Endstop" @@ -232,12 +260,28 @@ #MSG_STACK_ERROR c=20 r=4 "Error - static memory has been overwritten" -"Errore - la memoria statica e stata sovrascritta" +"Errore - la memoria statica e' stata sovrascritta" + +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Taglia filamento" + +#MSG_CUTTER c=9 +"Cutter" +"Tagliatr." + +# c=18 +"Cutting filament" +"Tagliando filam." #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." "ERRORE: il sensore filam. non risponde,Controllare conness." +#MSG_DIM c=6 +"Dim" +"Scuro" + #MSG_ERROR "ERROR:" "ERRORE:" @@ -246,7 +290,7 @@ "Extruder fan:" "Ventola estr:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" "Info estrusore" @@ -258,7 +302,7 @@ "Fail stats MMU" "Stat.fall. MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" "Autocar.fil." @@ -281,13 +325,14 @@ #MSG_FSENSOR "Fil. sensor" "Sensore fil." -# + +# c=14 "Filam. runouts" -"Filam. esauriti" +"Fil. esauriti" #MSG_FILAMENT_CLEAN c=20 r=2 "Filament extruding & with correct color?" -"Filamento estruso & con il giusto colore?" +"Filamento estruso e con colore corretto?" #MSG_NOT_LOADED c=19 "Filament not loaded" @@ -297,21 +342,29 @@ "Filament sensor" "Sensore filam." -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" -"Filamento utilizzato" +"Fil. utilizzato" #MSG_PRINT_TIME c=19 r=1 "Print time" "Tempo di stampa" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"" + +# c=18 +"FS v0.4 or newer" +"" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "File incompleto. Continuare comunque?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" -"Finalizzando gli spostamenti" +"Finaliz. spostamenti" #MSG_V2_CALIBRATION c=17 r=1 "First layer cal." @@ -323,7 +376,7 @@ # "Fix the issue and then press button on MMU unit." -"Risolvi il problema e quindi premi il bottone sull'unita MMU. " +"Risolvere il problema e premere il bottone sull'unita MMU. " #MSG_FLOW "Flow" @@ -331,7 +384,7 @@ #MSG_PRUSA3D_FORUM "forum.prusa3d.com" -"\x00" +"" #MSG_SELFTEST_COOLING_FAN c=20 "Front print fan?" @@ -367,7 +420,7 @@ #MSG_PRUSA3D_HOWTO "howto.prusa3d.com" -"\x00" +"" #MSG_FILAMENTCHANGE "Change filament" @@ -379,7 +432,7 @@ #MSG_CORRECTLY c=20 "Changed correctly?" -"Cambiato correttamente?" +"Cambio corretto?" #MSG_SELFTEST_CHECK_BED c=20 "Checking bed " @@ -439,11 +492,11 @@ #MSG_WIZARD_FILAMENT_LOADED c=20 r=2 "Is filament loaded?" -"Il filamento e stato caricato?" +"Il filamento e' stato caricato?" #MSG_STEEL_SHEET_CHECK c=20 r=2 "Is steel sheet on heatbed?" -"La piastra d'acciaio e sul piano riscaldato?" +"Piastra d'acciaio su piano riscaldato?" # "Last print failures" @@ -477,6 +530,10 @@ "Live adjust Z" "Compensazione Z" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola." + #MSG_LOAD_FILAMENT c=17 "Load filament" "Carica filamento" @@ -497,21 +554,29 @@ "Load to nozzle" "Carica ugello" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." -"M117 Calibrazione primo layer." +"M117 Calibr. primo strato" #MSG_MAIN "Main" "Menu principale" +#MSG_BL_HIGH c=12 +"Level Bright" +"Liv. Chiaro" + +#MSG_BL_LOW c=12 +"Level Dimmed" +"Liv. Scuro" + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" "Misura altezza di rif. del punto di calib." #MSG_MESH_BED_LEVELING "Mesh Bed Leveling" -"Livel. piatto" +"Liv. grilia piano" #MSG_MMU_OK_RESUMING_POSITION c=20 r=4 "MMU OK. Resuming position..." @@ -545,6 +610,10 @@ "Mode" "Mod." +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"Firmware MK3 rilevato su stampante MK3S" + #MSG_NORMAL "Normal" "Normale" @@ -607,11 +676,11 @@ #MSG_NA "N/A" -"\x00" +"N/D" #MSG_NO "No" -"\x00" + #MSG_SELFTEST_NOTCONNECTED "Not connected" @@ -637,7 +706,7 @@ "Nozzle" "Ugello" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." @@ -669,7 +738,7 @@ "PINDA Heating" "Riscaldamento PINDA" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante." @@ -741,6 +810,10 @@ "Preheating nozzle. Please wait." "Preriscaldando l'ugello. Attendere prego." +# c=14 +"PINDA" +"" + # "Please upgrade." "Prego aggiornare." @@ -749,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Premete la manopola per preriscaldare l'ugello e continuare." +#MSG_FS_PAUSE c=5 +"Pause" +"Pausa" + # "Power failures" "Mancanza corrente" @@ -757,13 +834,13 @@ "Print aborted" "Stampa interrotta" -# +# c=20 "Preheating to load" -"Preriscaldamento per caricare" +"Preriscald. carico" -# +# c=20 "Preheating to unload" -"Preriscaldamento per scaricare" +"Preriscald. scarico" #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" @@ -807,23 +884,27 @@ #MSG_PRUSA3D "prusa3d.com" -"\x00" +"" #MSG_BED_CORRECTION_REAR c=14 r=1 "Rear side [um]" "Retro [um]" -#MSG_RECOVERING_PRINT c=20 r=1 +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"Scaricare prima il filamento, poi ripetere l'operazione." + +#MSG_RECOVERING_PRINT c=20 "Recovering print " -"Recupero stampa" +"Recupero stampa " -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." -"Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. " +"Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento." -# +# c=20 "Prusa i3 MK3S OK." -"\x00" +"" #MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." @@ -831,7 +912,7 @@ #MSG_BED_CORRECTION_RESET "Reset" -"\x00" + #MSG_RESUME_PRINT "Resume print" @@ -859,7 +940,7 @@ #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY "FlashAir" -"\x00" +"" # "Right" @@ -903,13 +984,25 @@ #MSG_SET_TEMPERATURE c=19 r=1 "Set temperature:" -"Imposta temperatura:" +"Imposta temperatura" + +# c=20 +"Prusa i3 MK2.5 OK." +"" + +# c=20 +"Prusa i3 MK2.5S OK." +"" + +# c=20 +"Prusa i3 MK3 OK." +"" #MSG_SETTINGS "Settings" "Impostazioni" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Stato finecorsa" @@ -917,7 +1010,7 @@ "Sensor state" "Stato sensore" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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." @@ -957,6 +1050,10 @@ "Sound" "Suono" +# c=7 +"Runouts" +"Esaurim" + # "Some problem encountered, Z-leveling enforced ..." "Sono stati rilevati problemi, avviato livellamento Z ..." @@ -1001,7 +1098,7 @@ "Select filament:" "Seleziona il filamento:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." "Calib. temp." @@ -1021,15 +1118,19 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Sensore verificato, rimuovere il filamento." + #MSG_TEMPERATURE "Temperature" -"\x00" + #MSG_MENU_TEMPERATURES c=15 r=1 "Temperatures" "Temperature" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " @@ -1123,9 +1224,9 @@ #MSG_WIZARD c=17 r=1 "Wizard" -"\x00" +"" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" "XYZ Cal. dettagli" @@ -1149,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!" -# +#MSG_TIMEOUT c=12 +"Timeout" +"" + +#MSG_X_CORRECTION c=13 "X-correct:" "Correzione-X:" @@ -1171,7 +1276,7 @@ # "XYZ calibration failed. Bed calibration point was not found." -"Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." +"Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato." # "XYZ calibration failed. Front calibration points not reachable." @@ -1189,17 +1294,21 @@ "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)." "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):" -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"Verifica fallita, rimuovere il filamento e riprovare." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Correzione-Y:" #MSG_OFF "Off" -"\x00" +"" #MSG_ON "On" -"\x00" +"" # "Back" @@ -1215,11 +1324,11 @@ # "FINDA:" -"\x00" +"" #MSG_FIRMWARE "Firmware" -"\x00" +"" #MSG_STRICT "Strict" @@ -1235,7 +1344,7 @@ # "IR:" -"\x00" +"" #MSG_MAGNETS_COMP "Magnets comp." @@ -1247,7 +1356,7 @@ # "Mesh bed leveling" -"Mesh livel. letto" +"Liv. griglia piano" # "MK3S firmware detected on MK3 printer" @@ -1295,15 +1404,15 @@ # "PINDA:" -"\x00" +"" -# +# c=20 "Preheating to cut" -"Preriscaldamento per taglio" +"Preriscalda. taglio" -# +# c=20 "Preheating to eject" -"Preriscaldamento per espulsione" +"Preriscalda. espuls." # "Printer nozzle diameter differs from the G-code. Continue?" @@ -1313,6 +1422,10 @@ "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." +# c=20 +"%s level expected" +"atteso livello %s" + # "Rename" "Rinomina" @@ -1325,7 +1438,7 @@ "Sensor info" "Info Sensore" -# +#MSG_SHEET c=10 "Sheet" "Piano" @@ -1333,14 +1446,15 @@ "Assist" "Assist." -# +# c=18 "Steel sheets" "Piani d'acciaio" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Correzione-Z:" #MSG_Z_PROBE_NR "Z-probe nr." -"\x00" +"Nr. Z-test" + diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index aa07cd75a..9ecf0487a 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -2,6 +2,14 @@ "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset" +#MSG_03_OR_OLDER c=18 +" 0.3 or older" +" 0.3 lub starszy" + +#MSG_04_OR_NEWER c=18 +" 0.4 or newer" +" 0.4 lub nowszy" + #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 " of 4" " z 4" @@ -42,7 +50,11 @@ "Ambient" "Otoczenie" -#MSG_PRESS c=20 +#MSG_AUTO c=6 +"Auto" +"\x00" + +#MSG_PRESS c=20 r=2 "and press the knob" "i nacisnij pokretlo" @@ -58,7 +70,7 @@ "Auto home" "Auto zerowanie" -#MSG_AUTOLOAD_FILAMENT c=17 +#MSG_AUTOLOAD_FILAMENT c=18 "AutoLoad filament" "Autoladowanie fil." @@ -94,15 +106,27 @@ "Bed level correct" "Korekta stolu" -#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 +#MSG_BELTTEST c=17 +"Belt test " +"Test paskow" + +#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." "Kalibracja nieudana. Sensor nie aktywowal sie. Zanieczysz. dysza? Czekam na reset." +#MSG_BRIGHT c=6 +"Bright" +"Jasny" + +#MSG_BRIGHTNESS c=18 +"Brightness" +"Jasnosc" + #MSG_BED "Bed" "Stol" -#MSG_MENU_BELT_STATUS c=15 r=1 +#MSG_MENU_BELT_STATUS c=18 "Belt status" "Stan paskow" @@ -202,11 +226,15 @@ "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." "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy." +#MSG_FS_CONTINUE c=5 +"Cont." +"Kont." + #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?" -#MSG_EXTRUDER_CORRECTION c=10 +#MSG_EXTRUDER_CORRECTION c=13 "E-correct:" "Korekcja-E:" @@ -218,7 +246,7 @@ "Ejecting filament" "Wysuwanie filamentu" -#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 +#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 "Endstop not hit" "Krancowka nie aktyw." @@ -234,10 +262,26 @@ "Error - static memory has been overwritten" "Blad - pamiec statyczna zostala nadpisana" +#MSG_CUT_FILAMENT c=16 +"Cut filament" +"Ciecie filamentu" + +#MSG_CUTTER c=9 +"Cutter" +"Nozyk" + +# c=18 +"Cutting filament" +"Obcinanie fil." + #MSG_FSENS_NOT_RESPONDING c=20 r=4 "ERROR: Filament sensor is not responding, please check connection." "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." +#MSG_DIM c=6 +"Dim" +"Sciemn" + #MSG_ERROR "ERROR:" "BLAD:" @@ -246,7 +290,7 @@ "Extruder fan:" "WentHotend:" -#MSG_INFO_EXTRUDER c=15 r=1 +#MSG_INFO_EXTRUDER c=18 "Extruder info" "Ekstruder - info" @@ -258,7 +302,7 @@ "Fail stats MMU" "Bledy MMU" -#MSG_FSENSOR_AUTOLOAD +#MSG_FSENSOR_AUTOLOAD c=13 "F. autoload" "Autolad. fil." @@ -282,13 +326,13 @@ "Fil. sensor" "Czuj. filam." -# +# c=14 "Filam. runouts" -"Konc. filamentu" +"Konc.filamentu" #MSG_FILAMENT_CLEAN c=20 r=2 "Filament extruding & with correct color?" -"Filament wychodzi z dyszy, kolor jest ok?" +"Filament wychodzi z dyszy,kolor jest ok?" #MSG_NOT_LOADED c=19 "Filament not loaded" @@ -298,7 +342,7 @@ "Filament sensor" "Czujnik filamentu" -#MSG_FILAMENT_USED c=19 r=1 +#MSG_FILAMENT_USED c=19 "Filament used" "Uzyty filament" @@ -306,15 +350,23 @@ "Print time" "Czas druku" -#MSG_FILE_INCOMPLETE c=20 r=2 +#MSG_FS_ACTION c=10 +"FS Action" +"Akcja FS" + +# c=18 +"FS v0.4 or newer" +"FS v0.4 lub nowszy" + +#MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" "Plik niekompletny. Kontynowac?" -#MSG_FINISHING_MOVEMENTS c=20 r=1 +#MSG_FINISHING_MOVEMENTS c=20 "Finishing movements" "Konczenie druku" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Kal. 1. warstwy" @@ -396,7 +448,7 @@ #MSG_SELFTEST_CHECK_FSENSOR c=20 "Checking sensors " -"Sprawdzanie czujnikow" +"Kontrola czujnikow" #MSG_SELFTEST_CHECK_X c=20 "Checking X axis " @@ -478,6 +530,10 @@ "Live adjust Z" "Ustaw. Live Z" +# c=20 r=6 +"Insert the filament (do not load it) into the extruder and then press the knob." +"Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo." + #MSG_LOAD_FILAMENT c=17 "Load filament" "Ladowanie fil." @@ -498,7 +554,7 @@ "Load to nozzle" "Zaladuj do dyszy" -#MSG_M117_V2_CALIBRATION c=25 r=1 +#MSG_M117_V2_CALIBRATION c=25 "M117 First layer cal." "M117 Kal. 1. warstwy" @@ -506,6 +562,14 @@ "Main" "Menu glowne" +#MSG_BL_HIGH c=12 +"Level Bright" +"Poziom jasn." + +#MSG_BL_LOW c=12 +"Level Dimmed" +"Poziom ciem." + #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 "Measuring reference height of calibration point" "Okreslam wysokosc odniesienia punktu kalibracyjnego" @@ -546,6 +610,10 @@ "Mode" "Tryb" +# c=20 r=3 +"MK3 firmware detected on MK3S printer" +"Wykryto firmware MK3 w drukarce MK3S" + #MSG_NORMAL "Normal" "Normalny" @@ -638,7 +706,7 @@ "Nozzle" "Dysza" -#MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 +#MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 "Old settings found. Default PID, Esteps etc. will be set." "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp." @@ -670,7 +738,7 @@ "PINDA Heating" "Grzanie sondy PINDA" -#MSG_PAPER c=20 r=8 +#MSG_PAPER c=20 r=10 "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." "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke." @@ -742,6 +810,10 @@ "Preheating nozzle. Please wait." "Nagrzewanie dyszy. Prosze czekac." +# c=14 +"PINDA" +"\x00" + # "Please upgrade." "Prosze zaktualizowac." @@ -750,6 +822,10 @@ "Press knob to preheat nozzle and continue." "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." +#MSG_FS_PAUSE c=5 +"Pause" +"Pauza" + # "Power failures" "Zaniki zasilania" @@ -758,11 +834,11 @@ "Print aborted" "Druk przerwany" -# +# c=20 "Preheating to load" -"Nagrzew. do ladowania" +"Nagrzew.do ladowania" -# +# c=20 "Preheating to unload" "Nagrzew. do rozlad." @@ -814,17 +890,21 @@ "Rear side [um]" "Tyl [um]" -#MSG_RECOVERING_PRINT c=20 r=1 -"Recovering print " -"Wznawianie wydruku" +# c=20 r=4 +"Please unload the filament first, then repeat this action." +"Najpierw rozladuj filament, nastepnie powtorz czynnosc." -#MSG_REMOVE_OLD_FILAMENT c=20 r=4 +#MSG_RECOVERING_PRINT c=20 +"Recovering print " +"Wznawianie wydruku " + +#MSG_REMOVE_OLD_FILAMENT c=20 r=5 "Remove old filament and press the knob to start loading new filament." "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy." -# +# c=20 "Prusa i3 MK3S OK." -"Prusa i3 MK3S OK" +"\x00" #MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." @@ -838,7 +918,7 @@ "Resume print" "Wznowic wydruk" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" "Wznawianie druku" @@ -906,11 +986,23 @@ "Set temperature:" "Ustaw temperature:" +# c=20 +"Prusa i3 MK2.5 OK." +"\x00" + +# c=20 +"Prusa i3 MK2.5S OK." +"\x00" + +# c=20 +"Prusa i3 MK3 OK." +"\x00" + #MSG_SETTINGS "Settings" "Ustawienia" -#MSG_SHOW_END_STOPS c=17 r=1 +#MSG_SHOW_END_STOPS c=18 "Show end stops" "Pokaz krancowki" @@ -918,7 +1010,7 @@ "Sensor state" "Stan czujnikow" -#MSG_FILE_CNT c=20 r=4 +#MSG_FILE_CNT c=20 r=6 "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." @@ -958,6 +1050,10 @@ "Sound" "Dzwiek" +# c=7 +"Runouts" +"Konce f" + # "Some problem encountered, Z-leveling enforced ..." "Wykryto problem, wymuszono poziomowanie osi Z." @@ -965,6 +1061,7 @@ #MSG_SOUND_ONCE "Once" "1-raz" + #MSG_SPEED "Speed" "Predkosc" @@ -1001,9 +1098,9 @@ "Select filament:" "Wybierz filament:" -#MSG_TEMP_CALIBRATION c=12 r=1 +#MSG_TEMP_CALIBRATION c=14 "Temp. cal." -"Kalibracja temp." +"Kalib. temp." # "Select temperature which matches your material." @@ -1021,6 +1118,10 @@ "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp." +# c=20 r=3 +"Sensor verified, remove the filament now." +"Czujnik sprawdzony, wyciagnij filament." + #MSG_TEMPERATURE "Temperature" "Temperatura" @@ -1029,7 +1130,7 @@ "Temperatures" "Temperatury" -#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 +#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." @@ -1125,7 +1226,7 @@ "Wizard" "Asystent" -#MSG_XYZ_DETAILS c=19 r=1 +#MSG_XYZ_DETAILS c=18 "XYZ cal. details" "Szczegoly kal. XYZ" @@ -1149,7 +1250,11 @@ "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!" -# +#MSG_TIMEOUT c=12 +"Timeout" +"Wyl. czas." + +#MSG_X_CORRECTION c=13 "X-correct:" "Korekcja-X:" @@ -1189,7 +1294,11 @@ "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)." "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)." -# +# c=20 r=5 +"Verification failed, remove the filament and try again." +"Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie." + +#MSG_Y_CORRECTION c=13 "Y-correct:" "Korekcja-Y:" @@ -1271,7 +1380,7 @@ # "G-code sliced for a different level. Continue?" -"\x00" +"G-code pociety dla innej wersji. Kontynuowac?" # "G-code sliced for a different level. Please re-slice the model again. Print cancelled." @@ -1297,13 +1406,13 @@ "PINDA:" "\x00" -# +# c=20 "Preheating to cut" -"Nagrzewanie do obciecia" +"Nagrzew. obciecia" -# +# c=20 "Preheating to eject" -"Nagrzewanie do wysuniecia" +"Nagrzew. wysuniecia" # "Printer nozzle diameter differs from the G-code. Continue?" @@ -1313,6 +1422,10 @@ "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." +# c=20 +"%s level expected" +"Oczekiwano wersji %s" + # "Rename" "Zmien nazwe" @@ -1325,7 +1438,7 @@ "Sensor info" "Info o sensorach" -# +#MSG_SHEET c=10 "Sheet" "Plyta" @@ -1333,14 +1446,15 @@ "Assist" "Asyst." -# +# c=18 "Steel sheets" "Plyty stalowe" -# +#MSG_Z_CORRECTION c=13 "Z-correct:" "Korekcja-Z:" #MSG_Z_PROBE_NR "Z-probe nr." "Ilosc Pomiarow" + diff --git a/lang/po/Firmware.pot b/lang/po/Firmware.pot index 6229d032d..ef78311eb 100644 --- a/lang/po/Firmware.pot +++ b/lang/po/Firmware.pot @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:01:55 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:01:55 PM\n" +"POT-Creation-Date: Tue May 12 21:08:04 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:08:04 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr "" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr "" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr "" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" msgstr "" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "" @@ -41,53 +56,48 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr "" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 msgid "Are left and right Z~carriages all up?" msgstr "" -# MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" msgstr "" # MSG_AUTO_HOME @@ -95,748 +105,773 @@ msgstr "" msgid "Auto home" msgstr "" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "" # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "" # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "" + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "" +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "" + # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "" # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." msgstr "" -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." msgstr "" # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "" # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "" +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "" -# MSG_EXTRUDER_CORRECTION c=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" msgstr "" -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "" - # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "" + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "" +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" msgstr "" # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "" # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" msgstr "" -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" msgstr "" -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" msgstr "" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" msgstr "" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" msgstr "" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 msgid "First, I will run the selftest to check most common assembly problems." msgstr "" # -#: mmu.cpp:724 +#: mmu.cpp:727 msgid "Fix the issue and then press button on MMU unit." msgstr "" # MSG_FLOW -#: ultralcd.cpp:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "" # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "" # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " msgstr "" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "" # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4999 +#: ultralcd.cpp:5063 msgid "I will run z calibration now." msgstr "" -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" msgstr "" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "" + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "" # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "" + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "" # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "" # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "" # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "" # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "" -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" msgstr "" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" msgstr "" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "" # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" msgstr "" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" msgstr "" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" msgstr "" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "" # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "" @@ -846,967 +881,962 @@ msgid "New firmware version available:" msgstr "" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "" # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "" # -#: ultralcd.cpp:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "" # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "" # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 msgid "Please clean the nozzle for calibration. Click when done." msgstr "" # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "" - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 msgid "Please open idler and remove filament manually." msgstr "" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:65 +#: messages.c:61 msgid "Please place steel sheet on heatbed." msgstr "" # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "" -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 msgid "Please remove filament and then press the knob." msgstr "" # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:74 +#: messages.c:70 msgid "Please remove steel sheet from heatbed." msgstr "" # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "" # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "" # MSG_PLEASE_WAIT c=20 -#: messages.c:66 +#: messages.c:62 msgid "Please wait" msgstr "" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "" +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "" +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" msgstr "" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" msgstr "" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "" # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "" # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "" +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "" + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "" + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "" + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "" + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 msgid "Recovering print " msgstr "" -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 msgid "Remove old filament and press the knob to start loading new filament." msgstr "" -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "" -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" msgstr "" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" msgstr "" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" msgstr "" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "" # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "" # -#: ultralcd.cpp:5045 +#: ultralcd.cpp:5102 msgid "Select nozzle preheat temperature which matches your material." msgstr "" -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" msgstr "" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" msgstr "" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" msgstr "" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" msgstr "" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" msgstr "" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "" -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" msgstr "" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "" # MSG_STATISTICS -#: ultralcd.cpp:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "" # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "" # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" msgstr "" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." msgstr "" -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." msgstr "" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "" +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "" + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "" # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "" # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 msgid "Waiting for nozzle and bed cooling" msgstr "" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 msgid "Warning: both printer type and motherboard type changed." msgstr "" # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "" # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "" # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3922 +#: ultralcd.cpp:3904 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3919 +#: ultralcd.cpp:3901 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "" -# -#: ultralcd.cpp:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "" # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "" # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "" # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "" + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "" + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" +#: messages.c:105 +msgid "Off" +msgstr "" + +# MSG_ON +#: messages.c:106 +msgid "On" msgstr "" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" msgstr "" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" msgstr "" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" msgstr "" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "" -# -#: ultralcd.cpp:5506 -msgid "Model [none]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." msgstr "" # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" msgstr "" # -#: util.cpp:516 +#: util.cpp:520 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." msgstr "" # -#: util.cpp:427 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "" # -#: util.cpp:433 +#: util.cpp:437 msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." msgstr "" # -#: util.cpp:477 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "" # -#: util.cpp:483 +#: util.cpp:487 msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." msgstr "" # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" msgstr "" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" msgstr "" # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "" # -#: util.cpp:397 +#: util.cpp:401 msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." msgstr "" +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "" -# -#: sound.h:9 -msgid "Sound [assist]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" msgstr "" -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." msgstr "" diff --git a/lang/po/Firmware_cs.po b/lang/po/Firmware_cs.po index 9cb47a37c..6322bebd8 100644 --- a/lang/po/Firmware_cs.po +++ b/lang/po/Firmware_cs.po @@ -1,1812 +1,1842 @@ -# Translation of Prusa-Firmware into Czech. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:03:01 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:03:01 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr " z 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr " z 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "[0;0] odsazeni bodu" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Zrusit" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Doladeni Z:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Vse OK " - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Vse je hotovo." - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Okoli" - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "a stisknete tlacitko" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -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:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [zap]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [vyp]" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "AutoZavedeni fil." - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -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:2813 -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:7949 -msgid "Axis length" -msgstr "Delka osy" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Osa" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Podlozka / Topeni" - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Bed OK." - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Zahrivani bedu" - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -msgstr "Korekce podlozky" - -# 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 "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Podlozka" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Stav remenu" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "Detekovan vypadek proudu.Obnovit tisk?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Kalibruji vychozi poz." - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Kalibrace XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Kalibrovat Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Zkalibrovat" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Kalibruji Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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:816 -msgid "Calibration done" -msgstr "Kalibrace OK" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "Kalibrace" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Zrusit" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "Karta vyjmuta" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Barva neni cista" - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Zchladit" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Kopirovat vybrany jazyk?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Crash det. [zap]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Crash det. [vyp]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Detekovan naraz." - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Detekovan naraz. Obnovit tisk?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "Naraz" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Pouze aktualni" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Datum:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -msgid "Disable steppers" -msgstr "Vypnout motory" - -# 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 "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:5070 -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=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "Korekce E:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Vysunout filament" - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Vysunout" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "Vysouvam filament" - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Kon. spinac nesepnut" - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "Koncovy spinac" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "Konc. spinace" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -msgid "Error - static memory has been overwritten" -msgstr "Chyba - Doslo k prepisu staticke pameti!" - -# MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "CHYBA:" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "Levy vent.:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "Selhani MMU" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "F. autozav. [zap]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "F. autozav. [N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "F. autozav. [vyp]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Selhani" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Rychlost vent." - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Test ventilatoru" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Kontr. vent.[zap]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Kontr. vent.[vyp]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Fil. senzor [zap]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Fil. senzor [N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Fil. senzor [vyp]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Vypadky filam." - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Filament vytlacen a spravne barvy?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Filament nezaveden" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Senzor filamentu" - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Spotrebovano filamentu" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Cas tisku" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "Soubor nekompletni. Pokracovat?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Dokoncovani pohybu" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Kal. prvni vrstvy" - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -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: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:6932 -msgid "Flow" -msgstr "Prutok" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Predni tiskovy vent?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Vpredu [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Predni/levy vent." - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Topeni/Termistor" - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Zahrivani preruseno bezpecnostnim casovacem." - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Zahrivani OK." - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Zahrivani" - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Vymenit filament" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Zmena uspesna!" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Vymena ok?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Kontrola podlozky" - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Kontrola endstopu" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Kontrola hotend " - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Kontrola senzoru" - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Kontrola osy X" - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Kontrola osy Y" - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Kontrola osy Z" - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Vyberte extruder:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Vyber filament:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -msgid "I will run z calibration now." -msgstr "Nyni provedu z kalibraci." - -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Informace" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Je filament 1 zaveden?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Vlozte filament" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Je filament zaveden?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Je to PLA filament?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Je PLA filament zaveden?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "Je tiskovy plat na podlozce?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Selhani posl. tisku" - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Posledni tisk" - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Levy vent na trysce?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Vlevo" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Vlevo [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Korekce lin." - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Doladeni osy Z" - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Zavest filament" - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Cisteni barvy" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Zavadeni filamentu" - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Uvolnena remenicka" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "Zavest do trysky" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Kal. prvni vrstvy" - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Hlavni nabidka" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 -msgid "Measuring reference height of calibration point" -msgstr "Merim referencni vysku kalibracniho bodu" - -# MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 -msgid "Mesh Bed Leveling" -msgstr "" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: 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:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Pokracuji v nahrivani..." - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Merene zkoseni" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "Selhani MMU" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "Zavedeni MMU selhalo" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "MMU selhani zavadeni" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Pokracuji..." - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Mod [Normal]" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mod [tichy]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "MMU potrebuje zasah uzivatele." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "MMU vypadky proudu" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mod [tichy]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mod [automaticky]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mod [vys. vykon]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU2 pripojeno" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Posunout osu" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Posunout X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Posunout Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Posunout Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Bez pohybu." - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "Zadna SD karta" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "" - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "Ne" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "Nezapojeno " - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Vysla nova verze firmware:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Netoci se" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Nyni predehreji trysku pro PLA." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Tryska" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: 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:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "Vent. trysky" - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Pozastavit tisk" - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "PID kal. " - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "PID kal. ukoncena" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "PID kalibrace" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "Nahrivani PINDA" - -# MSG_PAPER c=20 r=8 -#: 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:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Prosim ocistete podlozku a stisknete tlacitko." - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -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:7881 -msgid "Please check :" -msgstr "Zkontrolujte :" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Nejdrive prosim zavedte PLA filament." - -# MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 -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: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:68 -msgid "Please press the knob to unload filament" -msgstr "Pro vysunuti filamentu stisknete prosim tlacitko" - -# -#: ultralcd.cpp:4889 -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:70 -msgid "Please pull out filament immediately" -msgstr "Prosim vyjmete urychlene filament" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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: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:4355 -msgid "Please run XYZ calibration first." -msgstr "Nejprve spustte kalibraci XYZ." - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Prosim cekejte" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Nejprve prosim sundejte transportni soucastky." - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Predehrejte trysku!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Predehrev" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Predehrev trysky. Prosim cekejte." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Prosim aktualizujte." - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Vypadky proudu" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Tisk prerusen" - -# -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Predehrev k zavedeni" - -# -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Predehrev k vyjmuti" - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "Tiskovy vent.:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Tisk z SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "Stisknete hl. tlacitko" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Tisk pozastaven" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." - -# 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 "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "Tiskovy vent." - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Vzadu [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Obnovovani tisku " - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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." - -# -#: -msgid "Prusa i3 MK3S OK." -msgstr "" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "Reset XYZ kalibr." - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Pokracovat" - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Obnoveni tisku" - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Vpravo [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "RPi port [zap]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "RPi port [vyp]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -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:5322 -msgid "SD card [normal]" -msgstr "" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "SD card [FlshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Vpravo" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Hledam kalibracni bod podlozky" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Vyber jazyka" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Self test start " - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Selftest " - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Chyba Selftestu!" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Selftest selhal " - -# MSG_FORCE_SELFTEST c=20 r=8 -#: 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:5045 -msgid "Select nozzle preheat temperature which matches your material." -msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." - -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Vyberte PLA filament:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Nastavte teplotu:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Nastaveni" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Stav konc. spin." - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Stav senzoru" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Trideni [Zadne]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Trideni [cas]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Tezke zkoseni:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Trideni [Abeceda]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Trideni souboru" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Zvuk [hlasity]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Lehke zkoseni:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Zvuk [vypnuto]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Vyskytl se problem, srovnavam osu Z ..." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Zvuk [jednou]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Zvuk [tichy]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Rychlost" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Toci se" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -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:6839 -msgid "Statistics " -msgstr "Statistika " - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Zastavit tisk" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "ZASTAVENO." - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "Podpora" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Prohozene" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Tepl. kal. " - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Tepl. kal. [zap]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Tepl. kal. [vyp]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Teplot. kalibrace" - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Teplotni kalibrace selhala" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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:5650 -msgid "Temperature" -msgstr "Teplota" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "Teploty" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Filament celkem" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Celkovy cas tisku" - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Ladit" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Vysunout" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Celkem selhani" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "k zavedeni filamentu" - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "k vyjmuti filamentu" - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Vyjmout filament" - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Vysouvam filament" - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "Celkem" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Pouzite behem tisku" - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Napeti" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "neznamy" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Ceka se na uzivatele..." - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -msgid "Waiting for nozzle and bed cooling" -msgstr "Cekani na zchladnuti trysky a podlozky." - -# MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "Cekani na zchladnuti PINDA" - -# -#: ultralcd.cpp:4868 -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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Varovani: doslo ke zmene typu motherboardu." - -# MSG_CHANGED_PRINTER c=20 r=4 -#: 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:3054 -msgid "Was filament unload successful?" -msgstr "Bylo vysunuti filamentu uspesne?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Chyba zapojeni" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "Pruvodce" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "Detaily XYZ kal." - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Ano" - -# MSG_WIZARD_QUIT c=20 r=8 -#: 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:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "Korekce X:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -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:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Zavest vse" - -# -#: ultralcd.cpp:3882 -msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." - -# -#: ultralcd.cpp:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Y vzdalenost od min" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Korekce Y:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [vyp]" - -# -#: messages.c:57 -msgid "Back" -msgstr "Zpet" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Kontrola" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Falesne spusteni" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [Zadne]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [Prisne]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware[Varovat]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "HW nastaveni" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Komp. magnetu[N/A]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Komp. magnetu[Vyp]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Komp. magnetu[Zap]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Mesh [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Mesh [7x7]" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "Mesh Bed Leveling" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "MK3S firmware detekovan na tiskarne MK3" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "MMU mod [Normal]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "MMU Mod [Tichy]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Probiha zmena modu..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Model [Zadne]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Model [Prisne]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Model [Varovat]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Tryska [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Tryska [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Tryska [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Tryska [Zadne]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Tryska [Prisne]" - -# -#: ultralcd.cpp:5424 -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 "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." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "" - -# -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Predehrev k ustrizeni" - -# -#: ultralcd.cpp:2462 -msgid "Preheating to eject" -msgstr "Predehrev 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:6683 -msgid "Rename" -msgstr "Prejmenovat" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Vybrat" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Senzor info" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Plat" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Zvuk [Asist.]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Tiskove platy" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Korekce Z:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Pocet mereni Z [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Pocet mereni Z [3]" - +# Translation of Prusa-Firmware into Czech. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:08:30 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:08:30 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 nebo starsi" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 nebo novejsi" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " z 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " z 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] odsazeni bodu" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Zrusit" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Doladeni Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Vse OK " + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Vse je hotovo." + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Okoli" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "a stisknete tlacitko" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Dojely oba Z voziky k~hornimu dorazu?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "AutoZavedeni fil." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +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:8327 +msgid "Axis length" +msgstr "Delka osy" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Osa" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Podlozka / Topeni" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Bed OK." + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Zahrivani bedu" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Korekce podlozky" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test remenu " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Jasny" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Podsviceni" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Podlozka" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Stav remenu" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Detekovan vypadek proudu.Obnovit tisk?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Kalibruji vychozi poz." + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Kalibrace XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Kalibrovat Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Zkalibrovat" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Kalibruji Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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:865 +msgid "Calibration done" +msgstr "Kalibrace OK" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Kalibrace" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Zrusit" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "Karta vyjmuta" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Barva neni cista" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Zchladit" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Kopirovat vybrany jazyk?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu" + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Detekovan naraz." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Detekovan naraz. Obnovit tisk?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "Naraz" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Pouze aktualni" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Datum:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Vypnout motory" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "Pokr." + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +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=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Korekce E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Vysunout filament" + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Vysouvam filament" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Kon. spinac nesepnut" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "Koncovy spinac" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "Konc. spinace" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Chyba - Doslo k prepisu staticke pameti!" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Ustrihnout" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Strihani" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Strihani filamentu" + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Temny" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "CHYBA:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "Levy vent.:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Selhani MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autozav." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Selhani" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Rychlost vent." + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test ventilatoru" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Kontr. vent." + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Fil. senzor" + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Vypadky filam." + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filament vytlacen a spravne barvy?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Filament nezaveden" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Senzor filamentu" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Spotrebovano filam." + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Cas tisku" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS reakce" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 a novejsi" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "Soubor nekompletni. Pokracovat?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Dokoncovani pohybu" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Kal. prvni vrstvy" + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +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:727 +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:7125 +msgid "Flow" +msgstr "Prutok" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Predni tiskovy vent?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Vpredu [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Predni/levy vent." + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Topeni/Termistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Zahrivani preruseno bezpecnostnim casovacem." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Zahrivani OK." + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Zahrivani" + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Vymenit filament" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Zmena uspesna!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Vymena ok?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Kontrola podlozky" + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Kontrola endstopu" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Kontrola hotend " + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Kontrola senzoru" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Kontrola osy X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Kontrola osy Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Kontrola osy Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Vyberte extruder:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Vyber filament:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Nyni provedu z kalibraci." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Informace" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Vlozte filament" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Je filament zaveden?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Je tiskovy plat na podlozce?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Selhani posl. tisku" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy" + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Posledni tisk" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Levy vent na trysce?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Vlevo" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Vlevo [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Korekce lin." + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Doladeni osy Z" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko" + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Zavest filament" + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Cisteni barvy" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Zavadeni filamentu" + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Uvolnena remenicka" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Zavest do trysky" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Kal. prvni vrstvy" + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Hlavni nabidka" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Merim referencni vysku kalibracniho bodu" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Pokracuji v tisku..." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Pokracuji v nahrivani..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Merene zkoseni" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Selhani MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Zavedeni MMU selhalo" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "MMU selhani zavadeni" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Pokracuji..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Mod" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Tichy" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "MMU potrebuje zasah uzivatele." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "MMU vypadky proudu" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Tichy" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Automaticky" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Vys. vykon" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 pripojeno" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Posunout osu" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Posunout X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Posunout Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Posunout Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Bez pohybu." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Zadna SD karta" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "Ne" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "Nezapojeno " + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Vysla nova verze firmware:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Netoci se" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Nyni predehreji trysku pro PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Tryska" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +msgid "Old settings found. Default PID, Esteps etc. will be set." +msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." + +# +#: ultralcd.cpp:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Vent. trysky" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Pozastavit tisk" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "PID kal. " + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "PID kal. ukoncena" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "PID kalibrace" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Nahrivani PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Prosim ocistete podlozku a stisknete tlacitko." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +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:8259 +msgid "Please check :" +msgstr "Zkontrolujte :" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +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_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +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 +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 +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 +msgid "Please pull out filament immediately" +msgstr "Prosim vyjmete urychlene filament" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +msgid "Please remove steel sheet from heatbed." +msgstr "Odstrante prosim tiskovy plat z podlozky." + +# MSG_RUN_XYZ c=20 r=4 +#: Marlin_main.cpp:4583 +msgid "Please run XYZ calibration first." +msgstr "Nejprve spustte kalibraci XYZ." + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Prosim cekejte" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Nejprve prosim sundejte transportni soucastky." + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Predehrejte trysku!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Predehrev" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Predehrev trysky. Prosim cekejte." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Prosim aktualizujte." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Vypadky proudu" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Tisk prerusen" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Predehrev k zavedeni" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Predehrev k vyjmuti" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "Tiskovy vent.:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Tisk z SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Stisknete hl. tlacitko" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Tisk pozastaven" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +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." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Tiskovy vent." + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Prosim nejdriv zavedte filament" + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Vzadu [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Prosim vyjmete filament a zopakujte tuto akci" + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Obnovovani tisku " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +msgid "Remove old filament and press the knob to start loading new filament." +msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reset XYZ kalibr." + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Pokracovat" + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Obnoveni tisku" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Vpravo [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +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_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Vpravo" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Hledam kalibracni bod podlozky" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Vyber jazyka" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Self test start " + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Selftest " + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Chyba Selftestu!" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Selftest selhal " + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +msgid "Selftest will be run to calibrate accurate sensorless rehoming." +msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest." + +# +#: ultralcd.cpp:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Nastavte teplotu:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Nastaveni" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Stav konc. spin." + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Stav senzoru" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Trideni" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Zadne" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Cas" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Tezke zkoseni:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Abeceda" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Trideni souboru" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Hlasity" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Lehke zkoseni:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Zvuk" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Vyskytl se problem, srovnavam osu Z ..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Jednou" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Rychlost" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Toci se" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +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:6978 +msgid "Statistics " +msgstr "Statistika " + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Zastavit tisk" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "ZASTAVENO." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "Podpora" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Prohozene" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Zvolte filament:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Tepl. kal." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Zvolte teplotu, ktera odpovida vasemu materialu." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Teplot. kalibrace" + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Teplotni kalibrace selhala" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Senzor overen, vyjmete filament." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "Teplota" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Teploty" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Filament celkem" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Celkovy cas tisku" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Ladit" + +# +#: +msgid "Unload" +msgstr "Vysunout" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Celkem selhani" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "k zavedeni filamentu" + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "k vyjmuti filamentu" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Vyjmout filament" + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Vysouvam filament" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Celkem" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Pouzite behem tisku" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Napeti" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "neznamy" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Ceka se na uzivatele..." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +msgid "Waiting for nozzle and bed cooling" +msgstr "Cekani na zchladnuti trysky a podlozky." + +# MSG_WAITING_TEMP_PINDA c=20 r=3 +#: ultralcd.cpp:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Cekani na zchladnuti PINDA" + +# +#: +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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Varovani: doslo ke zmene typu motherboardu." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Varovani: doslo ke zmene typu tiskarny." + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Bylo vysunuti filamentu uspesne?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Chyba zapojeni" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "Pruvodce" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "Detaily XYZ kal." + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Ano" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +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:3904 +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:3901 +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_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Korekce X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +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:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Zavest vse" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Y vzdalenost od min" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Overeni selhalo, vyjmete filament a zkuste znovu." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Korekce Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "Vyp" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Zap" + +# +#: messages.c:53 +msgid "Back" +msgstr "Zpet" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Kontrola" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Falesne spusteni" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Prisne" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Varovat" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "HW nastaveni" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Komp. magnetu" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "Mesh Bed Leveling" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "MK3S firmware detekovan na tiskarne MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "MMU mod" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Probiha zmena modu..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Tryska" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:520 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code je pripraven pro jiny typ tiskarny. Pokracovat?" + +# +#: util.cpp:437 +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:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code je pripraven pro novejsi firmware. Pokracovat?" + +# +#: util.cpp:487 +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." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Predehrev ke strihu" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Predehrev k vysunuti" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Prumer trysky tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:401 +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." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Prejmenovat" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Vybrat" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Senzor info" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Plat" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asist." + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Tiskove platy" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Korekce Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Pocet mereni Z" + diff --git a/lang/po/Firmware_de.po b/lang/po/Firmware_de.po index cc4879036..4b884405e 100644 --- a/lang/po/Firmware_de.po +++ b/lang/po/Firmware_de.po @@ -1,1817 +1,1842 @@ -# Translation of Prusa-Firmware into German. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: de\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:04:09 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:04:09 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr " von 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr " von 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "[0;0] Punktversatz" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Abbruch" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Z Anpassen:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Alles richtig " - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Alles abgeschlossen. Viel Spass beim Drucken!" - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Raumtemp." - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "und Knopf druecken" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -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:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [an]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/V]" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [aus]" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "Startposition" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "AutoLaden Filament" - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -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:2813 -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:7949 -msgid "Axis length" -msgstr "Achsenlaenge" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Achse" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Bett / Heizung" - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Bett OK" - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Bett aufwaermen" - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -msgstr "Ausgleich Bett ok" - -# 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 "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Bett" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Gurtstatus" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "Stromausfall! Druck wiederherstellen?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Kalibriere Start" - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Kalibrierung XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Kalibrierung Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Kalibrieren" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Kalibrierung Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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:816 -msgid "Calibration done" -msgstr "Kalibrierung OK" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "Kalibrierung" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Abbruch" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "SD Karte entfernt" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Falsche Farbe" - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Abkuehlen" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Gewaehlte Sprache kopieren?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Crash Erk. [an]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Crash Erk. [nv]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Crash Erk. [aus]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Crash erkannt." - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Crash erkannt. Druck fortfuehren?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Aktuelles" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Datum:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -msgid "Disable steppers" -msgstr "Motoren aus" - -# 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 "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:5070 -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=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "E-Korrektur:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Filamentauswurf" - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Auswurf" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "werfe Filament aus" - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Ende nicht getroffen" - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "Endanschlag" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "Endschalter" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -msgid "Error - static memory has been overwritten" -msgstr "Fehler - statischer Speicher wurde ueberschrieben" - -# MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "FEHLER:" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "Extruder Luefter:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "Extruder Info" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "MMU-Fehler" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "F.Autoladen [an]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "F. Autoload [nv]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "F. Autoload [aus]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Fehlerstatistik" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Luefter-Tempo" - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Lueftertest" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Luefter Chk. [an]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Luefter Chk.[aus]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Fil. Sensor [an]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Fil. Sensor [nv]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Fil. Sensor [aus]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Filam. Maengel" - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Filament extrudiert mit richtiger Farbe?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Fil. nicht geladen" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Filamentsensor" - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Filament benutzt" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Druckzeit" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "Datei unvollstaendig Trotzdem fortfahren?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Bewegung beenden" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Erste-Schicht Kal." - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -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: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:6932 -msgid "Flow" -msgstr "Durchfluss" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Vorderer Luefter?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Vorne [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Vorderer/linke Luefter" - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Heizung/Thermistor" - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Heizung durch Sicherheitstimer deaktiviert." - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Aufwaermen OK." - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Aufwaermen" - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Filament-Wechsel" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Wechsel erfolgr.!" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Wechsel ok?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Pruefe Bett " - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Pruefe Endschalter" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Pruefe Duese " - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Pruefe Sensoren " - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Pruefe X Achse " - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Pruefe Y Achse " - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Pruefe Z Achse " - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Extruder waehlen:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Waehle Filament:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -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:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Infoanzeige" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Wurde Filament 1 geladen?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Filament einlegen" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Ist das Filament geladen?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Ist es wirklich PLA Filament?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Ist PLA Filament geladen?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "Liegt das Stahlblech auf dem Heizbett?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Letzte Druckfehler" - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Letzter Druck" - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Linker Luefter?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Links" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Links [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Lineare Korrektur" - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Z einstellen" - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Filament laden" - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Lade Farbe" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Filament laedt" - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Lose Riemenscheibe" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "In Druckduese laden" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Erste-Schicht Kal." - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Hauptmenue" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 -msgid "Measuring reference height of calibration point" -msgstr "Messen der Referenzhoehe des Kalibrierpunktes" - -# MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 -msgid "Mesh Bed Leveling" -msgstr "MeshBett Ausgleich" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 -msgid "MMU OK. Resuming position..." -msgstr "MMU OK. Position wiederherstellen..." - -# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Temperatur wiederherstellen..." - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Schraeglauf" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "MMU Fehler" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "MMU Ladefehler" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "MMU Ladefehler" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Weiterdrucken..." - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Modus [Normal]" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Modus [leise]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "MMU erfordert Benutzereingriff." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "MMU Netzfehler" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Modus [Stealth]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Modus[Auto Power]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Modus[Hohe Leist]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU2 verbunden" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Achse bewegen" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Bewege X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Bewege Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Bewege Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Keine Bewegung." - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "Keine SD Karte" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "N.V." - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "Nein" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "Nicht angeschlossen" - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Neue Firmware- Version verfuegbar:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Dreht sich nicht" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Jetzt werde ich die Duese fuer PLA vorheizen." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Duese" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: 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:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Testdruck jetzt von Stahlblech entfernen." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "Duesevent." - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Druck pausieren" - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "PID Kal. " - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "PID Kalib. fertig" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "PID Kalibrierung" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "PINDA erwaermen" - -# MSG_PAPER c=20 r=8 -#: 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:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf." - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -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:7881 -msgid "Please check :" -msgstr "Bitte pruefe:" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Bitte laden Sie zuerst PLA Filament." - -# MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 -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: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:68 -msgid "Please press the knob to unload filament" -msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen." - -# -#: ultralcd.cpp:4889 -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:70 -msgid "Please pull out filament immediately" -msgstr "Bitte ziehen Sie das Filament sofort heraus" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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: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:4355 -msgid "Please run XYZ calibration first." -msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren." - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Bitte warten" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Bitte zuerst Transportsicherungen entfernen." - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Duese vorheizen!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Vorheizen" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Vorheizen der Duese. Bitte warten." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Bitte aktualisieren." - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Netzfehler" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Druck abgebrochen" - -# -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Heizen zum Laden" - -# -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Heizen zum Entladen" - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "Druckvent.:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Drucken von SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "Knopf druecken zum" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Druck pausiert" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen" - -# 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 "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "Druckvent." - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Hinten [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Druck wiederherst " - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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." - -# -#: -msgid "Prusa i3 MK3S OK." -msgstr "" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "Reset XYZ Kalibr." - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "Ruecksetzen" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Druck fortsetzen" - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Druck fortgesetzt" - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Rechts [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "RPi Port [an]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "RPi Port [aus]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -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:5322 -msgid "SD card [normal]" -msgstr "SD Karte [normal]" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "SD Karte[flshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Rechts" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Suche Bett Kalibrierpunkt" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Waehle Sprache" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "Selbsttest OK" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Selbsttest start " - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Selbsttest " - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Selbsttest Fehler!" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Selbsttest Error " - -# MSG_FORCE_SELFTEST c=20 r=8 -#: 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:5045 -msgid "Select nozzle preheat temperature which matches your material." -msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht." - -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "PLA Filament auswaehlen:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Temp. einstellen:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Einstellungen" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Endschalter Status" - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Sensorstatus" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Sort. [ohne]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Sort. [Zeit]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Schwer.Schr:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Sort. [Alphabet]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Sortiere Dateien" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Sound [laut]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Leicht.Schr:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Sound [stumm]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Sound [einmal]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Sound [leise]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Geschwindigkeit" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Dreht sich" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -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:6839 -msgid "Statistics " -msgstr "Statistiken " - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Druck abbrechen" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "GESTOPPT." - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Ausgetauscht" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Temp Kalib. " - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Temp. Kal. [an]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Temp. Kal. [aus]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Temp. kalibrieren" - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Temperaturkalibrierung fehlgeschlagen" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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:5650 -msgid "Temperature" -msgstr "Temperatur" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "Temperaturen" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Gesamtes Filament" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Gesamte Druckzeit" - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Feineinstellung" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Entladen" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Gesamte Fehler" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "Filament laden" - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "Filament entladen" - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Filament entladen" - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Filament auswerfen" - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "Gesamt" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Beim Druck benutzt" - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Spannungen" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "unbekannt" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Warte auf Benutzer.." - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -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:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "Warten, bis PINDA- Sonde abgekuehlt ist" - -# -#: ultralcd.cpp:4868 -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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Warnung: Platinentyp wurde geaendert." - -# MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 -msgid "Warning: printer type changed." -msgstr "Warnung: Druckertyp wurde geaendert." - -# MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 -msgid "Was filament unload successful?" -msgstr "Konnten Sie das Filament entnehmen?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Verdrahtungsfehler" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "Assistent" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "XYZ Kal. Details" - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Ja" - -# MSG_WIZARD_QUIT c=20 r=8 -#: 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:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "X-Korrektur:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -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:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Alle laden" - -# -#: ultralcd.cpp:3882 -msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden." - -# -#: ultralcd.cpp:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." - -"XYZ calibration failed. Right front calibration point not reachable." -#: -msgid "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." -msgstr - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Y Entfernung vom Min" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Y-Korrektur:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [aus]" - -# -#: messages.c:57 -msgid "Back" -msgstr "Zurueck" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Kontrolle" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Falschtriggerung" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [ohne]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [strikt]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [warnen]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "HW Einstellungen" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Magnet Komp. [nv]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Magnet Komp. [Aus]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Magnet Komp. [An]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Gitter [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Gitter [7x7]" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "MeshBett Ausgleich" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "MK3S-Firmware auf MK3-Drucker erkannt" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "MMU Modus[Normal]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "MMU Mod.[Stealth]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Moduswechsel erfolgt..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modell [ohne]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modell [strikt]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modell [warnen]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Duese D. [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Duese D. [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Duese D. [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Duese [ohne]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Duese [strikt]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Duese [warnen]" - -# -#: util.cpp:510 -msgid "G-code sliced for a different level. Continue?" -msgstr "G-Code ist fuer 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 fuer 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 fuer 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 fuer 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 fuer 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 fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "" - -# -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Heizen zum Schnitt" - -# -#: ultralcd.cpp:2462 -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:6683 -msgid "Rename" -msgstr "Umbenennen" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Auswahl" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Sensor Info" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Blech" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Sound [Assist]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Stahlbleche" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Z-Korrektur:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-Probe Nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-Probe Nr. [3]" - +# Translation of Prusa-Firmware into German. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:08:56 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:08:56 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 oder aelter" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 oder neuer" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " von 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " von 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] Punktversatz" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Abbruch" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Z Anpassen:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Alles richtig " + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Alles abgeschlossen. Viel Spass beim Drucken!" + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Raumtemp." + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "und Knopf druecken" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Sind linke+rechte Z- Schlitten ganz oben?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "Startposition" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "AutoLaden Filament" + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +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:8327 +msgid "Axis length" +msgstr "Achsenlaenge" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Achse" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Bett / Heizung" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Bett OK" + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Bett aufwaermen" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Ausgleich Bett ok" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Riementest " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Hell" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Helligkeit" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Bett" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Gurtstatus" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Stromausfall! Druck wiederherstellen?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Kalibriere Start" + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Kalibrierung XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Kalibrierung Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Kalibrieren" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Kalibrierung Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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:865 +msgid "Calibration done" +msgstr "Kalibrierung OK" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Kalibrierung" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Abbruch" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "SD Karte entfernt" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Falsche Farbe" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Abkuehlen" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Gewaehlte Sprache kopieren?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Crash Erk." + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus." + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Crash erkannt." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Crash erkannt. Druck fortfuehren?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Aktuelles" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Datum:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Motoren aus" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 "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_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +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=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "E-Korrektur:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Filamentauswurf" + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "werfe Filament aus" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Ende nicht getroffen" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "Endanschlag" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "Endschalter" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Fehler - statischer Speicher wurde ueberschrieben" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Fil. schneiden" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Messer" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Schneide filament" + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Dimm" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "FEHLER:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "Extruder Luefter:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "Extruder Info" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "MMU-Fehler" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autoladen" + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Fehlerstatistik" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Luefter-Tempo" + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Lueftertest" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Luefter Chk." + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "" + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Filam. Maengel" + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filament extrudiert mit richtiger Farbe?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Fil. nicht geladen" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Filamentsensor" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Filament benutzt" + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Druckzeit" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS Aktion" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 oder neuer" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "Datei unvollstaendig Trotzdem fortfahren?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Bewegung beenden" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Erste-Schicht Kal." + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +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:727 +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:7125 +msgid "Flow" +msgstr "Durchfluss" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Vorderer Luefter?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Vorne [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Vorderer/linke Luefter" + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Heizung/Thermistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Heizung durch Sicherheitstimer deaktiviert." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Aufwaermen OK." + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Aufwaermen" + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Filament-Wechsel" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Wechsel erfolgr.!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Wechsel ok?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Pruefe Bett " + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Pruefe Endschalter" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Pruefe Duese " + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Pruefe Sensoren " + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Pruefe X Achse " + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Pruefe Y Achse " + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Pruefe Z Achse " + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Extruder waehlen:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Waehle Filament:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Infoanzeige" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Filament einlegen" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Ist das Filament geladen?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Liegt das Stahlblech auf dem Heizbett?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Letzte Druckfehler" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche." + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Letzter Druck" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Linker Luefter?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Links" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Links [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Lineare Korrektur" + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Z einstellen" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf." + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Filament laden" + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Lade Farbe" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Filament laedt" + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Lose Riemenscheibe" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "In Druckduese laden" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Erste-Schicht Kal." + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Hauptmenue" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Hell.wert" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Dimmwert" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Messen der Referenzhoehe des Kalibrierpunktes" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "MeshBett Ausgleich" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Position wiederherstellen..." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Temperatur wiederherstellen..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Schraeglauf" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "MMU Fehler" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "MMU Ladefehler" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "MMU Ladefehler" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Weiterdrucken..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Modus" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "MK3-Firmware am MK3S-Drucker erkannt" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Leise" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "MMU erfordert Benutzereingriff." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "MMU Netzfehler" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Auto Leist" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Hohe leist" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 verbunden" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Achse bewegen" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Bewege X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Bewege Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Bewege Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Keine Bewegung." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Keine SD Karte" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "N/V" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "Nein" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "Nicht angeschlossen" + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Neue Firmware- Version verfuegbar:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Dreht sich nicht" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Jetzt werde ich die Duese fuer PLA vorheizen." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Duese" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +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:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Testdruck jetzt von Stahlblech entfernen." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Duesevent." + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Druck pausieren" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "PID Kal. " + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "PID Kalib. fertig" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "PID Kalibrierung" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "PINDA erwaermen" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +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:8259 +msgid "Please check :" +msgstr "Bitte pruefe:" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +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_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +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 +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 +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 +msgid "Please pull out filament immediately" +msgstr "Bitte ziehen Sie das Filament sofort heraus" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +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:4583 +msgid "Please run XYZ calibration first." +msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren." + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Bitte warten" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Bitte zuerst Transportsicherungen entfernen." + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Duese vorheizen!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Vorheizen" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Vorheizen der Duese. Bitte warten." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Bitte aktualisieren." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Netzfehler" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Druck abgebrochen" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Heizen zum Laden" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Heizen zum Entladen" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "Druckvent.:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Drucken von SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Knopf druecken zum" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Druck pausiert" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen" + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +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." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Druckvent." + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Bitte laden Sie zuerst das Filament." + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Hinten [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Druck wiederherst " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +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." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reset XYZ Kalibr." + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "Ruecksetzen" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Druck fortsetzen" + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Druck fortgesetzt" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Rechts [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +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_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "SD Karte" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Rechts" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Suche Bett Kalibrierpunkt" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Waehle Sprache" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "Selbsttest OK" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Selbsttest start " + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Selbsttest " + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Selbsttest Fehler!" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Selbsttest Error " + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +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:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Temp. einstellen:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Einstellungen" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Endschalter Status" + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Sensorstatus" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Sort." + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Ohne" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Zeit" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Schwer.Schr:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Sortiere Dateien" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Laut" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Leicht.Schr:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Einmal" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Geschwindigkeit" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Dreht sich" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +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:6978 +msgid "Statistics " +msgstr "Statistiken " + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Druck abbrechen" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "GESTOPPT." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Ausgetauscht" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Filament auswaehlen:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Temp Kalib." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Temp. kalibrieren" + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Temperaturkalibrierung fehlgeschlagen" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "Temperatur" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Temperaturen" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Gesamtes Filament" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Gesamte Druckzeit" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Feineinstellung" + +# +#: +msgid "Unload" +msgstr "Entladen" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Gesamte Fehler" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "Filament laden" + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "Filament entladen" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Filament entladen" + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Filament auswerfen" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Gesamt" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Beim Druck benutzt" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Spannungen" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "unbekannt" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Warte auf Benutzer.." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +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:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Warten, bis PINDA- Sonde abgekuehlt ist" + +# +#: +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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Warnung: Platinentyp wurde geaendert." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Warnung: Druckertyp wurde geaendert." + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Konnten Sie das Filament entnehmen?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Verdrahtungsfehler" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "Assistent" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "XYZ Kal. Details" + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Ja" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +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:3904 +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:3901 +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_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Auszeit" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "X-Korrektur:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +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:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Alle laden" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Y Entfernung vom Min" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Y-Korrektur:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "Aus" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "An" + +# +#: messages.c:53 +msgid "Back" +msgstr "Zurueck" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Kontrolle" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Falschtriggerung" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Strikt" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Warnen" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "HW Einstellungen" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Magnet Komp." + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Gitter" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "MeshBett Ausgleich" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "MK3S-Firmware auf MK3-Drucker erkannt" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "MMU Modus" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Moduswechsel erfolgt..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modell" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Duese D." + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-Code ist fuer einen anderen Level geslict. Fortfahren?" + +# +#: util.cpp:520 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "G-Code ist fuer einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +#: util.cpp:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-Code ist fuer einen anderen Drucker geslict. Fortfahren?" + +# +#: util.cpp:437 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +#: util.cpp:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-Code ist fuer eine neuere Firmware geslict. Fortfahren?" + +# +#: util.cpp:487 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Heizen zum Schnitt" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Heizen zum Auswurf" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?" + +# +#: util.cpp:401 +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." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Umbenennen" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Auswahl" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Sensor Info" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Blech" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "" + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Stahlbleche" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Z-Korrektur:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "" + diff --git a/lang/po/Firmware_es.po b/lang/po/Firmware_es.po index e7d515413..a8073a837 100644 --- a/lang/po/Firmware_es.po +++ b/lang/po/Firmware_es.po @@ -1,1812 +1,1842 @@ -# Translation of Prusa-Firmware into Spanish. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:05:16 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:05:16 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr " de 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr " de 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "[0;0] punto offset" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Cancelar" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Ajustar-Z:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Todo bien" - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Terminado! Feliz impresion!" - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Ambiente" - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "Haz clic" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -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:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "Llevar al origen" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "Carga automatica de filamento" - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -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:2813 -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:7949 -msgid "Axis length" -msgstr "Longitud del eje" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Eje" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Base / Calentador" - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Base preparada" - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Calentando Base" - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -msgstr "Corr. de la cama" - -# 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 "Nivelacion fallada. Sensor no funciona. Restos en boquilla? Esperando reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Base" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Estado de la correa" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "Se fue la luz. ?Reanudar la impresion?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Calibrando posicion inicial" - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Calibrar XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Calibrar Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Calibrar" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Calibrando Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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:816 -msgid "Calibration done" -msgstr "Calibracion OK" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "Calibracion" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Cancelar" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "Tarjeta retirada" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Color no homogeneo" - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Enfriar" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Copiar idioma seleccionado?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Det. choque [act]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Dec. choque [N/D]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Det. choque [ina]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Choque detectado." - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Choque detectado. Continuar impresion?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "Choque" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Actual" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Fecha:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -msgid "Disable steppers" -msgstr "Apagar motores" - -# 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 "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:5070 -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=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "Corregir-E:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Expulsar filamento" - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Expulsar" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "Expulsando filamento" - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Endstop no alcanzado" - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -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:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "Vent.extrusor:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "Informacion del extrusor" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "Extruir" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "Estadistica de fallos MMU" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autocarg.Fil[act]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autocarg.Fil[N/D]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autocarg.Fil[ina]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Estadistica de fallos" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Velocidad Vent." - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Test ventiladores" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Comprob.vent[act]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Comprob.vent[ina]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Sensor Fil. [act]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Sensor Fil. [N/D]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Sensor Fil. [ina]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Filam. acabado" - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Es nitido el color nuevo?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Fil. no introducido" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Sensor de filamento" - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Filamento usado" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Tiempo de imp.:" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "Archivo incompleto. ?Continuar de todos modos?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Term. movimientos" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Cal. primera cap." - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -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: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:6932 -msgid "Flow" -msgstr "Flujo" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Vent. frontal?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Frontal [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Ventiladores frontal/izquierdo" - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Calentador/Termistor" - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Calentadores desactivados por el temporizador de seguridad." - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Calentamiento acabado." - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Calentando..." - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Cambiar filamento" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Cambio correcto" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Cambio correcto?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Control base cal." - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Control endstops" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Control fusor" - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Comprobando los sensores" - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Control sensor X" - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Control sensor Y" - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Control sensor Z" - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Elegir extrusor:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Elije filamento:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "Filamento" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -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:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Monitorizar" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "?Esta cargado el filamento 1?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Introducir filamento" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Esta el filamento cargado?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Es el filamento PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Esta el filamento PLA cargado?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "?Esta colocada la lamina de acero sobre la base?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Ultimas impresiones fallidas" - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Ultima impresion" - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Vent. izquierdo?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Izquierda" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Izquierda [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Correccion de Linealidad" - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Micropaso Eje Z" - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Introducir filam." - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Cambiando color" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Introduciendo filam." - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Polea suelta" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "Cargar a la boquilla" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Cal. primera cap." - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Menu principal" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 -msgid "Measuring reference height of calibration point" -msgstr "Midiendo altura del punto de calibracion" - -# MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 -msgid "Mesh Bed Leveling" -msgstr "Nivelacion Mesh Level" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 -msgid "MMU OK. Resuming position..." -msgstr "MMU OK. Restaurando posicion..." - -# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Restaurando temperatura..." - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Desviacion med:" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "Fallos MMU" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "Carga MMU fallida" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "Carga MMU falla" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Resumiendo..." - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Modo [Normal]" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Modo [silencio]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "MMU necesita atencion del usuario." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "Fallo de energia en MMU" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Modo [Silencio]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Modo[fuerza auto]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Modo [rend.pleno]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU2 conectado" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Mover ejes" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Mover X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Mover Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Mover Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Sin movimiento" - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "No hay tarjeta SD" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "N/A" - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "No hay conexion " - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Nuevo firmware disponible:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Ventilador no gira" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Ahora precalentare la boquilla para PLA." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Boquilla" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: 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:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Ahora retira la prueba de la lamina de acero." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "Vent. capa" - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Pausar impresion" - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "Cal. PID " - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "Cal. PID terminada" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "Calibracion PID" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "Calentando PINDA" - -# MSG_PAPER c=20 r=8 -#: 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:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Limpia la superficie de la base, por favor, y haz clic" - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -msgid "Please clean the nozzle for calibration. Click when done." -msgstr "Limpia boquilla para calibracion. Click cuando acabes." - -# MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7881 -msgid "Please check :" -msgstr "Controla :" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Carga el filamento PLA primero por favor." - -# MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 -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: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:68 -msgid "Please press the knob to unload filament" -msgstr "Por favor, pulsa el dial para descargar el filamento" - -# -#: ultralcd.cpp:4889 -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:70 -msgid "Please pull out filament immediately" -msgstr "Por favor retire el filamento de inmediato" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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: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:4355 -msgid "Please run XYZ calibration first." -msgstr "Por favor realiza la calibracion XYZ primero." - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Por Favor Espere" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Por favor retira los soportes de envio primero." - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Precalienta extrusor!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Precalentar" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Precalentando nozzle. Espera por favor." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Actualize por favor" - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Pulsa el dial para precalentar la boquilla y continue." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Cortes de energia" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Impresion cancelada" - -# -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Precalentar para cargar" - -# -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Precalentar para descargar" - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "Vent.fusor:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Menu tarjeta SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "Pulsa el dial" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Impresion en pausa" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Presiona el dial para continuar con la temperatura de la boquilla." - -# 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 "Impresora no esta calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "Vent.extr" - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "prusa3d.es" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Trasera [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Recuperando impresion" - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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." - -# -#: -msgid "Prusa i3 MK3S OK." -msgstr "" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "" - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Reanudar impres." - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Continuando impresion" - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Derecha [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Puerto RPi [act]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Puerto RPi [ina]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -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:5322 -msgid "SD card [normal]" -msgstr "Tarj. SD [normal]" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Tarj. SD[FlshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Derecha" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Buscando punto de calibracion base" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Cambiar el idioma" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Iniciar Selftest" - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Selftest" - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Error Selftest !" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Fallo Selftest" - -# MSG_FORCE_SELFTEST c=20 r=8 -#: 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:5045 -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:4780 -msgid "Select PLA filament:" -msgstr "Seleccionar filamento PLA:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Establecer temp.:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Configuracion" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Mostrar endstops" - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Estado del sensor" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Ordenar [ninguno]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Ordenar [fecha]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Incl.severa:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Ordenar [alfabet]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Ordenando archivos" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Sonido [alto]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Liger.incl.:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Sonido[silenciad]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Problema encontrado, nivelacion Z forzosa ..." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Sonido [una vez]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Sonido[silencios]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Velocidad" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Ventilador girando" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -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:6839 -msgid "Statistics " -msgstr "Estadisticas " - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Detener impresion" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "PARADA" - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "Soporte" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Intercambiado" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Cal. temp. " - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Cal. temp. [on]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Cal. temp. [off]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Calibracion temp." - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Fallo de la calibracion de temperatura" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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:5650 -msgid "Temperature" -msgstr "Temperatura" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "Temperaturas" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Filamento total:" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Tiempo total :" - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Ajustar" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Descargar" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Fallos totales" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "para cargar el filamento" - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "para descargar el filamento" - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Soltar filamento" - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Soltando filamento" - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Usado en impresion" - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Voltajes" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "desconocido" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Esperando ordenes" - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -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:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "Esperando a que se enfrie la sonda PINDA" - -# -#: ultralcd.cpp:4868 -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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Cuidado: el tipo de placa ha cambiado." - -# MSG_CHANGED_PRINTER c=20 r=4 -#: 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:3054 -msgid "Was filament unload successful?" -msgstr "?Se cargocon exito el filamento?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Error de conexion" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "Detalles de calibracion XYZ" - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "Calibracion XYZ fallada. Consulta el manual por favor." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Si" - -# MSG_WIZARD_QUIT c=20 r=8 -#: 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:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "Corregir-X:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -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:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Intr. todos fil." - -# -#: ultralcd.cpp:3882 -msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados." - -# -#: ultralcd.cpp:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable." - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Distancia en Y desde el min" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Corregir-Y:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr "[apag]" - -# -#: messages.c:57 -msgid "Back" -msgstr "atras" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Comprobaciones" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Falsa activacion" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "FINDA:" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware[ninguno]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware[estrict]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [aviso]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "Configuracion HW" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Comp. imanes [N/A]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Comp. imanes [Off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Comp. imanes [On]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Malla [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Malla [7x7]" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "Nivelacion Malla Base" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "Firmware MK3S detectado en impresora MK3" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Modo MMU [Normal]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Modo MMU[Silenci]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Cambio de modo progresando ..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modelo [ninguno]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modelo [estricto]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modelo [aviso]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam. nozzl[0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam. nozzl[0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam. nozzl[0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Nozzle [ninguno]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Nozzle [estricto]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Nozzle [aviso]" - -# -#: util.cpp:510 -msgid "G-code sliced for a different level. Continue?" -msgstr "Codigo 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 "Codigo G laminado para un nivel diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." - -# -#: util.cpp:427 -msgid "G-code sliced for a different printer type. Continue?" -msgstr "Codigo 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 "Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." - -# -#: util.cpp:477 -msgid "G-code sliced for a newer firmware. Continue?" -msgstr "Codigo G laminado para nuevo firmware. ?Continuar?" - -# -#: util.cpp:483 -msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." -msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "PINDA:" - -# -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Precalentando para laminar" - -# -#: ultralcd.cpp:2462 -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:6683 -msgid "Rename" -msgstr "Renombrar" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Seleccionar" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Info sensor" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Lamina" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Sonido [asistido]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Lamina de acero" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Corregir-Z:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-sensor nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-sensor nr. [3]" - +# Translation of Prusa-Firmware into Spanish. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:09:21 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:09:21 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 o mayor" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 o mas nueva" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " de 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " de 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] punto offset" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Cancelar" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Ajustar-Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Todo bien" + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Terminado! Feliz impresion!" + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Ambiente" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "Haz clic" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Carros Z izq./der. estan arriba maximo?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "Llevar al origen" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "Carga auto. filam." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +msgid "Autoloading filament is active, just press the knob and insert filament..." +msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..." + +# MSG_SELFTEST_AXIS_LENGTH +#: ultralcd.cpp:8327 +msgid "Axis length" +msgstr "Longitud del eje" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Eje" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Base / Calentador" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Base preparada" + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Calentando Base" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Corr. de la cama" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test cinturon " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Brill." + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Brillo" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Base" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Estado de correa" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Se fue la luz. ?Reanudar la impresion?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Calibrando posicion inicial" + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Calibrar XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Calibrar Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Calibrar" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Calibrando Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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:865 +msgid "Calibration done" +msgstr "Calibracion OK" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Calibracion" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Cancelar" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "Tarjeta retirada" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Color no homogeneo" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Enfriar" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Copiar idioma seleccionado?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Det. choque" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla." + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Choque detectado." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Choque detectado. Continuar impresion?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "Choque" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Actual" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Fecha:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Apagar motores" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 "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_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +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=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Corregir-E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Expulsar fil." + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Expulsando filamento" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Endstop no alcanzado" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Error - se ha sobre-escrito la memoria estatica" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Cortar filament" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Cuchillo" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Corte de filament" + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "Vent.extrusor:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "Info. del extrusor" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "Extruir" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Estadistica de fallos MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autocarg.fil." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Estadistica de fallos" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Velocidad Vent" + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test ventiladores" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Comprob.vent" + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Sensor Fil." + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Filam. acabado" + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Es nitido el color nuevo?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Fil. no introducido" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Sensor de filamento" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Filamento usado" + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Tiempo de imp.:" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS accion" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 o +nueva" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "Archivo incompleto. ?Continuar de todos modos?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Term. movimientos" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Cal. primera cap." + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +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:727 +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:7125 +msgid "Flow" +msgstr "Flujo" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Vent. frontal?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Frontal [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Ventiladores frontal/izquierdo" + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Calentador/Termistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Calentadores desactivados por el temporizador de seguridad." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Calentando acabado." + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Calentando..." + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Cambiar filamento" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Cambio correcto" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Cambio correcto?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Control base cal." + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Control endstops" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Control fusor" + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Comprobando sensores" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Control sensor X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Control sensor Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Control sensor Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Elegir extrusor:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Elije filamento:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "Filamento" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Voy a hacer Calibracion Z ahora." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Monitorizar" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Introducir filamento" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Esta el filamento cargado?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "?Esta colocada la lamina sobre la base" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Ultimas impresiones fallidas" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero." + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Ultima impresion" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Vent. izquierdo?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Izquierda" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Izquierda [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Correccion de Linealidad" + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Micropaso Eje Z" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial." + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Introducir filam." + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Cambiando color" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Introduciendo filam." + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Polea suelta" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Cargar a la boquilla" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Cal. primera cap." + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Menu principal" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Valor brill." + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Midiendo altura del punto de calibracion" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "Nivelacion Mesh Level" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Restaurando posicion..." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Restaurando temperatura..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Desviacion med:" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Fallos MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Carga MMU fallida" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "Carga MMU falla" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Resumiendo..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Modo" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detectado en impresora MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Silencio" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "MMU necesita atencion del usuario." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "Fallo de energia en MMU" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Silencio" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Fuerza auto" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Rend.pleno" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 conectado" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Mover ejes" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Mover X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Mover Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Mover Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Sin movimiento" + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "No hay tarjeta SD" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "N/A" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "No hay conexion " + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Nuevo firmware disponible:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Ventilador no gira" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Ahora precalentare la boquilla para PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Boquilla" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +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:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Ahora retira la prueba de la lamina de acero." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Vent. capa" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Pausar impresion" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "Cal. PID " + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "Cal. PID terminada" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "Calibracion PID" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Calentando PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Limpia la superficie de la base, por favor, y haz clic" + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +msgid "Please clean the nozzle for calibration. Click when done." +msgstr "Limpia boquilla para calibracion. Click cuando acabes." + +# MSG_SELFTEST_PLEASECHECK +#: ultralcd.cpp:8259 +msgid "Please check :" +msgstr "Controla :" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +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_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +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 +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 +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 +msgid "Please pull out filament immediately" +msgstr "Por favor retire el filamento de inmediato" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +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:4583 +msgid "Please run XYZ calibration first." +msgstr "Por favor realiza la calibracion XYZ primero." + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Por Favor Espere" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Por favor retira los soportes de envio primero." + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Precalienta extrusor" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Precalentar" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Precalentando nozzle. Espera por favor." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Actualize por favor" + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Pulsa el dial para precalentar la boquilla y continue." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pausa" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Cortes de energia" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Impresion cancelada" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Precalent. cargar" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Precalent. descargar" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "Vent.fusor:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Menu tarjeta SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Pulsa el dial" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Impresion en pausa" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Presiona el dial para continuar con la temperatura de la boquilla." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +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." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Vent. extr" + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Por favor, cargar primero el filamento. " + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "prusa3d.es" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Trasera [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Primero descargue el filamento, luego repita esta accion." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Recuper. impresion " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +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." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "" + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Reanudar impres." + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Continuan. impresion" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Derecha [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Puerto RPi" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +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_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Tarj. SD" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Derecha" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Buscando punto de calibracion base" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Cambiar el idioma" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Iniciar Selftest" + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "" + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Error Selftest !" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Fallo Selftest" + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +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:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. " + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Establecer temp.:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Configuracion" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Mostrar endstops" + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Estado del sensor" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Ordenar" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Ninguno" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Fecha" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Incl.severa:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfabet" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Ordenando archivos" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Alto" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Liger.incl.:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Sonido" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Problema encontrado, nivelacion Z forzosa ..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Una vez" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Velocidad" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Ventilador girando" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +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:6978 +msgid "Statistics " +msgstr "Estadisticas " + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Detener impresion" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "PARADA" + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "Soporte" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Intercambiado" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Selecciona filamento:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Cal. temp." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Selecciona la temperatura adecuada a tu material." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Calibracion temp." + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Fallo de la calibracion de temperatura" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensor verificado, retire el filamento ahora." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "Temperatura" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Temperaturas" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Filamento total" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Tiempo total" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Ajustar" + +# +#: +msgid "Unload" +msgstr "Descargar" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Fallos totales" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "para cargar el filamento" + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "para descargar el filamento" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Soltar filamento" + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Soltando filamento" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Usado en impresion" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Voltajes" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "desconocido" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Esperando ordenes" + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +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:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Esperando a que se enfrie la sonda PINDA" + +# +#: +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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Cuidado: el tipo de placa ha cambiado." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Cuidado: Ha cambiado el tipo de impresora." + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "?Se cargocon exito el filamento?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Error de conexion" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "Detalles cal. XYZ" + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Calibracion XYZ fallada. Consulta el manual por favor." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Si" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +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:3904 +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:3901 +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_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Expirar" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Corregir-X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +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:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Intr. todos fil." + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Distancia en Y desde el min" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "La verificacion fallo, retire el filamento e intente nuevamente." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Corregir-Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "Ina" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Act" + +# +#: messages.c:53 +msgid "Back" +msgstr "atras" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Comprobaciones" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Falsa activacion" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "FINDA:" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Estrict" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Aviso" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "Configuracion HW" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Comp. imanes" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Malla" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "Nivelacion Malla Base" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S detectado en impresora MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Modo MMU" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Cambio de modo progresando ..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modelo" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam. nozzl" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "Codigo G laminado para un nivel diferente. ?Continuar?" + +# +#: util.cpp:520 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "Codigo G laminado para un nivel diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." + +# +#: util.cpp:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "Codigo G laminado para un tipo de impresora diferente. ?Continuar?" + +# +#: util.cpp:437 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." + +# +#: util.cpp:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "Codigo G laminado para nuevo firmware. ?Continuar?" + +# +#: util.cpp:487 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "PINDA:" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Precalent. laminar" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Precalent. expulsar" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro nozzle impresora difiere de cod.G. ?Continuar?" + +# +#: util.cpp:401 +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." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Renombrar" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Seleccionar" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Info sensor" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Lamina" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asistido" + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Lamina de acero" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Corregir-Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Z-sensor nr." + diff --git a/lang/po/Firmware_fr.po b/lang/po/Firmware_fr.po index df3f51df4..05eb39205 100644 --- a/lang/po/Firmware_fr.po +++ b/lang/po/Firmware_fr.po @@ -1,1817 +1,1842 @@ -# Translation of Prusa-Firmware into French. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:06:22 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:06:22 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr "de 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr "de 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "Offset point [0;0]" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode feutre" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Annuler" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Ajuster Z:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Tout est correct" - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Tout est pret. Bonne impression!" - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Ambiant" - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "et pressez le bouton" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -msgid "Are left and right Z~carriages all up?" -msgstr "Z~carriages gauche + droite tout en haut?" - -# MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "Mise a 0 des axes" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "Autocharge du fil." - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -msgid "Autoloading filament available only when filament sensor is turned on..." -msgstr "Chargement auto du filament uniquement si le capteur de filament est active." - -# MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 -msgid "Autoloading filament is active, just press the knob and insert filament..." -msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil." - -# MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 -msgid "Axis length" -msgstr "Longueur de l'axe" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Axe" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Lit / Chauffage" - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Plateau termine" - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Chauffe du lit" - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -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 bed leveling. Capt. non declenche. Debris sur buse? En attente d'un reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Lit" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Statut courroie" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "Coupure detectee. Reprendre impression?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Calib. mise a 0" - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Calibrer XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Calibrer Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Calibrer" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Calibration Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." - -# MSG_HOMEYZ_DONE -#: ultralcd.cpp:816 -msgid "Calibration done" -msgstr "Calibration terminee" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Annuler" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "Carte retiree" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Couleur incorrecte" - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Refroidissement" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Copier la langue selectionne?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Detect.crash [on]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Detect.crash[N/A]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Detect.crash[off]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Crash detecte." - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Crash detecte. Poursuivre l'impression?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Actuel" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Date:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -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 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:5070 -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 plateau chauffant?" - -# MSG_EXTRUDER_CORRECTION c=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "Correct-E:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Remonter le fil." - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Remonter" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "Le fil. remonte" - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Butee non atteinte" - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "Butee" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "Butees" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -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:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "ERREUR:" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "Ventilo extrudeur:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "Infos extrudeur" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "Extrudeur" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "Stat. d'echec MMU" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autochargeur [on]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autochargeur[N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autochargeur[off]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Stat. d'echec" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Vitesse vent." - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Test du ventilateur" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Verif vent. [on]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Verif vent. [off]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Capteur Fil. [on]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Capteur Fil.[N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Capteur Fil.[off]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Fins de filament" - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Filament extrude et avec bonne couleur?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Filament non charge" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Capteur de filament" - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Filament utilise" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Temps d'impression" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "Fichier incomplet. Continuer qd meme?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Mouvement final" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Cal. 1ere couche" - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -msgid "First, I will run the selftest to check most common assembly problems." -msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs." - -# -#: mmu.cpp:724 -msgid "Fix the issue and then press button on MMU unit." -msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU." - -# MSG_FLOW -#: ultralcd.cpp:6932 -msgid "Flow" -msgstr "Flux" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Ventilo impr avant?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Avant [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Ventilos avt/gauche" - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Chauffage/Thermistor" - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Chauffage desactivee par le compteur de securite." - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Chauffe terminee." - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Chauffe" - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Changer filament" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Changement reussi!" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Change correctement?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Verification du lit" - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Verification butees" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Verif. du hotend" - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Verif. des capteurs" - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Verification axe X" - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Verification axe Y" - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Verification axe Z" - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Choisir extrudeur:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Choix du filament:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -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:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Ecran d'info" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Fil.1 est-il charge?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Inserez le filament" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Fil. est-il charge?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Est-ce du filament PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Fil. PLA est-il charge?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "Plaque d'impression sur le lit chauffant?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Echecs derniere imp." - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Derniere impres." - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Ventilo tete gauche?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Gauche" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Gauche [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Correction lin." - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Ajuster Z en dir." - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Charger filament" - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Charg. de la couleur" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Chargement du fil." - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Poulie lache" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "Charger la buse" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Cal. 1ere couche" - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Menu principal" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: 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:5763 -msgid "Mesh Bed Leveling" -msgstr "" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: 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:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Rechauffage de la buse..." - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Deviat.mesuree" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "Echecs MMU" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "Echec chargement MMU" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "Echecs charg. MMU" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Reprise ..." - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mode [feutre]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "Le MMU necessite l'attention de l'utilisateur." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "Echecs alim. MMU" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mode [furtif]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mode [puiss.auto]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mode[haute puiss]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU2 connecte" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "Moteur" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Deplacer l'axe" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Deplacer X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Deplacer Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Deplacer Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Pas de mouvement." - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "Pas de carte SD" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "" - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "Non" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "Non connecte" - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Nouvelle version de firmware disponible:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Ne tourne pas" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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 la surface du plateau chauffant." - -# MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Maintenant je vais prechauffer la buse pour du PLA." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Buse" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: 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 regles" - -# -#: ultralcd.cpp:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Retirez maintenant l'impression de test de la plaque en acier." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "Vent. buse" - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Pause de l'impr." - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "Calib. PID" - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "Calib. PID terminee" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "Calibration PID" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "Chauffe de la PINDA" - -# MSG_PAPER c=20 r=8 -#: 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 vite l'imprimante." - -# MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Nettoyez la plaque en acier et appuyez sur le bouton." - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -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:7881 -msgid "Please check :" -msgstr "Verifiez:" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 -msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." -msgstr "Merci de consulter 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:4894 -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." - -# MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4795 -msgid "Please load PLA filament first." -msgstr "Chargez d'abord le filament PLA." - -# MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 -msgid "Please open idler and remove filament manually." -msgstr "Ouvrez l'idler et retirez le filament manuellement." - -# MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:65 -msgid "Please place steel sheet on heatbed." -msgstr "Placez la plaque en acier sur le plateau chauffant." - -# MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:68 -msgid "Please press the knob to unload filament" -msgstr "Appuyez sur le bouton pour decharger le filament" - -# -#: ultralcd.cpp:4889 -msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." -msgstr "Inserez du PLA dans le 1er tube du MMU, appuyez sur le bouton pour le charger." - -# MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:70 -msgid "Please pull out filament immediately" -msgstr "Retirez immediatement le filament" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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:74 -msgid "Please remove steel sheet from heatbed." -msgstr "Retirez la plaque en acier du plateau chauffant." - -# MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4355 -msgid "Please run XYZ calibration first." -msgstr "Veuillez d'abord lancer la calibration XYZ." - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Merci de patienter" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Retirez d'abord les protections de transport." - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Prechauffez la buse!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Prechauffage" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Prechauffage de la buse. Merci de patienter." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Mettez a jour le FW." - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Coup.de courant" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Impression annulee" - -# c=20 r=1 -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Chauffe pour charger" - -# c=20 r=1 -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Chauf.pour decharger" - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "Vent. impr:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Impr. depuis la SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "App. sur sur bouton" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Impression en pause" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Appuyez sur le bouton pour rechauffer 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." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "Vent. impr" - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Arriere [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Recup. impression" - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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." - -# -#: -msgid "Prusa i3 MK3S OK." -msgstr "" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "Reinit. calib. XYZ" - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "Reinitialiser" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Reprendre impression" - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Reprise de l'impr." - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Droite [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Port RPi [on]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Port RPi [off]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" -msgstr "Lancement de 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:5322 -msgid "SD card [normal]" -msgstr "Carte SD [normal]" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "CarteSD [flshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Droite" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Recherche du point de calibration du lit" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Choisir langue" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "Auto-test OK" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Debut auto-test" - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Auto-test" - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Erreur auto-test!" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Echec de l'auto-test" - -# MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 -msgid "Selftest will be run to calibrate accurate sensorless rehoming." -msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur" - -# -#: ultralcd.cpp:5045 -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:4780 -msgid "Select PLA filament:" -msgstr "Selectionnez le fil. PLA:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Regler temp.:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Reglages" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Afficher butees" - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Etat capteur" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Tri [aucun]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Tri [heure]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Deviat.sev.:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Tri [alphabet]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Tri des fichiers" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Son [fort]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Deviat.leg.:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Son [muet]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Son [une fois]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Son [feutre]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Vitesse" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Tourne" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." -msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis." - -# MSG_STATISTICS -#: ultralcd.cpp:6839 -msgid "Statistics " -msgstr "Statistiques" - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Arreter impression" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "ARRETE." - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Echange" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Calib. Temp." - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Calib. Temp. [on]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Calib. Temp.[off]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Calibration temp." - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Echec de la calibration en temperature" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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 activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp." - -# MSG_TEMPERATURE -#: ultralcd.cpp:5650 -msgid "Temperature" -msgstr "" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Filament total" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Temps total impr." - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Regler" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Decharger" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Total des echecs" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "pour charger le fil." - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "pour decharger fil." - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Decharger fil." - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Dechargement fil." - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Utilise pdt impr." - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Tensions" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "inconnu" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Attente utilisateur..." - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -msgid "Waiting for nozzle and bed cooling" -msgstr "Attente du refroidissement des buse et plateau" - -# MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "Attente du refroidissement de la sonde PINDA" - -# -#: ultralcd.cpp:4868 -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 Remonter le fil. 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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Attention: Type de carte mere modifie." - -# MSG_CHANGED_PRINTER c=20 r=4 -#: 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:3054 -msgid "Was filament unload successful?" -msgstr "Dechargement du filament reussi?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Erreur de cablage" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "Assistant" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "Details calib. XYZ" - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "Echec calibration XYZ. Consultez le manuel." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Oui" - -# MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 -msgid "You can always resume the Wizard from Calibration -> Wizard." -msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant." - -# MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "Correct-X:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -msgid "XYZ calibration compromised. Front calibration points not reachable." -msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables." - -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Charger un par un" - -# -#: ultralcd.cpp:3882 -msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve." - -# -#: ultralcd.cpp:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable." - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Distance Y du min" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Correct-Y:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [off]" - -# -#: messages.c:57 -msgid "Back" -msgstr "Retour" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Verifications" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Faux declenchement" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "FINDA:" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [aucune]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware[stricte]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [avert]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "Config HW" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "IR:" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Compens. aim.[N/A]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Compens. aim.[off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Compens. aim. [on]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "Firmware MK3S detecte sur imprimante MK3" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Mode MMU [normal]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Mode MMU [feutre]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Changement de mode en cours..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modele [aucune]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modele [stricte]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modele [avert]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam. buse [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam. buse [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam. buse [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Buse [aucune]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Buse [stricte]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Buse [avert]" - -# -#: 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 "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." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "PINDA:" - -# c=20 r=1 -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Chauffe pour couper" - -# c=20 r=1 -#: ultralcd.cpp:2462 -msgid "Preheating to eject" -msgstr "Chauf. pour remonter" - -# -#: util.cpp:390 -msgid "Printer nozzle diameter differs from the G-code. Continue?" -msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le 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 dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." - -# -#: ultralcd.cpp:6683 -msgid "Rename" -msgstr "Renommer" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Selectionner" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Info capteur" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Plaque" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Son [assist]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Plaques en acier" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Correct-Z:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Mesurer x-fois [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Mesurer x-fois [3]" - -# -#: ultralcd.cpp:7039 -msgid "Z-probe nr. [5]" -msgstr "Mesurer x-fois [5]" - +# Translation of Prusa-Firmware into French. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:09:46 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:09:46 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 ou +ancien" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 ou +recent" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " de 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " de 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "Offset point [0;0]" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Annuler" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Ajuster Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Tout est correct" + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Tout est pret. Bonne impression!" + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Ambiant" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "et appuyez sur le bouton" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Z~carriages gauche + droite tout en haut?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "Mise a 0 des axes" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "Autocharge du fil." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "Chargement auto du filament uniquement si le capteur de filament est active." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +msgid "Autoloading filament is active, just press the knob and insert filament..." +msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil." + +# MSG_SELFTEST_AXIS_LENGTH +#: ultralcd.cpp:8327 +msgid "Axis length" +msgstr "Longueur de l'axe" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Axe" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Lit / Chauffage" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Plateau termine" + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Chauffe du lit" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Corr. niveau plateau" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test de courroie " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." +msgstr "Capt. non declenche pendant que je nivele le plateau. Debris sur buse? En attente d'un reset." + +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Brill." + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Luminosite" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Lit" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Statut courroie" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Coupure detectee. Reprendre impression?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Calib. mise a 0" + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Calibrer XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Calibrer Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Calibrer" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Calibration Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." + +# MSG_HOMEYZ_DONE +#: ultralcd.cpp:865 +msgid "Calibration done" +msgstr "Calibration terminee" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Annuler" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "Carte retiree" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Couleur incorrecte" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Refroidissement" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Copier la langue choisie?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Detect.crash" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran." + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Crash detecte." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Crash detecte. Poursuivre l'impression?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Actuel" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Date:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Desactiver moteurs" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 plateau n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" +msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?" + +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Correct-E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Remonter le fil." + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Le fil. remonte" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Butee non atteinte" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "Butee" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "Butees" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Erreur - la memoire statique a ete ecrasee" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Coupe filament" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Coupeur" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Je coupe filament" + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "ERREUR:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "Ventilo extrudeur:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "Infos extrudeur" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "Extrudeur" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Stat. d'echec MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autocharg." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Stat. d'echec" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Vitesse vent." + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test du ventilateur" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Verif vent." + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Capteur Fil." + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Fins filament" + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filament extrude et avec bonne couleur?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Filament non charge" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Capteur de filament" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Filament utilise" + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Temps d'impression" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 ou +recent" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "Fichier incomplet. Continuer qd meme?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Mouvement final" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Cal. 1ere couche" + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +msgid "First, I will run the selftest to check most common assembly problems." +msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs." + +# +#: mmu.cpp:727 +msgid "Fix the issue and then press button on MMU unit." +msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU." + +# MSG_FLOW +#: ultralcd.cpp:7125 +msgid "Flow" +msgstr "Flux" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Ventilo impr avant?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Avant [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Ventilos avt/gauche" + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Chauffage/Thermistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Chauffage desactivee par le compteur de securite." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Chauffe terminee." + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Chauffe" + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Changer filament" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Changement reussi!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Change correctement?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Verif. plateau chauf" + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Verification butees" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Verif. du hotend" + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Verif. des capteurs" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Verification axe X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Verification axe Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Verification axe Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Choisir extrudeur:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Choix du filament:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Je vais maintenant lancer la calibration Z." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Ecran d'info" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Inserez le filament" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Fil. est-il charge?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Est la plaque sur le plat. chauffant?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Echecs derniere imp." + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier." + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Derniere impres." + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Ventilo gauche?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Gauche" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Gauche [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Correction lin." + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Ajuster Z en dir." + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton." + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Charger filament" + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Charg. de la couleur" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Chargement du fil." + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Poulie lache" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Charger la buse" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Cal. 1ere couche" + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Menu principal" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Niveau brill" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Je mesure la hauteur de reference du point de calibrage" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Reprise de la position ..." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Rechauffage de la buse..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Deviat.mesuree" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Echecs MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Echec chargement MMU" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "Echecs charg. MMU" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Reprise ..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detecte sur imprimante MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Furtif" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "Le MMU necessite l'attention de l'utilisateur." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "Echecs alim. MMU" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Furtif" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Puiss.auto" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Haute puiss" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 connecte" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "Moteur" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Deplacer l'axe" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Deplacer X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Deplacer Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Deplacer Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Pas de mouvement." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Pas de carte SD" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "Non" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "Non connecte" + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Nouvelle version de firmware disponible:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Ne tourne pas" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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 la surface du plateau chauffant." + +# MSG_WIZARD_WILL_PREHEAT c=20 r=4 +#: ultralcd.cpp:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Maintenant je vais prechauffer la buse pour du PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Buse" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +msgid "Old settings found. Default PID, Esteps etc. will be set." +msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles" + +# +#: ultralcd.cpp:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Retirez maintenant l'impression de test de la plaque en acier." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Vent. buse" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Pause de l'impr." + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "Calib. PID" + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "Calib. PID terminee" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "Calibration PID" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Chauffe de la PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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 vite l'imprimante." + +# MSG_WIZARD_CLEAN_HEATBED c=20 r=8 +#: ultralcd.cpp:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +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:8259 +msgid "Please check :" +msgstr "Verifiez:" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." +msgstr "Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante." + +# MSG_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +msgid "Please open idler and remove filament manually." +msgstr "Ouvrez l'idler et retirez le filament manuellement." + +# MSG_PLACE_STEEL_SHEET c=20 r=4 +#: messages.c:61 +msgid "Please place steel sheet on heatbed." +msgstr "Placez la plaque en acier sur le plateau chauffant." + +# MSG_PRESS_TO_UNLOAD c=20 r=4 +#: messages.c:64 +msgid "Please press the knob to unload filament" +msgstr "Appuyez sur le bouton pour decharger le filament" + +# MSG_PULL_OUT_FILAMENT c=20 r=4 +#: messages.c:66 +msgid "Please pull out filament immediately" +msgstr "Retirez immediatement le filament" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +msgid "Please remove steel sheet from heatbed." +msgstr "Retirez la plaque en acier du plateau chauffant." + +# MSG_RUN_XYZ c=20 r=4 +#: Marlin_main.cpp:4583 +msgid "Please run XYZ calibration first." +msgstr "Veuillez d'abord lancer la calibration XYZ." + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Merci de patienter" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Retirez d'abord les protections de transport." + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Prechauffez la buse!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Prechauffage" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Prechauffage de la buse. Merci de patienter." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Mettez a jour le FW." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Coup.de courant" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Impression annulee" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Chauffe pour charger" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Chauf.pour decharger" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "Vent. impr:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Impr. depuis la SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "App. sur sur bouton" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Impression en pause" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Appuyez sur le bouton pour rechauffer la buse." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +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." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Vent. impr" + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Veuillez d'abord charger un filament." + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Arriere [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "SVP, dechargez le filament et reessayez." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Recup. impression " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +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." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reinit. calib. XYZ" + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "Reinitialiser" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Reprendre impression" + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Reprise de l'impr." + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Droite [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Port RPi" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" +msgstr "Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?" + +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Carte SD" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "FlshAir" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Droite" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Recherche du point de calibration du plateau chauffant" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Choisir langue" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "Auto-test OK" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Debut auto-test" + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Auto-test" + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Erreur auto-test!" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Echec de l'auto-test" + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +msgid "Selftest will be run to calibrate accurate sensorless rehoming." +msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur" + +# +#: ultralcd.cpp:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Regler temp.:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Reglages" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Afficher butees" + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Etat capteur" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Tri" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Aucun" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Heure" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Deviat.sev.:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Tri des fichiers" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Fort" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Deviat.leg.:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Son" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Une fois" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Vitesse" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Tourne" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." +msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis." + +# MSG_STATISTICS +#: ultralcd.cpp:6978 +msgid "Statistics " +msgstr "Statistiques" + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Arreter impression" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "ARRETE." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Echange" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Selectionnez le filament:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Calib. Temp." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Selectionnez la temperature qui correspond a votre materiau." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Calibration temp." + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Echec de la calibration en temperature" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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 activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Capteur verifie, retirez le filament maintenant." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Filament total" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Temps total impr." + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Regler" + +# +#: +msgid "Unload" +msgstr "Decharger" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Total des echecs" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "pour charger le fil." + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "pour decharger fil." + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Decharger fil." + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Dechargement fil." + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Totale" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Utilise pdt impr." + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Tensions" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "inconnu" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Attente utilisateur..." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +msgid "Waiting for nozzle and bed cooling" +msgstr "Attente du refroidissement des buse et plateau chauffant" + +# MSG_WAITING_TEMP_PINDA c=20 r=3 +#: ultralcd.cpp:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Attente du refroidissement de la sonde PINDA" + +# +#: +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 Remonter le fil. 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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Attention: Type de carte mere modifie." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Attention: Type d'imprimante modifie" + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Dechargement du filament reussi?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Erreur de cablage" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "Assistant" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "Details calib. XYZ" + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Echec calibration XYZ. Consultez le manuel." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Oui" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +msgid "You can always resume the Wizard from Calibration -> Wizard." +msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant." + +# MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 +#: ultralcd.cpp:3904 +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:3901 +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!" + +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Correct-X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +msgid "XYZ calibration compromised. Front calibration points not reachable." +msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables." + +# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 +#: ultralcd.cpp:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Charger un par un" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Distance Y du min" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Verification en echec, retirez le filament et reessayez." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Correct-Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "" + +# +#: messages.c:53 +msgid "Back" +msgstr "Retour" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Verifications" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Faux declenchement" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "FINDA:" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Stricte" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Avert" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "Config HW" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "IR:" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Compens. aim." + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S detecte sur imprimante MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Mode MMU" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Changement de mode en cours..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modele" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam. buse" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "Le G-code a ete prepare pour un niveau different. Continuer?" + +# +#: util.cpp:520 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "Le G-code a ete prepare pour un niveau different. Veuillez decouper le modele a nouveau. L'impression a ete annulee." + +# +#: util.cpp:431 +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:437 +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:481 +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:487 +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." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "PINDA:" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Chauffe pour couper" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Chauf. pour remonter" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Continuer?" + +# +#: util.cpp:401 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Renommer" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Selectionner" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Info capteur" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Plaque" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "" + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Plaques en acier" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Correct-Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Mesurer x-fois" + diff --git a/lang/po/Firmware_it.po b/lang/po/Firmware_it.po index 00623804c..8209a3bd8 100644 --- a/lang/po/Firmware_it.po +++ b/lang/po/Firmware_it.po @@ -1,1812 +1,1867 @@ -# Translation of Prusa-Firmware into Italian. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: it\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:07:29 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:07:29 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr " su 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr "su 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "[0;0] punto offset" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Annulla" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Compensaz. Z:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Nessun errore" - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Tutto fatto. Buona stampa!" - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Ambiente" - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "e cliccare manopola" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -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:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "Trova origine" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "Autocaric. filam." - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -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:2813 -msgid "Autoloading filament is active, just press the knob and insert filament..." -msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento." - -# MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 -msgid "Axis length" -msgstr "Lunghezza dell'asse" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Assi" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Letto/Riscald." - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Piano fatto." - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Riscald. letto" - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -msgstr "Correz. liv.letto" - -# 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 "Livellamento letto fallito.NoRispSensore.Residui su ugello? In attesa di reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Letto" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Stato cinghie" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "C'e stato un Blackout. Recuperare la stampa?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Calibrazione Home" - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Calibra XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Calibra Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Calibra" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Calibrando Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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:816 -msgid "Calibration done" -msgstr "Calibrazione completa" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "Calibrazione" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Annulla" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "SD rimossa" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Colore non puro" - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Raffredda" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Copiare la lingua selezionata?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Rileva.crash [on]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Rileva.crash[N/A]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Rileva.crash[off]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Rilevato impatto." - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Scontro rilevato. Riprendere la stampa?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "Impatto" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Attuale" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Data:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -msgid "Disable steppers" -msgstr "Disabilita motori" - -# 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 "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:5070 -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=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "Correzione-E:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Espelli filamento " - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Espellere" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "Espellendo filamento " - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Finecorsa fuori portata" - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "Finecorsa" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "Finecorsa" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -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:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "ERRORE:" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "Ventola estr:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "Info estrusore" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "Estrusore" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "Stat.fall. MMU" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autocar.fil. [on]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autocar.fil.[N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autocar.fil.[off]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Stat. fallimenti" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Velocita vent." - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Test ventola" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Control.vent [on]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Control.vent[off]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Sensore fil. [on]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Sensore fil.[N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Sensore fil.[off]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Filam. esauriti" - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Filamento estruso & con il giusto colore?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Fil. non caricato" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Sensore filam." - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Filamento utilizzato" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Tempo di stampa" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "File incompleto. Continuare comunque?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Finalizzando gli spostamenti" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Cal. primo strato" - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -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: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:6932 -msgid "Flow" -msgstr "Flusso" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Ventola frontale?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Fronte [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Ventola frontale/sinistra" - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Riscald./Termist." - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Riscaldamento fermato dal timer di sicurezza." - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Riscald. completo" - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Riscaldamento..." - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Cambia filamento" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Cambio riuscito!" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Cambiato correttamente?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Verifica piano" - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Verifica finecorsa" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Verifica ugello" - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Controllo sensori" - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Verifica asse X" - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Verifica asse Y" - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Verifica asse Z" - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Seleziona estrusore:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Scegliere filamento:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "Filamento" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -msgid "I will run z calibration now." -msgstr "Adesso avviero la Calibrazione Z." - -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Schermata info" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Il filamento 1 e caricato?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Inserire filamento" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Il filamento e stato caricato?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "E' un filamento di PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "E' stato caricato il filamento di PLA?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "La piastra d'acciaio e sul piano riscaldato?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Fallimenti ultima stampa" - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Ultima stampa" - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Vent SX hotend?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Sinistra" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Sinistra [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Correzione lineare" - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Compensazione Z" - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Carica filamento" - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Caricando colore" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Caricando filamento" - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Puleggia lenta" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "Carica ugello" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Calibrazione primo layer." - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Menu principale" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: 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:5763 -msgid "Mesh Bed Leveling" -msgstr "Livel. piatto" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: 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:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Ripristino temperatura... " - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Deviazione mis" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "Fallimenti MMU" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "Caricamento MMU fallito" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "Caricamenti MMU falliti" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Riprendendo... " - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Mod. [normale]" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mod. [silenziosa]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "Il MMU richiede attenzione dall'utente." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "Manc. corr. MMU" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mod. [silenziosa]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mod. [auto]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mod. [forte]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU2 connessa" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "Motore" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Muovi asse" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Sposta X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Sposta Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Sposta Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Nessun movimento." - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "Nessuna SD" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "" - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "Non connesso" - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Nuova versione firmware disponibile:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Non gira" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Adesso preriscaldero l'ugello per PLA." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Ugello" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 -msgid "Old settings found. Default PID, Esteps etc. will be set." -msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." - -# -#: ultralcd.cpp:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "Ventola estrusore" - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Metti in pausa" - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "Calibrazione PID" - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "Calib. PID completa" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "Calibrazione PID" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "Riscaldamento PINDA" - -# MSG_PAPER c=20 r=8 -#: 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:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Per favore pulisci il piatto, poi premi la manopola." - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -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:7881 -msgid "Please check :" -msgstr "Verifica:" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: 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:4894 -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:4795 -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:3064 -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: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:68 -msgid "Please press the knob to unload filament" -msgstr "Premete la manopola per scaricare il filamento " - -# -#: ultralcd.cpp:4889 -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:70 -msgid "Please pull out filament immediately" -msgstr "Estrarre il filamento immediatamente" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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: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:4355 -msgid "Please run XYZ calibration first." -msgstr "Esegui la calibrazione XYZ prima. " - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Attendere" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Per favore rimuovete i materiali da spedizione" - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Prerisc. ugello!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Preriscalda" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Preriscaldando l'ugello. Attendere prego." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Prego aggiornare." - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Premete la manopola per preriscaldare l'ugello e continuare." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Mancanza corrente" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Stampa interrotta" - -# -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Preriscaldamento per caricare" - -# -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Preriscaldamento per scaricare" - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "Vent.stam:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Stampa da SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "Premere la manopola" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Stampa in pausa" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Premete la manopola per recuperare la temperatura dell'ugello." - -# 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 "Stampante non ancora calibrata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "Ventola di stampa" - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Retro [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Recupero stampa" - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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. " - -# -#: -msgid "Prusa i3 MK3S OK." -msgstr "" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "Reset calibrazione XYZ." - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Riprendi stampa" - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Riprendi stampa" - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Destra [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Porta RPi [on]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Porta RPi [off]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -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:5322 -msgid "SD card [normal]" -msgstr "Mem. SD [normale]" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Mem. SD [flshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Destra" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Ricerca dei punti di calibrazione del piano" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Seleziona lingua" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "Autotest OK" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Avvia autotest" - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Autotest" - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Errore Autotest !" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Autotest fallito" - -# MSG_FORCE_SELFTEST c=20 r=8 -#: 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:5045 -msgid "Select nozzle preheat temperature which matches your material." -msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale." - -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Selezionate filamento PLA:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Imposta temperatura:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Impostazioni" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Stato finecorsa" - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Stato sensore" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Ordina [nessuno]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Ordina [cron.]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Devia.grave:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Ordine [alfabeti]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Ordinando i file" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Suono [forte]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Devia.lieve:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Suono [mute]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Sono stati rilevati problemi, avviato livellamento Z ..." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Suono [singolo]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Suono[silenzioso]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Velocita" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Gira" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -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:6839 -msgid "Statistics " -msgstr "Statistiche" - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Arresta stampa" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "ARRESTATO." - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "Supporto" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Scambiato" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Calib. temp. " - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Calib. temp. [on]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Calib. temp.[off]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Calib. Temp." - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Calibrazione temperatura fallita" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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:5650 -msgid "Temperature" -msgstr "" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "Temperature" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Filamento totale" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Tempo stampa totale" - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Regola" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Scarica" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Totale fallimenti" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "per caricare il filamento" - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "per scaricare il filamento" - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Scarica filamento" - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Scaricando filamento" - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "Totale" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Usati nella stampa" - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Voltaggi" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "sconosciuto" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Attendendo utente..." - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -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:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "In attesa del raffreddamento della sonda PINDA" - -# -#: ultralcd.cpp:4868 -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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Avviso: tipo di scheda madre cambiato" - -# MSG_CHANGED_PRINTER c=20 r=4 -#: 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:3054 -msgid "Was filament unload successful?" -msgstr "Filamento scaricato con successo?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Errore cablaggio" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "XYZ Cal. dettagli" - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Si" - -# MSG_WIZARD_QUIT c=20 r=8 -#: 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:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "Correzione-X:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -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:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Caricare tutti" - -# -#: ultralcd.cpp:3882 -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:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Distanza Y dal min" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Correzione-Y:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr "" - -# -#: messages.c:57 -msgid "Back" -msgstr "Indietro" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Controlli" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Falso innesco" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware[nessuno]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [esatto]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [avviso]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "Installazione HW" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Comp. Magneti[N/A]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Comp. Magneti[off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Comp. Magneti [on]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Griglia [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Griglia [7x7]" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "Mesh livel. letto" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "Firmware MK3S rilevato su stampante MK3" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Modalita MMU [Normale]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Modalita MMU [Silenziosa]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Cambio modalita in corso ..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modello [nessuno]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modello [esatto]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modello [avviso]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam.Ugello[0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam.Ugello[0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam.Ugello[0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Ugello [nessuno]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Ugello [esatto]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Ugello [avviso]" - -# -#: 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 piu 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 piu recente. Per favore aggiorna il firmware. Stampa annullata." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "" - -# -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Preriscaldamento per taglio" - -# -#: ultralcd.cpp:2462 -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:6683 -msgid "Rename" -msgstr "Rinomina" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Seleziona" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Info Sensore" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Piano" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Suono [assist.]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Piani d'acciaio" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Correzione-Z:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-probe nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-probe nr. [3]" - +# Translation of Prusa-Firmware into Italian. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:10:11 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:10:11 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cContinua%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 o inferiore" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 o superiore" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " su 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " su 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] punto offset" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Annulla" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Compensaz. Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Nessun errore" + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Tutto fatto. Buona stampa!" + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Ambiente" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "e cliccare manopola" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "I carrelli Z sin/des sono altezza max?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "Trova origine" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "Autocaric. filam." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +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:2804 +msgid "Autoloading filament is active, just press the knob and insert filament..." +msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento." + +# MSG_SELFTEST_AXIS_LENGTH +#: ultralcd.cpp:8327 +msgid "Axis length" +msgstr "Lunghezza dell'asse" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Assi" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Piano/Riscald." + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Piano fatto." + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Riscald. piano" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Correz. liv.piano" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test cinghie " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." +msgstr "Livellamento piano fallito. Sensore KO? Residui su ugello? In attesa di reset." + +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Chiaro" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Luminosita'" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Piano" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Stato cinghie" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Blackout rilevato. Recuperare la stampa?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Calibrazione Home" + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Calibra XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Calibra Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Calibra" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Calibrando Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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:865 +msgid "Calibration done" +msgstr "Calibrazione completa" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Calibrazione" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Annulla" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "SD rimossa" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Colore non puro" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Raffredda" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Copiare la lingua selezionata?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Rileva.crash" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo." + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Rilevato impatto." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Scontro rilevato. Riprendere la stampa?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "Impatto" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Attuale" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Data:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Disabilita motori" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 "Distanza tra la punta dell'ugello e la superficie del piano non ancora impostata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo strato." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +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=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Correzione-E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Espelli filamento" + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Espellendo filamento" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Finec. fuori portata" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "Finecorsa" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "Finecorsa" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Errore - la memoria statica e' stata sovrascritta" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Taglia filamento" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Tagliatr." + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Tagliando filam." + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Scuro" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "ERRORE:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "Ventola estr:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "Info estrusore" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "Estrusore" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Stat.fall. MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autocar.fil." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Stat. fallimenti" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Velocita vent." + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test ventola" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Control.vent" + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Sensore fil." + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Fil. esauriti" + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filamento estruso e con colore corretto?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Fil. non caricato" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Sensore filam." + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Fil. utilizzato" + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Tempo di stampa" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "File incompleto. Continuare comunque?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Finaliz. spostamenti" + +# MSG_V2_CALIBRATION c=17 r=1 +#: messages.c:103 +msgid "First layer cal." +msgstr "Cal. primo strato" + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +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:727 +msgid "Fix the issue and then press button on MMU unit." +msgstr "Risolvere il problema e premere il bottone sull'unita MMU. " + +# MSG_FLOW +#: ultralcd.cpp:7125 +msgid "Flow" +msgstr "Flusso" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Ventola frontale?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Fronte [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Ventola frontale/sinistra" + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Riscald./Termist." + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Riscaldamento fermato dal timer di sicurezza." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Riscald. completo" + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Riscaldamento..." + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Cambia filamento" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Cambio riuscito!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Cambio corretto?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Verifica piano" + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Verifica finecorsa" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Verifica ugello" + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Controllo sensori" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Verifica asse X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Verifica asse Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Verifica asse Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Seleziona estrusore:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Scegliere filamento:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "Filamento" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Adesso avviero la Calibrazione Z." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Schermata info" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Inserire filamento" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Il filamento e' stato caricato?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Piastra d'acciaio su piano riscaldato?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Fallimenti ultima stampa" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio." + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Ultima stampa" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Vent SX hotend?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Sinistra" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Sinistra [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Correzione lineare" + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Compensazione Z" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola." + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Carica filamento" + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Caricando colore" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Caricando filamento" + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Puleggia lenta" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Carica ugello" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Calibr. primo strato" + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Menu principale" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Liv. Chiaro" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Liv. Scuro" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Misura altezza di rif. del punto di calib." + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "Liv. grilia piano" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. riprendendo la posizione... " + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Ripristino temperatura... " + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Deviazione mis" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Fallimenti MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Caricamento MMU fallito" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "Caricamenti MMU falliti" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Riprendendo... " + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Mod." + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 rilevato su stampante MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "Normale" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Silenzioso" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "Il MMU richiede attenzione dall'utente." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "Manc. corr. MMU" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Silenziosa" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Auto" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Forte" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 connessa" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "Motore" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Muovi asse" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Sposta X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Sposta Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Sposta Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Nessun movimento." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Nessuna SD" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "N/D" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "Non connesso" + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Nuova versione firmware disponibile:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Non gira" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Adesso preriscaldero l'ugello per PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Ugello" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +msgid "Old settings found. Default PID, Esteps etc. will be set." +msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." + +# +#: ultralcd.cpp:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Ventola estrusore" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Metti in pausa" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "Calibrazione PID" + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "Calib. PID completa" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "Calibrazione PID" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Riscaldamento PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Per favore pulisci il piatto, poi premi la manopola." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +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:8259 +msgid "Please check :" +msgstr "Verifica:" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +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_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +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 +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 +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 +msgid "Please pull out filament immediately" +msgstr "Estrarre il filamento immediatamente" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +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:4583 +msgid "Please run XYZ calibration first." +msgstr "Esegui la calibrazione XYZ prima. " + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Attendere" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Per favore rimuovete i materiali da spedizione" + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Prerisc. ugello!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Preriscalda" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Preriscaldando l'ugello. Attendere prego." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Prego aggiornare." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Premete la manopola per preriscaldare l'ugello e continuare." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pausa" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Mancanza corrente" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Stampa interrotta" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Preriscald. carico" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Preriscald. scarico" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "Vent.stam:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Stampa da SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Premere la manopola" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Stampa in pausa" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Premete la manopola per recuperare la temperatura dell'ugello." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +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." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Ventola di stampa" + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Per favore prima carica il filamento." + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Retro [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Scaricare prima il filamento, poi ripetere l'operazione." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Recupero stampa " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +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." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reset calibrazione XYZ." + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "" + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Riprendi stampa" + +# MSG_RESUMING_PRINT c=20 r=1 +#: messages.c:69 +msgid "Resuming print" +msgstr "Riprendi stampa" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Destra [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Porta RPi" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +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_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Mem. SD" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Destra" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Ricerca dei punti di calibrazione del piano" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Seleziona lingua" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "Autotest OK" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Avvia autotest" + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Autotest" + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Errore Autotest !" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Autotest fallito" + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +msgid "Selftest will be run to calibrate accurate sensorless rehoming." +msgstr "Verra effettuato un self test per calibrare l'homing senza sensori" + +# +#: ultralcd.cpp:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Imposta temperatura" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Impostazioni" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Stato finecorsa" + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Stato sensore" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Ordina" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Nessuno" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Cron." + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Devia.grave:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfabeti" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Ordinando i file" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Forte" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Devia.lieve:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Suono" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "Esaurim" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Sono stati rilevati problemi, avviato livellamento Z ..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Singolo" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Velocita" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Gira" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +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:6978 +msgid "Statistics " +msgstr "Statistiche" + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Arresta stampa" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "ARRESTATO." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "Supporto" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Scambiato" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Seleziona il filamento:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Calib. temp." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Seleziona la temperatura appropriata per il tuo materiale." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Calib. Temp." + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Calibrazione temperatura fallita" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensore verificato, rimuovere il filamento." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "" + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Temperature" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Filamento totale" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Tempo stampa totale" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Regola" + +# +#: +msgid "Unload" +msgstr "Scarica" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Totale fallimenti" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "per caricare il filamento" + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "per scaricare il filamento" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Scarica filamento" + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Scaricando filamento" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Totale" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Usati nella stampa" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Voltaggi" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "sconosciuto" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Attendendo utente..." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +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:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "In attesa del raffreddamento della sonda PINDA" + +# +#: +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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Avviso: tipo di scheda madre cambiato" + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Avviso: tipo di stampante cambiato." + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Filamento scaricato con successo?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Errore cablaggio" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "XYZ Cal. dettagli" + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Si" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +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:3904 +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:3901 +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_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Correzione-X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +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:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Caricare tutti" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Distanza Y dal min" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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):" + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Verifica fallita, rimuovere il filamento e riprovare." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Correzione-Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "" + +# +#: messages.c:53 +msgid "Back" +msgstr "Indietro" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Controlli" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Falso innesco" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Esatto" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Avviso" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "Installazione HW" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Comp. Magneti" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Griglia" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "Liv. griglia piano" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S rilevato su stampante MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Mod. MMU" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Cambio modalita in corso ..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modello" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam.Ugello" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-code processato per un livello diverso. Continuare?" + +# +#: util.cpp:520 +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:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code processato per una stampante diversa. Continuare?" + +# +#: util.cpp:437 +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:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code processato per un firmware piu recente. Continuare?" + +# +#: util.cpp:487 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Preriscalda. taglio" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Preriscalda. espuls." + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro ugello diverso da G-Code. Continuare?" + +# +#: util.cpp:401 +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." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "atteso livello %s" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Rinomina" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Seleziona" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Info Sensore" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Piano" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Assist." + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Piani d'acciaio" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Correzione-Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Nr. Z-test" + diff --git a/lang/po/Firmware_pl.po b/lang/po/Firmware_pl.po index 133a1b56d..5cb88c7f9 100644 --- a/lang/po/Firmware_pl.po +++ b/lang/po/Firmware_pl.po @@ -1,1812 +1,1842 @@ -# Translation of Prusa-Firmware into Polish. -# -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 2:08:35 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 2:08:35 PM\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.7\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 -msgid " of 4" -msgstr " z 4" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 -msgid " of 9" -msgstr " z 9" - -# MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 -msgid "[0;0] point offset" -msgstr "[0;0] przesun.punktu" - -# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: -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 -#: -msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth" - -# -#: ultralcd.cpp:2472 -msgid ">Cancel" -msgstr ">Anuluj" - -# MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 -msgid "Adjusting Z:" -msgstr "Ustawianie Z:" - -# MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 -msgid "All correct " -msgstr "Wszystko OK " - -# MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 -msgid "All is done. Happy printing!" -msgstr "Gotowe. Udanego drukowania!" - -# -#: ultralcd.cpp:2009 -msgid "Ambient" -msgstr "Otoczenie" - -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 -msgid "and press the knob" -msgstr "i nacisnij pokretlo" - -# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 -msgid "Are left and right Z~carriages all up?" -msgstr "Obydwa konce osi sa na szczycie?" - -# MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [wl]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/D]" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [wyl]" - -# MSG_AUTO_HOME -#: messages.c:11 -msgid "Auto home" -msgstr "Auto zerowanie" - -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 -msgid "AutoLoad filament" -msgstr "Autoladowanie fil." - -# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 -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:2813 -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:7949 -msgid "Axis length" -msgstr "Dlugosc osi" - -# MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 -msgid "Axis" -msgstr "Os" - -# MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 -msgid "Bed / Heater" -msgstr "Stol / Grzanie" - -# MSG_BED_DONE -#: messages.c:16 -msgid "Bed done" -msgstr "Stol OK" - -# MSG_BED_HEATING -#: messages.c:17 -msgid "Bed Heating" -msgstr "Grzanie stolu.." - -# MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 -msgid "Bed level correct" -msgstr "Korekta stolu" - -# 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 "Kalibracja nieudana. Sensor nie aktywowal sie. Zanieczysz. dysza? Czekam na reset." - -# MSG_BED -#: messages.c:15 -msgid "Bed" -msgstr "Stol" - -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 -msgid "Belt status" -msgstr "Stan paskow" - -# MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 -msgid "Blackout occurred. Recover print?" -msgstr "Wykryto zanik napiecia. Kontynowac?" - -# -#: ultralcd.cpp:8297 -msgid "Calibrating home" -msgstr "Zerowanie osi" - -# MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 -msgid "Calibrate XYZ" -msgstr "Kalibracja XYZ" - -# MSG_HOMEYZ -#: messages.c:48 -msgid "Calibrate Z" -msgstr "Kalibruj Z" - -# MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 -msgid "Calibrate" -msgstr "Kalibruj" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 -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." - -# MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 -msgid "Calibrating Z" -msgstr "Kalibruje Z" - -# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 -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:816 -msgid "Calibration done" -msgstr "Kalibracja OK" - -# MSG_MENU_CALIBRATION -#: messages.c:61 -msgid "Calibration" -msgstr "Kalibracja" - -# -#: ultralcd.cpp:4781 -msgid "Cancel" -msgstr "Anuluj" - -# MSG_SD_REMOVED -#: ultralcd.cpp:8679 -msgid "Card removed" -msgstr "Karta wyjeta" - -# MSG_NOT_COLOR -#: ultralcd.cpp:2718 -msgid "Color not correct" -msgstr "Kolor zanieczysz." - -# MSG_COOLDOWN -#: messages.c:23 -msgid "Cooldown" -msgstr "Chlodzenie" - -# -#: ultralcd.cpp:4587 -msgid "Copy selected language?" -msgstr "Skopiowac wybrany jezyk?" - -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Wykr.zderzen [wl]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Wykr.zderzen[N/D]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Wykr.zderzen[wyl]" - -# MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 -msgid "Crash detected." -msgstr "Zderzenie wykryte" - -# -#: Marlin_main.cpp:600 -msgid "Crash detected. Resume print?" -msgstr "Wykryto zderzenie. Wznowic druk?" - -# -#: ultralcd.cpp:1853 -msgid "Crash" -msgstr "Zderzenie" - -# MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 -msgid "Current" -msgstr "Aktualne" - -# MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 -msgid "Date:" -msgstr "Data:" - -# MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 -msgid "Disable steppers" -msgstr "Wylacz silniki" - -# 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 "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:5070 -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=10 -#: ultralcd.cpp:5134 -msgid "E-correct:" -msgstr "Korekcja-E:" - -# MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 -msgid "Eject filament" -msgstr "Wysun filament" - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Wysun" - -# MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 -msgid "Ejecting filament" -msgstr "Wysuwanie filamentu" - -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 -msgid "Endstop not hit" -msgstr "Krancowka nie aktyw." - -# MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 -msgid "Endstop" -msgstr "Krancowka" - -# MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 -msgid "Endstops" -msgstr "Krancowki" - -# MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 -msgid "Error - static memory has been overwritten" -msgstr "Blad - pamiec statyczna zostala nadpisana" - -# MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 -msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." - -# MSG_ERROR -#: messages.c:28 -msgid "ERROR:" -msgstr "BLAD:" - -# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 -msgid "Extruder fan:" -msgstr "WentHotend:" - -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 -msgid "Extruder info" -msgstr "Ekstruder - info" - -# MSG_MOVE_E -#: messages.c:29 -msgid "Extruder" -msgstr "Ekstruder" - -# -#: ultralcd.cpp:6846 -msgid "Fail stats MMU" -msgstr "Bledy MMU" - -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autolad.fil. [wl]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autolad.fil.[N/D]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autolad.fil.[wyl]" - -# -#: ultralcd.cpp:6843 -msgid "Fail stats" -msgstr "Statystyki bledow" - -# MSG_FAN_SPEED c=14 -#: messages.c:31 -msgid "Fan speed" -msgstr "Predkosc went." - -# MSG_SELFTEST_FAN c=20 -#: messages.c:78 -msgid "Fan test" -msgstr "Test wentylatora" - -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Sprawd.went. [wl]" - -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Sprawd.went.[wyl]" - -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Czuj. filam. [wl]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Czuj. filam.[N/D]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Czuj. filam.[wyl]" - -# -#: ultralcd.cpp:1852 -msgid "Filam. runouts" -msgstr "Konc. filamentu" - -# MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 -msgid "Filament extruding & with correct color?" -msgstr "Filament wychodzi z dyszy, kolor jest ok?" - -# MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 -msgid "Filament not loaded" -msgstr "Fil. nie zaladowany" - -# MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 -msgid "Filament sensor" -msgstr "Czujnik filamentu" - -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 -msgid "Filament used" -msgstr "Uzyty filament" - -# MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 -msgid "Print time" -msgstr "Czas druku" - -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 -msgid "File incomplete. Continue anyway?" -msgstr "Plik niekompletny. Kontynowac?" - -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 -msgid "Finishing movements" -msgstr "Konczenie druku" - -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 -msgid "First layer cal." -msgstr "Kal. 1. warstwy" - -# MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 -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:724 -msgid "Fix the issue and then press button on MMU unit." -msgstr "Rozwiaz problem i wcisnij przycisk na MMU." - -# MSG_FLOW -#: ultralcd.cpp:6932 -msgid "Flow" -msgstr "Przeplyw" - -# MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 -msgid "forum.prusa3d.com" -msgstr "" - -# MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 -msgid "Front print fan?" -msgstr "Przedni went. druku?" - -# MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 -msgid "Front side[um]" -msgstr "Przod [um]" - -# MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 -msgid "Front/left fans" -msgstr "Przedni/lewy wentylator" - -# MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 -msgid "Heater/Thermistor" -msgstr "Grzalka/Termistor" - -# MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 -msgid "Heating disabled by safety timer." -msgstr "Grzanie wylaczone przez wyl. czasowy" - -# MSG_HEATING_COMPLETE c=20 -#: messages.c:47 -msgid "Heating done." -msgstr "Grzanie zakonczone" - -# MSG_HEATING -#: messages.c:46 -msgid "Heating" -msgstr "Grzanie..." - -# MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 -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:2207 -msgid "howto.prusa3d.com" -msgstr "" - -# MSG_FILAMENTCHANGE -#: messages.c:37 -msgid "Change filament" -msgstr "Wymiana filamentu" - -# MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 -msgid "Change success!" -msgstr "Wymiana ok!" - -# MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 -msgid "Changed correctly?" -msgstr "Wymiana ok?" - -# MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 -msgid "Checking bed " -msgstr "Kontrola stolu" - -# MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 -msgid "Checking endstops" -msgstr "Kontrola krancowek" - -# MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 -msgid "Checking hotend " -msgstr "Kontrola hotendu" - -# MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 -msgid "Checking sensors " -msgstr "Sprawdzanie czujnikow" - -# MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 -msgid "Checking X axis " -msgstr "Kontrola osi X" - -# MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 -msgid "Checking Y axis " -msgstr "Kontrola osi Y" - -# MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 -msgid "Checking Z axis " -msgstr "Kontrola osi Z" - -# MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 -msgid "Choose extruder:" -msgstr "Wybierz ekstruder:" - -# MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 -msgid "Choose filament:" -msgstr "Wybierz filament:" - -# MSG_FILAMENT c=17 r=1 -#: messages.c:30 -msgid "Filament" -msgstr "" - -# MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 -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:4999 -msgid "I will run z calibration now." -msgstr "Przeprowadze kalibracje Z." - -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 -msgid "Info screen" -msgstr "Ekran informacyjny" - -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Filament 1 zaladowany?" - -# MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 -msgid "Insert filament" -msgstr "Wprowadz filament" - -# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 -msgid "Is filament loaded?" -msgstr "Filament jest zaladowany?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Czy to filament PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Fialment PLA jest zaladowany?" - -# MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 -msgid "Is steel sheet on heatbed?" -msgstr "Czy plyta stal. jest na podgrzew. stole?" - -# -#: ultralcd.cpp:1795 -msgid "Last print failures" -msgstr "Ostatnie bledy druku" - -# -#: ultralcd.cpp:1772 -msgid "Last print" -msgstr "Ost. wydruk" - -# MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 -msgid "Left hotend fan?" -msgstr "Lewy went hotendu?" - -# -#: ultralcd.cpp:3018 -msgid "Left" -msgstr "Lewa" - -# MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 -msgid "Left side [um]" -msgstr "Lewo [um]" - -# -#: ultralcd.cpp:5680 -msgid "Lin. correction" -msgstr "Korekcja liniowa" - -# MSG_BABYSTEP_Z -#: messages.c:13 -msgid "Live adjust Z" -msgstr "Ustaw. Live Z" - -# MSG_LOAD_FILAMENT c=17 -#: messages.c:51 -msgid "Load filament" -msgstr "Ladowanie fil." - -# MSG_LOADING_COLOR -#: ultralcd.cpp:2654 -msgid "Loading color" -msgstr "Czyszcz. koloru" - -# MSG_LOADING_FILAMENT c=20 -#: messages.c:52 -msgid "Loading filament" -msgstr "Laduje filament" - -# MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 -msgid "Loose pulley" -msgstr "Luzne kolo pasowe" - -# -#: ultralcd.cpp:6805 -msgid "Load to nozzle" -msgstr "Zaladuj do dyszy" - -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 -msgid "M117 First layer cal." -msgstr "M117 Kal. 1. warstwy" - -# MSG_MAIN -#: messages.c:56 -msgid "Main" -msgstr "Menu glowne" - -# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 -msgid "Measuring reference height of calibration point" -msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego" - -# MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 -msgid "Mesh Bed Leveling" -msgstr "Poziomowanie stolu wg siatki" - -# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 -msgid "MMU OK. Resuming position..." -msgstr "MMU OK. Wznawianie pozycji." - -# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 -msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Wznawiam nagrzewanie..." - -# -#: ultralcd.cpp:3059 -msgid "Measured skew" -msgstr "Zmierzony skos" - -# -#: ultralcd.cpp:1796 -msgid "MMU fails" -msgstr "Bledy MMU" - -# -#: mmu.cpp:1613 -msgid "MMU load failed " -msgstr "Blad ladowania MMU" - -# -#: ultralcd.cpp:1797 -msgid "MMU load fails" -msgstr "Bledy ladow. MMU" - -# MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 -msgid "MMU OK. Resuming..." -msgstr "MMU OK. Wznawianie..." - -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Tryb [normalny]" - -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Tryb [cichy]" - -# -#: mmu.cpp:719 -msgid "MMU needs user attention." -msgstr "MMU wymaga uwagi uzytkownika." - -# -#: ultralcd.cpp:1823 -msgid "MMU power fails" -msgstr "Zaniki zasil. MMU" - -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Tryb [cichy]" - -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Tryb [automatycz]" - -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Tryb[wysoka wyd.]" - -# -#: ultralcd.cpp:2219 -msgid "MMU2 connected" -msgstr "MMU podlaczone" - -# MSG_SELFTEST_MOTOR -#: messages.c:83 -msgid "Motor" -msgstr "Silnik" - -# MSG_MOVE_AXIS -#: ultralcd.cpp:5652 -msgid "Move axis" -msgstr "Ruch osi" - -# MSG_MOVE_X -#: ultralcd.cpp:4378 -msgid "Move X" -msgstr "Ruch osi X" - -# MSG_MOVE_Y -#: ultralcd.cpp:4379 -msgid "Move Y" -msgstr "Ruch osi Y" - -# MSG_MOVE_Z -#: ultralcd.cpp:4380 -msgid "Move Z" -msgstr "Ruch osi Z" - -# MSG_NO_MOVE -#: Marlin_main.cpp:5292 -msgid "No move." -msgstr "Brak ruchu." - -# MSG_NO_CARD -#: ultralcd.cpp:6772 -msgid "No SD card" -msgstr "Brak karty SD" - -# -#: ultralcd.cpp:3024 -msgid "N/A" -msgstr "N/D" - -# MSG_NO -#: messages.c:62 -msgid "No" -msgstr "Nie" - -# MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 -msgid "Not connected" -msgstr "Nie podlaczono " - -# -#: util.cpp:293 -msgid "New firmware version available:" -msgstr "Dostepna nowa wersja firmware:" - -# MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 -msgid "Not spinning" -msgstr "Nie kreci sie" - -# MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 -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:5007 -msgid "Now I will preheat nozzle for PLA." -msgstr "Nagrzewam dysze dla PLA." - -# MSG_NOZZLE -#: messages.c:63 -msgid "Nozzle" -msgstr "Dysza" - -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: 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:4998 -msgid "Now remove the test print from steel sheet." -msgstr "Teraz zdejmij wydruk testowy ze stolu." - -# -#: ultralcd.cpp:1722 -msgid "Nozzle FAN" -msgstr "WentHotend" - -# MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 -msgid "Pause print" -msgstr "Wstrzymanie wydruku" - -# MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 -msgid "PID cal. " -msgstr "Kalibracja PID" - -# MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 -msgid "PID cal. finished" -msgstr "Kal. PID zakonczona" - -# MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 -msgid "PID calibration" -msgstr "Kalibracja PID" - -# MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 -msgid "PINDA Heating" -msgstr "Grzanie sondy PINDA" - -# MSG_PAPER c=20 r=8 -#: 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:5072 -msgid "Please clean heatbed and then press the knob." -msgstr "Oczysc powierzchnie druku i nacisnij pokretlo." - -# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 -msgid "Please clean the nozzle for calibration. Click when done." -msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem." - -# MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7881 -msgid "Please check :" -msgstr "Sprawdz :" - -# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Najpierw zaladuj filament PLA." - -# MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 -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: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:68 -msgid "Please press the knob to unload filament" -msgstr "Nacisnij pokretlo aby rozladowac filament" - -# -#: ultralcd.cpp:4889 -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:70 -msgid "Please pull out filament immediately" -msgstr "Wyciagnij filament teraz" - -# MSG_EJECT_REMOVE c=20 r=4 -#: 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: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:4355 -msgid "Please run XYZ calibration first." -msgstr "Prosze najpierw uruchomic kalibracje XYZ" - -# MSG_UPDATE_MMU2_FW c=20 r=4 -#: 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:66 -msgid "Please wait" -msgstr "Prosze czekac" - -# -#: ultralcd.cpp:4997 -msgid "Please remove shipping helpers first." -msgstr "Najpierw usun zabezpieczenia transportowe" - -# MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 -msgid "Preheat the nozzle!" -msgstr "Nagrzej dysze!" - -# MSG_PREHEAT -#: ultralcd.cpp:6722 -msgid "Preheat" -msgstr "Grzanie" - -# MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 -msgid "Preheating nozzle. Please wait." -msgstr "Nagrzewanie dyszy. Prosze czekac." - -# -#: util.cpp:297 -msgid "Please upgrade." -msgstr "Prosze zaktualizowac." - -# MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 -msgid "Press knob to preheat nozzle and continue." -msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." - -# -#: ultralcd.cpp:1851 -msgid "Power failures" -msgstr "Zaniki zasilania" - -# MSG_PRINT_ABORTED c=20 -#: messages.c:69 -msgid "Print aborted" -msgstr "Druk przerwany" - -# -#: ultralcd.cpp:2455 -msgid "Preheating to load" -msgstr "Nagrzew. do ladowania" - -# -#: ultralcd.cpp:2459 -msgid "Preheating to unload" -msgstr "Nagrzew. do rozlad." - -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 -msgid "Print fan:" -msgstr "WentWydruk:" - -# MSG_CARD_MENU -#: messages.c:21 -msgid "Print from SD" -msgstr "Druk z karty SD" - -# -#: ultralcd.cpp:2317 -msgid "Press the knob" -msgstr "Wcisnij pokretlo" - -# MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 -msgid "Print paused" -msgstr "Druk wstrzymany" - -# -#: mmu.cpp:723 -msgid "Press the knob to resume nozzle temperature." -msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy." - -# 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 "Drukarka nie byla jeszcze kalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem." - -# -#: ultralcd.cpp:1723 -msgid "Print FAN" -msgstr "WentWydruk" - -# MSG_PRUSA3D -#: ultralcd.cpp:2205 -msgid "prusa3d.com" -msgstr "" - -# MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 -msgid "Rear side [um]" -msgstr "Tyl [um]" - -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Wznawianie wydruku" - -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: 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 "Prusa i3 MK3S OK" - -# MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 -msgid "Reset XYZ calibr." -msgstr "Reset kalibr. XYZ" - -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 -msgid "Reset" -msgstr "" - -# MSG_RESUME_PRINT -#: ultralcd.cpp:6742 -msgid "Resume print" -msgstr "Wznowic wydruk" - -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 -msgid "Resuming print" -msgstr "Wznawianie druku" - -# MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 -msgid "Right side[um]" -msgstr "Prawo [um]" - -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Port RPi [wl]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Port RPi [wyl]" - -# MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 -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:5322 -msgid "SD card [normal]" -msgstr "Karta SD [normal]" - -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Karta SD[FlshAir]" - -# -#: ultralcd.cpp:3019 -msgid "Right" -msgstr "Prawa" - -# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 -msgid "Searching bed calibration point" -msgstr "Szukam punktu kalibracyjnego na stole" - -# MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 -msgid "Select language" -msgstr "Wybor jezyka" - -# MSG_SELFTEST_OK -#: ultralcd.cpp:7452 -msgid "Self test OK" -msgstr "Selftest OK" - -# MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 -msgid "Self test start " -msgstr "Selftest startuje" - -# MSG_SELFTEST -#: ultralcd.cpp:5750 -msgid "Selftest " -msgstr "Selftest " - -# MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 -msgid "Selftest error !" -msgstr "Blad selftest!" - -# MSG_SELFTEST_FAILED c=20 -#: messages.c:77 -msgid "Selftest failed " -msgstr "Selftest nieudany" - -# MSG_FORCE_SELFTEST c=20 r=8 -#: 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:5045 -msgid "Select nozzle preheat temperature which matches your material." -msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu." - -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Wybierz filament PLA:" - -# MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 -msgid "Set temperature:" -msgstr "Ustaw temperature:" - -# MSG_SETTINGS -#: messages.c:86 -msgid "Settings" -msgstr "Ustawienia" - -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 -msgid "Show end stops" -msgstr "Pokaz krancowki" - -# -#: ultralcd.cpp:4025 -msgid "Sensor state" -msgstr "Stan czujnikow" - -# MSG_FILE_CNT c=20 r=4 -#: 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:5332 -msgid "Sort [none]" -msgstr "Sortowanie [brak]" - -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Sortowanie [czas]" - -# -#: ultralcd.cpp:3062 -msgid "Severe skew:" -msgstr "Znaczny skos:" - -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Sortowanie[alfab]" - -# MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 -msgid "Sorting files" -msgstr "Sortowanie plikow" - -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Dzwiek [glosny]" - -# -#: ultralcd.cpp:3061 -msgid "Slight skew:" -msgstr "Lekki skos:" - -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Dzwiek[wylaczony]" - -# -#: Marlin_main.cpp:4871 -msgid "Some problem encountered, Z-leveling enforced ..." -msgstr "Wykryto problem, wymuszono poziomowanie osi Z." - -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Dzwiek [1-raz]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Dzwiek [cichy]" - -# MSG_SPEED -#: ultralcd.cpp:6926 -msgid "Speed" -msgstr "Predkosc" - -# MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 -msgid "Spinning" -msgstr "Kreci sie" - -# MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 -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:6839 -msgid "Statistics " -msgstr "Statystyki" - -# MSG_STOP_PRINT -#: messages.c:93 -msgid "Stop print" -msgstr "Przerwanie druku" - -# MSG_STOPPED -#: messages.c:94 -msgid "STOPPED. " -msgstr "ZATRZYMANO." - -# MSG_SUPPORT -#: ultralcd.cpp:6848 -msgid "Support" -msgstr "Wsparcie" - -# MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 -msgid "Swapped" -msgstr "Zamieniono" - -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Kalibracja temp." - -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Kalibr.temp. [wl]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Kalibr.temp.[wyl]" - -# MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 -msgid "Temp. calibration" -msgstr "Kalibracja temp." - -# MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 -msgid "Temperature calibration failed" -msgstr "Kalibracja temperaturowa nieudana" - -# MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: 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:5650 -msgid "Temperature" -msgstr "Temperatura" - -# MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 -msgid "Temperatures" -msgstr "Temperatury" - -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 -msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." - -# -#: ultralcd.cpp:2908 -msgid "Total filament" -msgstr "Zuzycie filamentu" - -# -#: ultralcd.cpp:2908 -msgid "Total print time" -msgstr "Laczny czas druku" - -# MSG_TUNE -#: ultralcd.cpp:6719 -msgid "Tune" -msgstr "Strojenie" - -# -#: ultralcd.cpp:4869 -msgid "Unload" -msgstr "Rozladuj" - -# -#: ultralcd.cpp:1820 -msgid "Total failures" -msgstr "Suma bledow" - -# -#: ultralcd.cpp:2324 -msgid "to load filament" -msgstr "aby zaladow. fil." - -# -#: ultralcd.cpp:2328 -msgid "to unload filament" -msgstr "aby rozlad. filament" - -# MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 -msgid "Unload filament" -msgstr "Rozladowanie fil." - -# MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 -msgid "Unloading filament" -msgstr "Rozladowuje filament" - -# -#: ultralcd.cpp:1773 -msgid "Total" -msgstr "Suma" - -# MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 -msgid "Used during print" -msgstr "Uzyte podczas druku" - -# MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 -msgid "Voltages" -msgstr "Napiecia" - -# -#: ultralcd.cpp:2227 -msgid "unknown" -msgstr "nieznane" - -# MSG_USERWAIT -#: Marlin_main.cpp:5263 -msgid "Wait for user..." -msgstr "Czekam na uzytkownika..." - -# MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 -msgid "Waiting for nozzle and bed cooling" -msgstr "Oczekiwanie na wychlodzenie dyszy i stolu" - -# MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 -msgid "Waiting for PINDA probe cooling" -msgstr "Czekam az spadnie temp. sondy PINDA" - -# -#: ultralcd.cpp:4868 -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: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:1503 -msgid "Warning: motherboard type changed." -msgstr "Ostrzezenie: plyta glowna ulegla zmianie." - -# MSG_CHANGED_PRINTER c=20 r=4 -#: 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:3054 -msgid "Was filament unload successful?" -msgstr "Rozladowanie fil. ok?" - -# MSG_SELFTEST_WIRINGERROR -#: messages.c:85 -msgid "Wiring error" -msgstr "Blad polaczenia" - -# MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 -msgid "Wizard" -msgstr "Asystent" - -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 -msgid "XYZ cal. details" -msgstr "Szczegoly kal. XYZ" - -# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 -msgid "XYZ calibration failed. Please consult the manual." -msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji." - -# MSG_YES -#: messages.c:104 -msgid "Yes" -msgstr "Tak" - -# MSG_WIZARD_QUIT c=20 r=8 -#: 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:3922 -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:3919 -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:5130 -msgid "X-correct:" -msgstr "Korekcja-X:" - -# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 -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:3900 -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:3903 -msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." - -# MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 -msgid "Load all" -msgstr "Zalad. wszystkie" - -# -#: ultralcd.cpp:3882 -msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych." - -# -#: ultralcd.cpp:3888 -msgid "XYZ calibration failed. Front calibration points not reachable." -msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki." - -# -#: ultralcd.cpp:3891 -msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." - -# -#: ultralcd.cpp:3016 -msgid "Y distance from min" -msgstr "Dystans od 0 w osi Y" - -# -#: ultralcd.cpp:5131 -msgid "Y-correct:" -msgstr "Korekcja-Y:" - -# MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [wyl]" - -# -#: messages.c:57 -msgid "Back" -msgstr "Wstecz" - -# -#: ultralcd.cpp:5639 -msgid "Checks" -msgstr "Testy" - -# -#: ultralcd.cpp:7973 -msgid "False triggering" -msgstr "Falszywy alarm" - -# -#: ultralcd.cpp:4030 -msgid "FINDA:" -msgstr "" - -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [brak]" - -# -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [restr.]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware[ostrzez]" - -# -#: messages.c:87 -msgid "HW Setup" -msgstr "Ustawienia HW" - -# -#: ultralcd.cpp:4034 -msgid "IR:" -msgstr "" - -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Kor. magnesow[N/D]" - -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Kor. magnesow[wyl]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Kor. magnesow [wl]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Siatka [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Siatka [7x7]" - -# -#: ultralcd.cpp:5677 -msgid "Mesh bed leveling" -msgstr "Poziomowanie stolu" - -# -#: Marlin_main.cpp:856 -msgid "MK3S firmware detected on MK3 printer" -msgstr "Wykryto firmware MK3S w drukarce MK3" - -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Tryb MMU[Normaln]" - -# -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Tryb MMU[Stealth]" - -# -#: ultralcd.cpp:4511 -msgid "Mode change in progress ..." -msgstr "Trwa zmiana trybu..." - -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Model [brak]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Model [restrykc.]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Model [ostrzez.]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Sr. dyszy [0,25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Sr. dyszy [0,40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Sr. dyszy [0,60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Dysza [brak]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Dysza [restrykc.]" - -# -#: ultralcd.cpp:5424 -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 "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." - -# -#: ultralcd.cpp:4026 -msgid "PINDA:" -msgstr "" - -# -#: ultralcd.cpp:2465 -msgid "Preheating to cut" -msgstr "Nagrzewanie do obciecia" - -# -#: ultralcd.cpp:2462 -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:6683 -msgid "Rename" -msgstr "Zmien nazwe" - -# -#: ultralcd.cpp:6679 -msgid "Select" -msgstr "Wybierz" - -# -#: ultralcd.cpp:2245 -msgid "Sensor info" -msgstr "Info o sensorach" - -# -#: messages.c:58 -msgid "Sheet" -msgstr "Plyta" - -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Dzwiek [asyst.]" - -# -#: ultralcd.cpp:5637 -msgid "Steel sheets" -msgstr "Plyty stalowe" - -# -#: ultralcd.cpp:5132 -msgid "Z-correct:" -msgstr "Korekcja-Z:" - -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Ilosc Pomiarow [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Ilosc Pomiarow [3]" - +# Translation of Prusa-Firmware into Polish. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Tue May 12 21:10:37 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:10:37 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 lub starszy" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 lub nowszy" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " z 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " z 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] przesun.punktu" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +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 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Anuluj" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Ustawianie Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8679 +msgid "All correct " +msgstr "Wszystko OK " + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Gotowe. Udanego drukowania!" + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Otoczenie" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "i nacisnij pokretlo" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Obydwa konce osi sa na szczycie?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "Auto zerowanie" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "Autoladowanie fil." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +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:8327 +msgid "Axis length" +msgstr "Dlugosc osi" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8329 +msgid "Axis" +msgstr "Os" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8271 +msgid "Bed / Heater" +msgstr "Stol / Grzanie" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Stol OK" + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Grzanie stolu.." + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Korekta stolu" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test paskow" + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Jasny" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Jasnosc" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Stol" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Stan paskow" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Wykryto zanik napiecia. Kontynowac?" + +# +#: ultralcd.cpp:8681 +msgid "Calibrating home" +msgstr "Zerowanie osi" + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Kalibracja XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Kalibruj Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Kalibruj" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +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." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Kalibruje Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +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:865 +msgid "Calibration done" +msgstr "Kalibracja OK" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Kalibracja" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Anuluj" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9092 +msgid "Card removed" +msgstr "Karta wyjeta" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Kolor zanieczysz." + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Chlodzenie" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Skopiowac wybrany jezyk?" + +# MSG_CRASHDETECT_ON +#: messages.c:24 +msgid "Crash det." +msgstr "Wykr.zderzen" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym." + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Zderzenie wykryte" + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Wykryto zderzenie. Wznowic druk?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "Zderzenie" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Aktualne" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Data:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Wylacz silniki" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +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 "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "Kont." + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +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=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Korekcja-E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Wysun filament" + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Wysuwanie filamentu" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 +msgid "Endstop not hit" +msgstr "Krancowka nie aktyw." + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8289 +msgid "Endstop" +msgstr "Krancowka" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8277 +msgid "Endstops" +msgstr "Krancowki" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Blad - pamiec statyczna zostala nadpisana" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Ciecie filamentu" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Nozyk" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Obcinanie fil." + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Sciemn" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "BLAD:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8688 +msgid "Extruder fan:" +msgstr "WentHotend:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "Ekstruder - info" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "Ekstruder" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Bledy MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autolad. fil." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Statystyki bledow" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Predkosc went." + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test wentylatora" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Sprawd.went." + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Czuj. filam." + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Konc.filamentu" + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filament wychodzi z dyszy,kolor jest ok?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Fil. nie zaladowany" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Czujnik filamentu" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Uzyty filament" + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Czas druku" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "Akcja FS" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 lub nowszy" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 +msgid "File incomplete. Continue anyway?" +msgstr "Plik niekompletny. Kontynowac?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Konczenie druku" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Kal. 1. warstwy" + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +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:727 +msgid "Fix the issue and then press button on MMU unit." +msgstr "Rozwiaz problem i wcisnij przycisk na MMU." + +# MSG_FLOW +#: ultralcd.cpp:7125 +msgid "Flow" +msgstr "Przeplyw" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Przedni went. druku?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Przod [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8335 +msgid "Front/left fans" +msgstr "Przedni/lewy wentylator" + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8265 +msgid "Heater/Thermistor" +msgstr "Grzalka/Termistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Grzanie wylaczone przez wyl. czasowy" + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Grzanie zakonczone" + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Grzanie..." + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +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:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Wymiana filamentu" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Wymiana ok!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Wymiana ok?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Kontrola stolu" + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8670 +msgid "Checking endstops" +msgstr "Kontrola krancowek" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8676 +msgid "Checking hotend " +msgstr "Kontrola hotendu" + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Kontrola czujnikow" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Kontrola osi X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Kontrola osi Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8673 +msgid "Checking Z axis " +msgstr "Kontrola osi Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Wybierz ekstruder:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Wybierz filament:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +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:5063 +msgid "I will run z calibration now." +msgstr "Przeprowadze kalibracje Z." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Ekran informacyjny" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Wprowadz filament" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Filament jest zaladowany?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Czy plyta stal. jest na podgrzew. stole?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Ostatnie bledy druku" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe." + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Ost. wydruk" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Lewy went hotendu?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Lewa" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Lewo [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Korekcja liniowa" + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Ustaw. Live Z" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo." + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Ladowanie fil." + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Czyszcz. koloru" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Laduje filament" + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8319 +msgid "Loose pulley" +msgstr "Luzne kolo pasowe" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Zaladuj do dyszy" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Kal. 1. warstwy" + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Menu glowne" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Poziom jasn." + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Poziom ciem." + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "Poziomowanie stolu wg siatki" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Wznawianie pozycji." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Wznawiam nagrzewanie..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Zmierzony skos" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Bledy MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Blad ladowania MMU" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "Bledy ladow. MMU" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Wznawianie..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Tryb" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Wykryto firmware MK3 w drukarce MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "Normalny" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Cichy" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "MMU wymaga uwagi uzytkownika." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "Zaniki zasil. MMU" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Cichy" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Automatycz" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Wysoka wyd." + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU podlaczone" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "Silnik" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Ruch osi" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Ruch osi X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Ruch osi Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Ruch osi Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Brak ruchu." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Brak karty SD" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "N/D" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "Nie" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8267 +msgid "Not connected" +msgstr "Nie podlaczono " + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Dostepna nowa wersja firmware:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Nie kreci sie" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +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:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Nagrzewam dysze dla PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Dysza" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +msgid "Old settings found. Default PID, Esteps etc. will be set." +msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp." + +# +#: ultralcd.cpp:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Teraz zdejmij wydruk testowy ze stolu." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "WentHotend" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Wstrzymanie wydruku" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "Kalibracja PID" + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "Kal. PID zakonczona" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "Kalibracja PID" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Grzanie sondy PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +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:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Oczysc powierzchnie druku i nacisnij pokretlo." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +msgid "Please clean the nozzle for calibration. Click when done." +msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem." + +# MSG_SELFTEST_PLEASECHECK +#: ultralcd.cpp:8259 +msgid "Please check :" +msgstr "Sprawdz :" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +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_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +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 +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 +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 +msgid "Please pull out filament immediately" +msgstr "Wyciagnij filament teraz" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +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 +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:4583 +msgid "Please run XYZ calibration first." +msgstr "Prosze najpierw uruchomic kalibracje XYZ" + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +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 +msgid "Please wait" +msgstr "Prosze czekac" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Najpierw usun zabezpieczenia transportowe" + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Nagrzej dysze!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Grzanie" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Nagrzewanie dyszy. Prosze czekac." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Prosze zaktualizowac." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pauza" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Zaniki zasilania" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Druk przerwany" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Nagrzew.do ladowania" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Nagrzew. do rozlad." + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8691 +msgid "Print fan:" +msgstr "WentWydruk:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Druk z karty SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Wcisnij pokretlo" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Druk wstrzymany" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Drukarka nie byla jeszcze kalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "WentWydruk" + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Najpierw zaladuj filament." + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Tyl [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Wznawianie wydruku " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +msgid "Remove old filament and press the knob to start loading new filament." +msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reset kalibr. XYZ" + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Wznowic wydruk" + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Wznawianie druku" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Prawo [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Port RPi" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +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_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Karta SD" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Prawa" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Szukam punktu kalibracyjnego na stole" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Wybor jezyka" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7814 +msgid "Self test OK" +msgstr "Selftest OK" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7584 +msgid "Self test start " +msgstr "Selftest startuje" + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Selftest " + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8257 +msgid "Selftest error !" +msgstr "Blad selftest!" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Selftest nieudany" + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +msgid "Selftest will be run to calibrate accurate sensorless rehoming." +msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek" + +# +#: ultralcd.cpp:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Ustaw temperature:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Ustawienia" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Pokaz krancowki" + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Stan czujnikow" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +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 +#: messages.c:120 +msgid "Sort" +msgstr "Sortowanie" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Brak" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Czas" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Znaczny skos:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfab" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Sortowanie plikow" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Glosny" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Lekki skos:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Dzwiek" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "Konce f" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Wykryto problem, wymuszono poziomowanie osi Z." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "1-raz" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Predkosc" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Kreci sie" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +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:6978 +msgid "Statistics " +msgstr "Statystyki" + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Przerwanie druku" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "ZATRZYMANO." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "Wsparcie" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8337 +msgid "Swapped" +msgstr "Zamieniono" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Wybierz filament:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Kalib. temp." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Kalibracja temp." + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Kalibracja temperaturowa nieudana" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +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." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Czujnik sprawdzony, wyciagnij filament." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "Temperatura" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Temperatury" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Zuzycie filamentu" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Laczny czas druku" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Strojenie" + +# +#: +msgid "Unload" +msgstr "Rozladuj" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Suma bledow" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "aby zaladow. fil." + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "aby rozlad. filament" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Rozladowanie fil." + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Rozladowuje filament" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Suma" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Uzyte podczas druku" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Napiecia" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "nieznane" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Czekam na uzytkownika..." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +msgid "Waiting for nozzle and bed cooling" +msgstr "Oczekiwanie na wychlodzenie dyszy i stolu" + +# MSG_WAITING_TEMP_PINDA c=20 r=3 +#: ultralcd.cpp:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Czekam az spadnie temp. sondy PINDA" + +# +#: +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:1510 +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:1502 +msgid "Warning: motherboard type changed." +msgstr "Ostrzezenie: plyta glowna ulegla zmianie." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie" + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Rozladowanie fil. ok?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Blad polaczenia" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "Asystent" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "Szczegoly kal. XYZ" + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Tak" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +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:3904 +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:3901 +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_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Wyl. czas." + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Korekcja-X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +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:3882 +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:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Zalad. wszystkie" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Dystans od 0 w osi Y" + +# +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Korekcja-Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "Wyl" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Wl" + +# +#: messages.c:53 +msgid "Back" +msgstr "Wstecz" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Testy" + +# +#: ultralcd.cpp:8351 +msgid "False triggering" +msgstr "Falszywy alarm" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Restr." + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Ostrzez" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "Ustawienia HW" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Kor. magnesow" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Siatka" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "Poziomowanie stolu" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Wykryto firmware MK3S w drukarce MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Tryb MMU" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Trwa zmiana trybu..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Sr. dyszy" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-code pociety dla innej wersji. Kontynuowac?" + +# +#: util.cpp:520 +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:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code pociety dla innej drukarki. Kontynuowac?" + +# +#: util.cpp:437 +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:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code pociety dla nowszego firmware. Kontynuowac?" + +# +#: util.cpp:487 +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." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Nagrzew. obciecia" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Nagrzew. wysuniecia" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Srednica dyszy drukarki rozni sie od tej w G-code. Kontynuowac?" + +# +#: util.cpp:401 +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." + +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "Oczekiwano wersji %s" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Zmien nazwe" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Wybierz" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Info o sensorach" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Plyta" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asyst." + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Plyty stalowe" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Korekcja-Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Ilosc Pomiarow" + diff --git a/lang/po/new/cs.po b/lang/po/new/cs.po index 6ba6bb256..6322bebd8 100644 --- a/lang/po/new/cs.po +++ b/lang/po/new/cs.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:28:20 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:28:20 PM\n" +"POT-Creation-Date: Tue May 12 21:08:30 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:08:30 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 nebo starsi" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 nebo novejsi" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" msgstr " z 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "[0;0] odsazeni bodu" @@ -41,802 +56,822 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Zrusit" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Doladeni Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Vse OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Vse je hotovo." # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Okoli" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "a stisknete tlacitko" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 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:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [zap]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [vyp]" - # MSG_AUTO_HOME #: messages.c:11 msgid "Auto home" msgstr "" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "AutoZavedeni fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 msgid "Autoloading filament available only when filament sensor is turned on..." -msgstr "Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..." +msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 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:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Delka osy" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Osa" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "Podlozka / Topeni" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Bed OK." # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "Zahrivani bedu" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "Korekce podlozky" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test remenu " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Jasny" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Podsviceni" + # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "Podlozka" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "Stav remenu" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "Detekovan vypadek proudu.Obnovit tisk?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Kalibruji vychozi poz." # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Kalibrace XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Kalibrovat Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Zkalibrovat" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Kalibruji Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Kalibrace OK" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "Kalibrace" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Zrusit" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "Karta vyjmuta" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Barva neni cista" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Zchladit" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "Kopirovat vybrany jazyk?" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Crash det. [zap]" - -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." msgstr "" -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Crash det. [vyp]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu" # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Detekovan naraz." # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Detekovan naraz. Obnovit tisk?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "Naraz" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Pouze aktualni" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Vypnout motory" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "Pokr." + # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 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=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "Korekce E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" msgstr "Vysunout filament" -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Vysunout" - # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "Vysouvam filament" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "Kon. spinac nesepnut" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "Koncovy spinac" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "Konc. spinace" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "Chyba - Doslo k prepisu staticke pameti!" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Ustrihnout" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Strihani" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Strihani filamentu" + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." +msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Temny" # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "CHYBA:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "Levy vent.:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "Selhani MMU" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "F. autozav. [zap]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "F. autozav. [N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "F. autozav. [vyp]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autozav." # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Selhani" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "Rychlost vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Test ventilatoru" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Kontr. vent.[zap]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Kontr. vent." -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Kontr. vent.[vyp]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Fil. senzor" -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Fil. senzor [zap]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Fil. senzor [N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Fil. senzor [vyp]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" msgstr "Vypadky filam." # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" msgstr "Filament vytlacen a spravne barvy?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Filament nezaveden" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Senzor filamentu" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" -msgstr "Spotrebovano filamentu" +msgstr "Spotrebovano filam." # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Cas tisku" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS reakce" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 a novejsi" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "Soubor nekompletni. Pokracovat?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "Dokoncovani pohybu" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "Kal. prvni vrstvy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 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:724 +#: mmu.cpp:727 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:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Prutok" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Predni tiskovy vent?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Vpredu [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Predni/levy vent." # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Topeni/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Zahrivani preruseno bezpecnostnim casovacem." # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "Zahrivani OK." # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Zahrivani" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Vymenit filament" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Zmena uspesna!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "Vymena ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "Kontrola podlozky" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Kontrola endstopu" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Kontrola hotend " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " msgstr "Kontrola senzoru" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Kontrola osy X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Kontrola osy Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Kontrola osy Z" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Vyberte extruder:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Vyber filament:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 msgid "I will run z calibration now." msgstr "Nyni provedu z kalibraci." -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Informace" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Je filament 1 zaveden?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Vlozte filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "Je filament zaveden?" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Je to PLA filament?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Je PLA filament zaveden?" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" msgstr "Je tiskovy plat na podlozce?" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Selhani posl. tisku" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy" + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Posledni tisk" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "Levy vent na trysce?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Vlevo" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "Vlevo [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Korekce lin." # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Doladeni osy Z" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko" + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Zavest filament" # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Cisteni barvy" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Zavadeni filamentu" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Uvolnena remenicka" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "Zavest do trysky" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "M117 Kal. prvni vrstvy" # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Hlavni nabidka" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "Merim referencni vysku kalibracniho bodu" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Pokracuji v tisku..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Pokracuji v nahrivani..." # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Merene zkoseni" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "Selhani MMU" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "Zavedeni MMU selhalo" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "MMU selhani zavadeni" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Pokracuji..." -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Mod [Normal]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Mod" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mod [tichy]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Tichy" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "MMU potrebuje zasah uzivatele." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "MMU vypadky proudu" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mod [tichy]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Tichy" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mod [automaticky]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Automaticky" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mod [vys. vykon]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Vys. vykon" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU2 pripojeno" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Posunout osu" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Posunout X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Posunout Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Posunout Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Bez pohybu." # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "Zadna SD karta" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "Ne" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "Nezapojeno " @@ -846,967 +881,962 @@ msgid "New firmware version available:" msgstr "Vysla nova verze firmware:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Netoci se" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Nyni predehreji trysku pro PLA." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Tryska" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." # -#: ultralcd.cpp:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "Vent. trysky" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Pozastavit tisk" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "PID kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "PID kal. ukoncena" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "PID kalibrace" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "Nahrivani PINDA" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "Prosim ocistete podlozku a stisknete tlacitko." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 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:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Zkontrolujte :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Nejdrive prosim zavedte PLA filament." - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 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:65 +#: messages.c:61 msgid "Please place steel sheet on heatbed." msgstr "Umistete prosim tiskovy plat na podlozku" # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Pro vysunuti filamentu stisknete prosim tlacitko" -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Prosim vyjmete urychlene filament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 msgid "Please remove steel sheet from heatbed." msgstr "Odstrante prosim tiskovy plat z podlozky." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Nejprve spustte kalibraci XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Prosim cekejte" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Nejprve prosim sundejte transportni soucastky." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "Predehrejte trysku!" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Predehrev" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Predehrev trysky. Prosim cekejte." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Prosim aktualizujte." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Vypadky proudu" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Tisk prerusen" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" msgstr "Predehrev k zavedeni" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" msgstr "Predehrev k vyjmuti" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "Tiskovy vent.:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Tisk z SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "Stisknete hl. tlacitko" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Tisk pozastaven" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 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." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "Tiskovy vent." +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Prosim nejdriv zavedte filament" + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Vzadu [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Obnovovani tisku " +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Prosim vyjmete filament a zopakujte tuto akci" -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Obnovovani tisku " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "Reset XYZ kalibr." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Pokracovat" -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" msgstr "Obnoveni tisku" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "Vpravo [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "RPi port [zap]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "RPi port [vyp]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" msgstr "" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "SD card [FlshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Vpravo" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "Hledam kalibracni bod podlozky" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Vyber jazyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Self test start " # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Chyba Selftestu!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Selftest selhal " # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest." # -#: ultralcd.cpp:5045 +#: ultralcd.cpp:5102 msgid "Select nozzle preheat temperature which matches your material." msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Vyberte PLA filament:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "Nastavte teplotu:" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Nastaveni" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Stav konc. spin." # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Stav senzoru" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Trideni [Zadne]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Trideni" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Trideni [cas]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Zadne" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Cas" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Tezke zkoseni:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Trideni [Abeceda]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Abeceda" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Trideni souboru" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Zvuk [hlasity]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Hlasity" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Lehke zkoseni:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Zvuk [vypnuto]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Zvuk" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Vyskytl se problem, srovnavam osu Z ..." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Zvuk [jednou]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Zvuk [tichy]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Jednou" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Rychlost" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Toci se" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 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:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Statistika " # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Zastavit tisk" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "ZASTAVENO." # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "Podpora" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Prohozene" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Tepl. kal. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Zvolte filament:" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Tepl. kal. [zap]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Tepl. kal." -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Tepl. kal. [vyp]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Zvolte teplotu, ktera odpovida vasemu materialu." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Teplot. kalibrace" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Teplotni kalibrace selhala" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Senzor overen, vyjmete filament." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "Teplota" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "Teploty" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "Filament celkem" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "Celkovy cas tisku" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Ladit" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Vysunout" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Celkem selhani" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "k zavedeni filamentu" # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "k vyjmuti filamentu" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Vyjmout filament" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Vysouvam filament" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "Celkem" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Pouzite behem tisku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Napeti" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "neznamy" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Ceka se na uzivatele..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 msgid "Waiting for nozzle and bed cooling" msgstr "Cekani na zchladnuti trysky a podlozky." # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "Cekani na zchladnuti PINDA" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Varovani: doslo ke zmene typu motherboardu." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Varovani: doslo ke zmene typu tiskarny." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "Bylo vysunuti filamentu uspesne?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Chyba zapojeni" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "Pruvodce" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "Detaily XYZ kal." # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Ano" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 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:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "Korekce X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Zavest vse" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Y vzdalenost od min" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Overeni selhalo, vyjmete filament a zkuste znovu." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Korekce Y:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [vyp]" +#: messages.c:105 +msgid "Off" +msgstr "Vyp" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Zap" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "Zpet" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Kontrola" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Falesne spusteni" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [Zadne]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Prisne" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Varovat" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [Prisne]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware[Varovat]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "HW nastaveni" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Komp. magnetu[N/A]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Komp. magnetu" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Komp. magnetu[Vyp]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Komp. magnetu[Zap]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Mesh [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Mesh [7x7]" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "Mesh Bed Leveling" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "MK3S firmware detekovan na tiskarne MK3" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "MMU mod [Normal]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "MMU mod" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "MMU Mod [Tichy]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Probiha zmena modu..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Model [Zadne]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Tryska" # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Model [Prisne]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Model [Varovat]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Tryska [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Tryska [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Tryska [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Tryska [Zadne]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Tryska [Prisne]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Tryska [Varovat]" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" msgstr "" # -#: util.cpp:516 +#: util.cpp:520 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." msgstr "" # -#: util.cpp:427 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "G-code je pripraven pro jiny typ tiskarny. Pokracovat?" # -#: util.cpp:433 +#: util.cpp:437 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 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "G-code je pripraven pro novejsi firmware. Pokracovat?" # -#: util.cpp:483 +#: util.cpp:487 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." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" -msgstr "Predehrev k ustrizeni" +msgstr "Predehrev ke strihu" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" msgstr "Predehrev k vysunuti" # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "Prumer trysky tiskarny se lisi od G-code. Pokracovat?" # -#: util.cpp:397 +#: util.cpp:401 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." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Prejmenovat" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Vybrat" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Senzor info" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Plat" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Zvuk [Asist.]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asist." -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Tiskove platy" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Korekce Z:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Pocet mereni Z [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Pocet mereni Z [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Pocet mereni Z" diff --git a/lang/po/new/de.po b/lang/po/new/de.po index 1abf21e2d..4b884405e 100644 --- a/lang/po/new/de.po +++ b/lang/po/new/de.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:29:42 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:29:42 PM\n" +"POT-Creation-Date: Tue May 12 21:08:56 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:08:56 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 oder aelter" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 oder neuer" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr " von 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" msgstr " von 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "[0;0] Punktversatz" @@ -41,802 +56,822 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Abbruch" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Z Anpassen:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Alles richtig " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Alles abgeschlossen. Viel Spass beim Drucken!" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Raumtemp." -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "und Knopf druecken" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 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:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [an]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/V]" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [aus]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" # MSG_AUTO_HOME #: messages.c:11 msgid "Auto home" msgstr "Startposition" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "AutoLaden Filament" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 msgid "Autoloading filament available only when filament sensor is turned on..." -msgstr "Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..." +msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 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:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Achsenlaenge" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Achse" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "Bett / Heizung" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Bett OK" # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "Bett aufwaermen" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "Ausgleich Bett ok" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Riementest " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Hell" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Helligkeit" + # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "Bett" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "Gurtstatus" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "Stromausfall! Druck wiederherstellen?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Kalibriere Start" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Kalibrierung XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Kalibrierung Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Kalibrieren" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Kalibrierung Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Kalibrierung OK" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "Kalibrierung" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Abbruch" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "SD Karte entfernt" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Falsche Farbe" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Abkuehlen" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "Gewaehlte Sprache kopieren?" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Crash Erk. [an]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Crash Erk." -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Crash Erk. [nv]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Crash Erk. [aus]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus." # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Crash erkannt." # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Crash erkannt. Druck fortfuehren?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Aktuelles" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Motoren aus" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "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_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 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=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "E-Korrektur:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" msgstr "Filamentauswurf" -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Auswurf" - # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "werfe Filament aus" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "Ende nicht getroffen" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "Endanschlag" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "Endschalter" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "Fehler - statischer Speicher wurde ueberschrieben" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Fil. schneiden" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Messer" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Schneide filament" + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Dimm" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "FEHLER:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "Extruder Luefter:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "Extruder Info" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "MMU-Fehler" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "F.Autoladen [an]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "F. Autoload [nv]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "F. Autoload [aus]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autoladen" # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Fehlerstatistik" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "Luefter-Tempo" # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Lueftertest" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Luefter Chk. [an]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Luefter Chk." -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Luefter Chk.[aus]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "" -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Fil. Sensor [an]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Fil. Sensor [nv]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Fil. Sensor [aus]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" msgstr "Filam. Maengel" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" msgstr "Filament extrudiert mit richtiger Farbe?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Fil. nicht geladen" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Filamentsensor" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" msgstr "Filament benutzt" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Druckzeit" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS Aktion" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 oder neuer" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "Datei unvollstaendig Trotzdem fortfahren?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "Bewegung beenden" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "Erste-Schicht Kal." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 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:724 +#: mmu.cpp:727 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:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Durchfluss" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Vorderer Luefter?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Vorne [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Vorderer/linke Luefter" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Heizung/Thermistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Heizung durch Sicherheitstimer deaktiviert." # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "Aufwaermen OK." # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Aufwaermen" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Filament-Wechsel" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Wechsel erfolgr.!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "Wechsel ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "Pruefe Bett " # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Pruefe Endschalter" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Pruefe Duese " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " msgstr "Pruefe Sensoren " # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Pruefe X Achse " # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Pruefe Y Achse " # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Pruefe Z Achse " # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Extruder waehlen:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Waehle Filament:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 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:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Infoanzeige" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Wurde Filament 1 geladen?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Filament einlegen" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "Ist das Filament geladen?" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Ist es wirklich PLA Filament?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Ist PLA Filament geladen?" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" msgstr "Liegt das Stahlblech auf dem Heizbett?" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Letzte Druckfehler" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche." + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Letzter Druck" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "Linker Luefter?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Links" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "Links [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Lineare Korrektur" # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Z einstellen" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf." + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Filament laden" # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Lade Farbe" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Filament laedt" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Lose Riemenscheibe" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "In Druckduese laden" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "M117 Erste-Schicht Kal." # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Hauptmenue" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Hell.wert" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Dimmwert" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "Messen der Referenzhoehe des Kalibrierpunktes" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "MeshBett Ausgleich" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Position wiederherstellen..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Temperatur wiederherstellen..." # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Schraeglauf" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "MMU Fehler" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "MMU Ladefehler" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "MMU Ladefehler" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Weiterdrucken..." -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Modus [Normal]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Modus" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Modus [leise]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "MK3-Firmware am MK3S-Drucker erkannt" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Leise" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "MMU erfordert Benutzereingriff." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "MMU Netzfehler" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Modus [Stealth]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Modus[Auto Power]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Auto Leist" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Modus[Hohe Leist]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Hohe leist" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU2 verbunden" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Achse bewegen" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Bewege X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Bewege Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Bewege Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Keine Bewegung." # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "Keine SD Karte" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" -msgstr "N.V." +msgstr "N/V" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "Nein" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "Nicht angeschlossen" @@ -846,972 +881,962 @@ msgid "New firmware version available:" msgstr "Neue Firmware- Version verfuegbar:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Dreht sich nicht" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Jetzt werde ich die Duese fuer PLA vorheizen." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Duese" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 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:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Testdruck jetzt von Stahlblech entfernen." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "Duesevent." # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Druck pausieren" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "PID Kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "PID Kalib. fertig" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "PID Kalibrierung" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "PINDA erwaermen" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 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:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Bitte pruefe:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Bitte laden Sie zuerst PLA Filament." - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 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:65 +#: messages.c:61 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:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen." -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Bitte ziehen Sie das Filament sofort heraus" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 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:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Bitte warten" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Bitte zuerst Transportsicherungen entfernen." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "Duese vorheizen!" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Vorheizen" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Vorheizen der Duese. Bitte warten." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Bitte aktualisieren." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Netzfehler" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Druck abgebrochen" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" msgstr "Heizen zum Laden" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" msgstr "Heizen zum Entladen" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "Druckvent.:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Drucken von SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "Knopf druecken zum" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Druck pausiert" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen" # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 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." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "Druckvent." +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Bitte laden Sie zuerst das Filament." + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Hinten [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Druck wiederherst " +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal." -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Druck wiederherst " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 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." -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "Reset XYZ Kalibr." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "Ruecksetzen" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Druck fortsetzen" -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" msgstr "Druck fortgesetzt" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" -msgstr "Rechts [um]" +msgstr "Rechts [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "RPi Port [an]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "RPi Port [aus]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" -msgstr "SD Karte [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "SD Karte" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "SD Karte[flshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Rechts" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "Suche Bett Kalibrierpunkt" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Waehle Sprache" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "Selbsttest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Selbsttest start " # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "Selbsttest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Selbsttest Fehler!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Selbsttest Error " # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 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:5045 +#: ultralcd.cpp:5102 msgid "Select nozzle preheat temperature which matches your material." msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht." -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "PLA Filament auswaehlen:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "Temp. einstellen:" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Einstellungen" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Endschalter Status" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Sensorstatus" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Sort. [ohne]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Sort." -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Sort. [Zeit]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Ohne" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Zeit" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Schwer.Schr:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Sort. [Alphabet]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Sortiere Dateien" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Sound [laut]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Laut" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Leicht.Schr:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Sound [stumm]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Sound [einmal]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Sound [leise]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Einmal" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Geschwindigkeit" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Dreht sich" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 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:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Statistiken " # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Druck abbrechen" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "GESTOPPT." # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Ausgetauscht" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Temp Kalib. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Filament auswaehlen:" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Temp. Kal. [an]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Temp Kalib." -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Temp. Kal. [aus]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Temp. kalibrieren" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Temperaturkalibrierung fehlgeschlagen" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "Temperatur" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "Temperaturen" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." +msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "Gesamtes Filament" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "Gesamte Druckzeit" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Feineinstellung" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Entladen" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Gesamte Fehler" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "Filament laden" # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "Filament entladen" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Filament entladen" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Filament auswerfen" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "Gesamt" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Beim Druck benutzt" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Spannungen" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "unbekannt" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Warte auf Benutzer.." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 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:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "Warten, bis PINDA- Sonde abgekuehlt ist" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Warnung: Platinentyp wurde geaendert." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Warnung: Druckertyp wurde geaendert." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "Konnten Sie das Filament entnehmen?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Verdrahtungsfehler" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "Assistent" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "XYZ Kal. Details" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Ja" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 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:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Auszeit" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "X-Korrektur:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Alle laden" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." -"XYZ calibration failed. Right front calibration point not reachable." -#: -msgid "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." -msgstr - # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Y Entfernung vom Min" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Y-Korrektur:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [aus]" +#: messages.c:105 +msgid "Off" +msgstr "Aus" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "An" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "Zurueck" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Kontrolle" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Falschtriggerung" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [ohne]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Strikt" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Warnen" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [strikt]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [warnen]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "HW Einstellungen" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Magnet Komp. [nv]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Magnet Komp." + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Gitter" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Magnet Komp. [Aus]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Magnet Komp. [An]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Gitter [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Gitter [7x7]" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "MeshBett Ausgleich" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "MK3S-Firmware auf MK3-Drucker erkannt" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "MMU Modus[Normal]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "MMU Modus" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "MMU Mod.[Stealth]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Moduswechsel erfolgt..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modell [ohne]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modell" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Duese D." # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modell [strikt]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modell [warnen]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Duese D. [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Duese D. [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Duese D. [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Duese [ohne]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Duese [strikt]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Duese [warnen]" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" msgstr "G-Code ist fuer einen anderen Level geslict. Fortfahren?" # -#: util.cpp:516 +#: util.cpp:520 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." msgstr "G-Code ist fuer einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." # -#: util.cpp:427 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "G-Code ist fuer einen anderen Drucker geslict. Fortfahren?" # -#: util.cpp:433 +#: util.cpp:437 msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." msgstr "G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." # -#: util.cpp:477 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "G-Code ist fuer eine neuere Firmware geslict. Fortfahren?" # -#: util.cpp:483 +#: util.cpp:487 msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" msgstr "Heizen zum Schnitt" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" msgstr "Heizen zum Auswurf" # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?" # -#: util.cpp:397 +#: util.cpp:401 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." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Umbenennen" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Auswahl" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Sensor Info" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Blech" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Sound [Assist]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "" -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Stahlbleche" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Z-Korrektur:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-Probe Nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-Probe Nr. [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "" diff --git a/lang/po/new/es.po b/lang/po/new/es.po index bf8e95ab0..a8073a837 100644 --- a/lang/po/new/es.po +++ b/lang/po/new/es.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:30:59 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:30:59 PM\n" +"POT-Creation-Date: Tue May 12 21:09:21 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:09:21 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 o mayor" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 o mas nueva" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr " de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" msgstr " de 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "[0;0] punto offset" @@ -41,53 +56,48 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Cancelar" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Ajustar-Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Todo bien" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Terminado! Feliz impresion!" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Ambiente" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "Haz clic" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 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:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" msgstr "" # MSG_AUTO_HOME @@ -95,748 +105,773 @@ msgstr "" msgid "Auto home" msgstr "Llevar al origen" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" -msgstr "Carga automatica de filamento" +msgstr "Carga auto. filam." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 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..." +msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 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..." +msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Longitud del eje" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Eje" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "Base / Calentador" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Base preparada" # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "Calentando Base" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "Corr. de la cama" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test cinturon " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Brill." + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Brillo" + # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "Base" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" -msgstr "Estado de la correa" +msgstr "Estado de correa" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "Se fue la luz. ?Reanudar la impresion?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Calibrando posicion inicial" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Calibrar XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Calibrar Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Calibrar" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Calibracion OK" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "Calibracion" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Cancelar" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "Tarjeta retirada" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Color no homogeneo" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Enfriar" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "Copiar idioma seleccionado?" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Det. choque [act]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Det. choque" -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Dec. choque [N/D]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Det. choque [ina]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla." # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Choque detectado." # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Choque detectado. Continuar impresion?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "Choque" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Actual" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Fecha:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Apagar motores" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "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_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 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=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "Corregir-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" -msgstr "Expulsar filamento" - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Expulsar" +msgstr "Expulsar fil." # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "Expulsando filamento" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "Endstop no alcanzado" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "Error - se ha sobre-escrito la memoria estatica" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Cortar filament" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Cuchillo" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Corte de filament" + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "Vent.extrusor:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" -msgstr "Informacion del extrusor" +msgstr "Info. del extrusor" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "Extruir" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "Estadistica de fallos MMU" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autocarg.Fil[act]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autocarg.Fil[N/D]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autocarg.Fil[ina]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autocarg.fil." # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Estadistica de fallos" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" -msgstr "Velocidad Vent." +msgstr "Velocidad Vent" # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Test ventiladores" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Comprob.vent[act]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Comprob.vent" -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Comprob.vent[ina]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Sensor Fil." -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Sensor Fil. [act]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Sensor Fil. [N/D]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Sensor Fil. [ina]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" msgstr "Filam. acabado" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" msgstr "Es nitido el color nuevo?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Fil. no introducido" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Sensor de filamento" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" msgstr "Filamento usado" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Tiempo de imp.:" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS accion" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 o +nueva" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "Archivo incompleto. ?Continuar de todos modos?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "Term. movimientos" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "Cal. primera cap." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 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:724 +#: mmu.cpp:727 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:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Flujo" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Vent. frontal?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Frontal [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Ventiladores frontal/izquierdo" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Calentador/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Calentadores desactivados por el temporizador de seguridad." # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." -msgstr "Calentamiento acabado." +msgstr "Calentando acabado." # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Calentando..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Cambiar filamento" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Cambio correcto" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "Cambio correcto?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "Control base cal." # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Control endstops" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Control fusor" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " -msgstr "Comprobando los sensores" +msgstr "Comprobando sensores" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Control sensor X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Control sensor Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Control sensor Z" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Elegir extrusor:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Elije filamento:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "Filamento" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 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:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Monitorizar" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "?Esta cargado el filamento 1?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Introducir filamento" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "Esta el filamento cargado?" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Es el filamento PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Esta el filamento PLA cargado?" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" -msgstr "?Esta colocada la lamina de acero sobre la base?" +msgstr "?Esta colocada la lamina sobre la base" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Ultimas impresiones fallidas" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero." + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Ultima impresion" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "Vent. izquierdo?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Izquierda" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "Izquierda [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Correccion de Linealidad" # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Micropaso Eje Z" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial." + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Introducir filam." # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Cambiando color" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Introduciendo filam." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Polea suelta" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "Cargar a la boquilla" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "M117 Cal. primera cap." # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Menu principal" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Valor brill." + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "Midiendo altura del punto de calibracion" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "Nivelacion Mesh Level" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Restaurando posicion..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Restaurando temperatura..." # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Desviacion med:" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "Fallos MMU" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "Carga MMU fallida" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "Carga MMU falla" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Resumiendo..." -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Modo [Normal]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Modo" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Modo [silencio]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detectado en impresora MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Silencio" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "MMU necesita atencion del usuario." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "Fallo de energia en MMU" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Modo [Silencio]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Silencio" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Modo[fuerza auto]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Fuerza auto" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Modo [rend.pleno]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Rend.pleno" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU2 conectado" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Mover ejes" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Mover X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Mover Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Mover Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Sin movimiento" # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "No hay tarjeta SD" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" msgstr "N/A" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "No hay conexion " @@ -846,967 +881,962 @@ msgid "New firmware version available:" msgstr "Nuevo firmware disponible:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Ventilador no gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Ahora precalentare la boquilla para PLA." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Boquilla" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 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:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Ahora retira la prueba de la lamina de acero." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "Vent. capa" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Pausar impresion" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "Cal. PID " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "Cal. PID terminada" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "Calibracion PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "Calentando PINDA" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "Limpia la superficie de la base, por favor, y haz clic" # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 msgid "Please clean the nozzle for calibration. Click when done." msgstr "Limpia boquilla para calibracion. Click cuando acabes." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Controla :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Carga el filamento PLA primero por favor." - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 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:65 +#: messages.c:61 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:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Por favor, pulsa el dial para descargar el filamento" -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Por favor retire el filamento de inmediato" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 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:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Por favor realiza la calibracion XYZ primero." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Por Favor Espere" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Por favor retira los soportes de envio primero." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" -msgstr "Precalienta extrusor!" +msgstr "Precalienta extrusor" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Precalentar" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Precalentando nozzle. Espera por favor." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Actualize por favor" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Pulsa el dial para precalentar la boquilla y continue." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pausa" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Cortes de energia" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Impresion cancelada" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" -msgstr "Precalentar para cargar" +msgstr "Precalent. cargar" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" -msgstr "Precalentar para descargar" +msgstr "Precalent. descargar" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "Vent.fusor:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Menu tarjeta SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "Pulsa el dial" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Impresion en pausa" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Presiona el dial para continuar con la temperatura de la boquilla." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 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." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" -msgstr "Vent.extr" +msgstr "Vent. extr" + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Por favor, cargar primero el filamento. " # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "prusa3d.es" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Trasera [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Recuperando impresion" +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Primero descargue el filamento, luego repita esta accion." -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Recuper. impresion " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 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." -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Reanudar impres." -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" -msgstr "Continuando impresion" +msgstr "Continuan. impresion" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "Derecha [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Puerto RPi [act]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Puerto RPi [ina]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Puerto RPi" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" -msgstr "Tarj. SD [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Tarj. SD" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Tarj. SD[FlshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Derecha" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "Buscando punto de calibracion base" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Cambiar el idioma" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Iniciar Selftest" # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " -msgstr "Selftest" +msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Error Selftest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Fallo Selftest" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 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:5045 +#: ultralcd.cpp:5102 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:4780 -msgid "Select PLA filament:" -msgstr "Seleccionar filamento PLA:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "Establecer temp.:" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Configuracion" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Mostrar endstops" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Estado del sensor" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Ordenar [ninguno]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Ordenar" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Ordenar [fecha]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Ninguno" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Fecha" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Incl.severa:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Ordenar [alfabet]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfabet" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Ordenando archivos" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Sonido [alto]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Alto" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Liger.incl.:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Sonido[silenciad]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Sonido" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Problema encontrado, nivelacion Z forzosa ..." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Sonido [una vez]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Sonido[silencios]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Una vez" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Velocidad" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Ventilador girando" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 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:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Estadisticas " # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Detener impresion" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "PARADA" # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "Soporte" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Intercambiado" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Cal. temp. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Selecciona filamento:" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Cal. temp. [on]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Cal. temp." -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Cal. temp. [off]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Selecciona la temperatura adecuada a tu material." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Calibracion temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Fallo de la calibracion de temperatura" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensor verificado, retire el filamento ahora." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "Temperatura" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "Temperaturas" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" -msgstr "Filamento total:" +msgstr "Filamento total" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" -msgstr "Tiempo total :" +msgstr "Tiempo total" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Ajustar" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Descargar" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Fallos totales" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "para cargar el filamento" # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "para descargar el filamento" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Soltar filamento" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Soltando filamento" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Usado en impresion" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Voltajes" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "desconocido" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Esperando ordenes" # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 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:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "Esperando a que se enfrie la sonda PINDA" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Cuidado: el tipo de placa ha cambiado." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Cuidado: Ha cambiado el tipo de impresora." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "?Se cargocon exito el filamento?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Error de conexion" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" -msgstr "Detalles de calibracion XYZ" +msgstr "Detalles cal. XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibracion XYZ fallada. Consulta el manual por favor." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Si" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 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:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Expirar" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "Corregir-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Intr. todos fil." # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable." # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Distancia en Y desde el min" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "La verificacion fallo, retire el filamento e intente nuevamente." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Corregir-Y:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr "[apag]" +#: messages.c:105 +msgid "Off" +msgstr "Ina" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Act" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "atras" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Comprobaciones" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Falsa activacion" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "FINDA:" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware[ninguno]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Estrict" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Aviso" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware[estrict]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [aviso]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "Configuracion HW" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Comp. imanes [N/A]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Comp. imanes" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Malla" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Comp. imanes [Off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Comp. imanes [On]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Malla [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Malla [7x7]" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "Nivelacion Malla Base" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "Firmware MK3S detectado en impresora MK3" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Modo MMU [Normal]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Modo MMU" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Modo MMU[Silenci]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Cambio de modo progresando ..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modelo [ninguno]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modelo" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam. nozzl" # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modelo [estricto]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modelo [aviso]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam. nozzl[0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam. nozzl[0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam. nozzl[0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Nozzle [ninguno]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Nozzle [estricto]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Nozzle [aviso]" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" msgstr "Codigo G laminado para un nivel diferente. ?Continuar?" # -#: util.cpp:516 +#: util.cpp:520 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." msgstr "Codigo G laminado para un nivel diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." # -#: util.cpp:427 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "Codigo G laminado para un tipo de impresora diferente. ?Continuar?" # -#: util.cpp:433 +#: util.cpp:437 msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." msgstr "Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." # -#: util.cpp:477 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "Codigo G laminado para nuevo firmware. ?Continuar?" # -#: util.cpp:483 +#: util.cpp:487 msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "PINDA:" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" -msgstr "Precalentando para laminar" +msgstr "Precalent. laminar" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" -msgstr "Precalentar para expulsar" +msgstr "Precalent. expulsar" # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "Diametro nozzle impresora difiere de cod.G. ?Continuar?" # -#: util.cpp:397 +#: util.cpp:401 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." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Renombrar" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Seleccionar" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Info sensor" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Lamina" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Sonido [asistido]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asistido" -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Lamina de acero" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Corregir-Z:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-sensor nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-sensor nr. [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Z-sensor nr." diff --git a/lang/po/new/fr.po b/lang/po/new/fr.po index 344b73292..05eb39205 100644 --- a/lang/po/new/fr.po +++ b/lang/po/new/fr.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:32:08 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:32:08 PM\n" +"POT-Creation-Date: Tue May 12 21:09:46 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:09:46 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 ou +ancien" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 ou +recent" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" -msgstr "de 4" +msgstr " de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" -msgstr "de 9" +msgstr " de 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "Offset point [0;0]" @@ -38,56 +53,51 @@ msgstr "La detection de\x0acrash peut etre\x0aactive seulement en\x0amode Normal # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 #: msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" -msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode feutre" +msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Annuler" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Ajuster Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Tout est correct" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Tout est pret. Bonne impression!" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Ambiant" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" -msgstr "et pressez le bouton" +msgstr "et appuyez sur le bouton" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 msgid "Are left and right Z~carriages all up?" msgstr "Z~carriages gauche + droite tout en haut?" -# MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" msgstr "" # MSG_AUTO_HOME @@ -95,748 +105,773 @@ msgstr "" msgid "Auto home" msgstr "Mise a 0 des axes" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "Autocharge du fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Chargement auto du filament uniquement si le capteur de filament est active." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Longueur de l'axe" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Axe" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "Lit / Chauffage" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Plateau termine" # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "Chauffe du lit" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "Corr. niveau plateau" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test de courroie " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." -msgstr "Echec bed leveling. Capt. non declenche. Debris sur buse? En attente d'un reset." +msgstr "Capt. non declenche pendant que je nivele le plateau. Debris sur buse? En attente d'un reset." + +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Brill." + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Luminosite" # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "Lit" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "Statut courroie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "Coupure detectee. Reprendre impression?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Calib. mise a 0" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Calibrer XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Calibrer Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Calibrer" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Calibration Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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 faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Calibration terminee" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Annuler" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "Carte retiree" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Couleur incorrecte" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Refroidissement" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" -msgstr "Copier la langue selectionne?" +msgstr "Copier la langue choisie?" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Detect.crash [on]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Detect.crash" -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Detect.crash[N/A]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Detect.crash[off]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran." # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Crash detecte." # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Crash detecte. Poursuivre l'impression?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Actuel" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Date:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Desactiver moteurs" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 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:5070 -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 plateau chauffant?" +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" -# MSG_EXTRUDER_CORRECTION c=10 -#: ultralcd.cpp:5134 +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" +msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?" + +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "Correct-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" msgstr "Remonter le fil." -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Remonter" - # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "Le fil. remonte" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "Butee non atteinte" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "Butee" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "Butees" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "Erreur - la memoire statique a ete ecrasee" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Coupe filament" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Coupeur" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Je coupe filament" + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement." +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "ERREUR:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "Ventilo extrudeur:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "Infos extrudeur" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "Extrudeur" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "Stat. d'echec MMU" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autochargeur [on]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autochargeur[N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autochargeur[off]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autocharg." # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Stat. d'echec" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "Vitesse vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Test du ventilateur" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Verif vent. [on]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Verif vent." -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Verif vent. [off]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Capteur Fil." -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Capteur Fil. [on]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Capteur Fil.[N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Capteur Fil.[off]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" -msgstr "Fins de filament" +msgstr "Fins filament" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" msgstr "Filament extrude et avec bonne couleur?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Filament non charge" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Capteur de filament" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" msgstr "Filament utilise" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Temps d'impression" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 ou +recent" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "Fichier incomplet. Continuer qd meme?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "Mouvement final" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "Cal. 1ere couche" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 msgid "First, I will run the selftest to check most common assembly problems." msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs." # -#: mmu.cpp:724 +#: mmu.cpp:727 msgid "Fix the issue and then press button on MMU unit." msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU." # MSG_FLOW -#: ultralcd.cpp:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Flux" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Ventilo impr avant?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Avant [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Ventilos avt/gauche" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Chauffage/Thermistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Chauffage desactivee par le compteur de securite." # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "Chauffe terminee." # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Chauffe" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Changer filament" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Changement reussi!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "Change correctement?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " -msgstr "Verification du lit" +msgstr "Verif. plateau chauf" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Verification butees" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Verif. du hotend" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " msgstr "Verif. des capteurs" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Verification axe X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Verification axe Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Verification axe Z" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Choisir extrudeur:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Choix du filament:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 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:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Ecran d'info" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Fil.1 est-il charge?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Inserez le filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "Fil. est-il charge?" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Est-ce du filament PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Fil. PLA est-il charge?" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" -msgstr "Plaque d'impression sur le lit chauffant?" +msgstr "Est la plaque sur le plat. chauffant?" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Echecs derniere imp." # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier." + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Derniere impres." # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" -msgstr "Ventilo tete gauche?" +msgstr "Ventilo gauche?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Gauche" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "Gauche [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Correction lin." # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Ajuster Z en dir." +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton." + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Charger filament" # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Charg. de la couleur" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Chargement du fil." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Poulie lache" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "Charger la buse" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "M117 Cal. 1ere couche" # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Menu principal" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Niveau brill" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" -msgstr "Mesure de la hauteur de reference du point de calibration" +msgstr "Je mesure la hauteur de reference du point de calibrage" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Reprise de la position ..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Rechauffage de la buse..." # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Deviat.mesuree" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "Echecs MMU" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "Echec chargement MMU" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "Echecs charg. MMU" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Reprise ..." -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" msgstr "" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mode [feutre]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detecte sur imprimante MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Furtif" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "Le MMU necessite l'attention de l'utilisateur." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "Echecs alim. MMU" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mode [furtif]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Furtif" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mode [puiss.auto]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Puiss.auto" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mode[haute puiss]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Haute puiss" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU2 connecte" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "Moteur" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Deplacer l'axe" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Deplacer X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Deplacer Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Deplacer Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Pas de mouvement." # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "Pas de carte SD" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "Non" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "Non connecte" @@ -846,972 +881,962 @@ msgid "New firmware version available:" msgstr "Nouvelle version de firmware disponible:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Ne tourne pas" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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 la surface du plateau chauffant." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Maintenant je vais prechauffer la buse pour du PLA." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Buse" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles" # -#: ultralcd.cpp:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Retirez maintenant l'impression de test de la plaque en acier." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "Vent. buse" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Pause de l'impr." # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "Calib. PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "Calib. PID terminee" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "Calibration PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "Chauffe de la PINDA" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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 vite l'imprimante." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." -msgstr "Nettoyez la plaque en acier et appuyez sur le bouton." +msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 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:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Verifiez:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Merci de consulter 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:4894 -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." - -# MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4795 -msgid "Please load PLA filament first." -msgstr "Chargez d'abord le filament PLA." - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 msgid "Please open idler and remove filament manually." msgstr "Ouvrez l'idler et retirez le filament manuellement." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:65 +#: messages.c:61 msgid "Please place steel sheet on heatbed." msgstr "Placez la plaque en acier sur le plateau chauffant." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Appuyez sur le bouton pour decharger le filament" -# -#: ultralcd.cpp:4889 -msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." -msgstr "Inserez du PLA dans le 1er tube du MMU, appuyez sur le bouton pour le charger." - # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Retirez immediatement le filament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 msgid "Please remove steel sheet from heatbed." msgstr "Retirez la plaque en acier du plateau chauffant." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Veuillez d'abord lancer la calibration XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Merci de patienter" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Retirez d'abord les protections de transport." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "Prechauffez la buse!" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Prechauffage" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Prechauffage de la buse. Merci de patienter." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Mettez a jour le FW." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Coup.de courant" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Impression annulee" -# c=20 r=1 -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" msgstr "Chauffe pour charger" -# c=20 r=1 -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" msgstr "Chauf.pour decharger" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "Vent. impr:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Impr. depuis la SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "App. sur sur bouton" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Impression en pause" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Appuyez sur le bouton pour rechauffer la buse." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 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." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "Vent. impr" +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Veuillez d'abord charger un filament." + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Arriere [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Recup. impression" +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "SVP, dechargez le filament et reessayez." -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Recup. impression " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 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." -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "Reinit. calib. XYZ" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "Reinitialiser" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Reprendre impression" -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" msgstr "Reprise de l'impr." # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "Droite [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Port RPi [on]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Port RPi [off]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Port RPi" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Lancement de 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:5322 -msgid "SD card [normal]" -msgstr "Carte SD [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Carte SD" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "CarteSD [flshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "FlshAir" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Droite" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" -msgstr "Recherche du point de calibration du lit" +msgstr "Recherche du point de calibration du plateau chauffant" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Choisir langue" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "Auto-test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Debut auto-test" # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "Auto-test" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Erreur auto-test!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Echec de l'auto-test" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur" # -#: ultralcd.cpp:5045 +#: ultralcd.cpp:5102 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:4780 -msgid "Select PLA filament:" -msgstr "Selectionnez le fil. PLA:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "Regler temp.:" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Reglages" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Afficher butees" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Etat capteur" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Tri [aucun]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Tri" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Tri [heure]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Aucun" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Heure" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Deviat.sev.:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Tri [alphabet]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Tri des fichiers" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Son [fort]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Fort" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Deviat.leg.:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Son [muet]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Son" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Son [une fois]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Son [feutre]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Une fois" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Vitesse" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Tourne" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis." # MSG_STATISTICS -#: ultralcd.cpp:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Statistiques" # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Arreter impression" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "ARRETE." # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Echange" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Selectionnez le filament:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." msgstr "Calib. Temp." -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Calib. Temp. [on]" - -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Calib. Temp.[off]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Selectionnez la temperature qui correspond a votre materiau." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Calibration temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Echec de la calibration en temperature" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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 activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Capteur verifie, retirez le filament maintenant." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "Filament total" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "Temps total impr." # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Regler" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Decharger" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Total des echecs" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "pour charger le fil." # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "pour decharger fil." # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Decharger fil." # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Dechargement fil." # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" -msgstr "" +msgstr "Totale" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Utilise pdt impr." # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Tensions" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "inconnu" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Attente utilisateur..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 msgid "Waiting for nozzle and bed cooling" -msgstr "Attente du refroidissement des buse et plateau" +msgstr "Attente du refroidissement des buse et plateau chauffant" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "Attente du refroidissement de la sonde PINDA" # -#: ultralcd.cpp:4868 +#: 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 Remonter le fil. 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Attention: Type de carte mere modifie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Attention: Type d'imprimante modifie" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "Dechargement du filament reussi?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Erreur de cablage" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "Assistant" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "Details calib. XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "Echec calibration XYZ. Consultez le manuel." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Oui" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "Correct-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Charger un par un" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable." # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Distance Y du min" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Verification en echec, retirez le filament et reessayez." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Correct-Y:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [off]" +#: messages.c:105 +msgid "Off" +msgstr "" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "Retour" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Verifications" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Faux declenchement" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "FINDA:" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [aucune]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Stricte" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Avert" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware[stricte]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [avert]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "Config HW" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "IR:" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Compens. aim.[N/A]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Compens. aim." -# -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Compens. aim.[off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Compens. aim. [on]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" +# MSG_MESH +#: messages.c:128 +msgid "Mesh" msgstr "" # -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "Firmware MK3S detecte sur imprimante MK3" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Mode MMU [normal]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Mode MMU" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Mode MMU [feutre]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Changement de mode en cours..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modele [aucune]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modele" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam. buse" # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modele [stricte]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modele [avert]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam. buse [0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam. buse [0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam. buse [0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Buse [aucune]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Buse [stricte]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Buse [avert]" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" -msgstr "" +msgstr "Le G-code a ete prepare pour un niveau different. Continuer?" # -#: util.cpp:516 +#: util.cpp:520 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." -msgstr "" +msgstr "Le G-code a ete prepare pour un niveau different. Veuillez decouper le modele a nouveau. L'impression a ete annulee." # -#: util.cpp:427 +#: util.cpp:431 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 +#: util.cpp:437 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 +#: util.cpp:481 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 +#: util.cpp:487 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." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "PINDA:" -# c=20 r=1 -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" msgstr "Chauffe pour couper" -# c=20 r=1 -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" msgstr "Chauf. pour remonter" # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Continuer?" # -#: util.cpp:397 +#: util.cpp:401 msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Renommer" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Selectionner" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Info capteur" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Plaque" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Son [assist]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "" -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Plaques en acier" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Correct-Z:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Mesurer x-fois [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Mesurer x-fois [3]" - -# -#: ultralcd.cpp:7039 -msgid "Z-probe nr. [5]" -msgstr "Mesurer x-fois [5]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Mesurer x-fois" diff --git a/lang/po/new/it.po b/lang/po/new/it.po index 8cec0ce68..8209a3bd8 100644 --- a/lang/po/new/it.po +++ b/lang/po/new/it.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:33:15 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:33:15 PM\n" +"POT-Creation-Date: Tue May 12 21:10:11 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:10:11 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cContinua%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 o inferiore" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 o superiore" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr " su 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" -msgstr "su 9" +msgstr " su 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "[0;0] punto offset" @@ -41,53 +56,53 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Annulla" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Compensaz. Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Nessun errore" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Tutto fatto. Buona stampa!" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Ambiente" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "e cliccare manopola" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 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:5200 -msgid "SpoolJoin [on]" -msgstr "" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" msgstr "" # MSG_AUTO_HOME @@ -95,748 +110,783 @@ msgstr "" msgid "Auto home" msgstr "Trova origine" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "Autocaric. filam." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 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:2813 +#: ultralcd.cpp:2804 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Lunghezza dell'asse" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Assi" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" -msgstr "Letto/Riscald." +msgstr "Piano/Riscald." # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Piano fatto." # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" -msgstr "Riscald. letto" +msgstr "Riscald. piano" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" -msgstr "Correz. liv.letto" +msgstr "Correz. liv.piano" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test cinghie " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 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." +msgstr "Livellamento piano fallito. Sensore KO? Residui su ugello? In attesa di reset." + +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Chiaro" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Luminosita'" # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" -msgstr "Letto" +msgstr "Piano" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "Stato cinghie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" -msgstr "C'e stato un Blackout. Recuperare la stampa?" +msgstr "Blackout rilevato. Recuperare la stampa?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Calibrazione Home" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Calibra XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Calibra Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Calibra" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Calibrazione completa" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "Calibrazione" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Annulla" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "SD rimossa" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Colore non puro" # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Raffredda" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "Copiare la lingua selezionata?" -# MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Rileva.crash [on]" +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "Rileva.crash" -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Rileva.crash[N/A]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Rileva.crash[off]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo." # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Rilevato impatto." # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Scontro rilevato. Riprendere la stampa?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "Impatto" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Attuale" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Disabilita motori" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "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." +msgstr "Distanza tra la punta dell'ugello e la superficie del piano non ancora impostata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo strato." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "" + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 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=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "Correzione-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" -msgstr "Espelli filamento " - -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Espellere" +msgstr "Espelli filamento" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" -msgstr "Espellendo filamento " +msgstr "Espellendo filamento" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" -msgstr "Finecorsa fuori portata" +msgstr "Finec. fuori portata" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "Finecorsa" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "Finecorsa" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" -msgstr "Errore - la memoria statica e stata sovrascritta" +msgstr "Errore - la memoria statica e' stata sovrascritta" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Taglia filamento" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Tagliatr." + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Tagliando filam." # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Scuro" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "ERRORE:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "Ventola estr:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "Info estrusore" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "Estrusore" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "Stat.fall. MMU" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autocar.fil. [on]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autocar.fil.[N/A]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autocar.fil.[off]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autocar.fil." # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Stat. fallimenti" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "Velocita vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Test ventola" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Control.vent [on]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Control.vent" -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Control.vent[off]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Sensore fil." -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Sensore fil. [on]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Sensore fil.[N/A]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Sensore fil.[off]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" -msgstr "Filam. esauriti" +msgstr "Fil. esauriti" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" -msgstr "Filamento estruso & con il giusto colore?" +msgstr "Filamento estruso e con colore corretto?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Fil. non caricato" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Sensore filam." -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" -msgstr "Filamento utilizzato" +msgstr "Fil. utilizzato" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Tempo di stampa" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "File incompleto. Continuare comunque?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" -msgstr "Finalizzando gli spostamenti" +msgstr "Finaliz. spostamenti" # MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +#: messages.c:103 msgid "First layer cal." msgstr "Cal. primo strato" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 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:724 +#: mmu.cpp:727 msgid "Fix the issue and then press button on MMU unit." -msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. " +msgstr "Risolvere il problema e premere il bottone sull'unita MMU. " # MSG_FLOW -#: ultralcd.cpp:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Flusso" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Ventola frontale?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Fronte [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Ventola frontale/sinistra" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Riscald./Termist." # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Riscaldamento fermato dal timer di sicurezza." # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "Riscald. completo" # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Riscaldamento..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Cambia filamento" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Cambio riuscito!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" -msgstr "Cambiato correttamente?" +msgstr "Cambio corretto?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "Verifica piano" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Verifica finecorsa" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Verifica ugello" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " msgstr "Controllo sensori" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Verifica asse X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Verifica asse Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Verifica asse Z" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Seleziona estrusore:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Scegliere filamento:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "Filamento" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 msgid "I will run z calibration now." msgstr "Adesso avviero la Calibrazione Z." -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Schermata info" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Il filamento 1 e caricato?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Inserire filamento" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" -msgstr "Il filamento e stato caricato?" - -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "E' un filamento di PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "E' stato caricato il filamento di PLA?" +msgstr "Il filamento e' stato caricato?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" -msgstr "La piastra d'acciaio e sul piano riscaldato?" +msgstr "Piastra d'acciaio su piano riscaldato?" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Fallimenti ultima stampa" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio." + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Ultima stampa" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "Vent SX hotend?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Sinistra" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" -msgstr "Sinistra [um]" +msgstr "Sinistra [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Correzione lineare" # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Compensazione Z" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola." + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Carica filamento" # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Caricando colore" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Caricando filamento" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Puleggia lenta" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "Carica ugello" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." -msgstr "M117 Calibrazione primo layer." +msgstr "M117 Calibr. primo strato" # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Menu principale" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Liv. Chiaro" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Liv. Scuro" + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "Misura altezza di rif. del punto di calib." # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" -msgstr "Livel. piatto" +msgstr "Liv. grilia piano" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. riprendendo la posizione... " # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Ripristino temperatura... " # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Deviazione mis" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "Fallimenti MMU" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "Caricamento MMU fallito" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "Caricamenti MMU falliti" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Riprendendo... " -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Mod. [normale]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Mod." -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Mod. [silenziosa]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 rilevato su stampante MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "Normale" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Silenzioso" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "Il MMU richiede attenzione dall'utente." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "Manc. corr. MMU" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Mod. [silenziosa]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Silenziosa" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Mod. [auto]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Auto" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Mod. [forte]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Forte" # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU2 connessa" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "Motore" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Muovi asse" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Sposta X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Sposta Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Sposta Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Nessun movimento." # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "Nessuna SD" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" -msgstr "" +msgstr "N/D" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "" +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr + # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "Non connesso" @@ -846,967 +896,972 @@ msgid "New firmware version available:" msgstr "Nuova versione firmware disponibile:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Non gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Adesso preriscaldero l'ugello per PLA." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Ugello" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." # -#: ultralcd.cpp:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "Ventola estrusore" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Metti in pausa" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "Calibrazione PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "Calib. PID completa" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "Calibrazione PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "Riscaldamento PINDA" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "Per favore pulisci il piatto, poi premi la manopola." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 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:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Verifica:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -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:3064 +#: Marlin_main.cpp:3138 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:65 +#: messages.c:61 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:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Premete la manopola per scaricare il filamento " -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Estrarre il filamento immediatamente" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 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:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Esegui la calibrazione XYZ prima. " # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Attendere" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Per favore rimuovete i materiali da spedizione" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "Prerisc. ugello!" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Preriscalda" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Preriscaldando l'ugello. Attendere prego." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Prego aggiornare." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Premete la manopola per preriscaldare l'ugello e continuare." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pausa" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Mancanza corrente" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Stampa interrotta" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" -msgstr "Preriscaldamento per caricare" +msgstr "Preriscald. carico" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" -msgstr "Preriscaldamento per scaricare" +msgstr "Preriscald. scarico" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "Vent.stam:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Stampa da SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "Premere la manopola" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Stampa in pausa" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Premete la manopola per recuperare la temperatura dell'ugello." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 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." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "Ventola di stampa" +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Per favore prima carica il filamento." + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Retro [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Scaricare prima il filamento, poi ripetere l'operazione." + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 msgid "Recovering print " -msgstr "Recupero stampa" +msgstr "Recupero stampa " -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 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. " +msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento." -# +# c=20 #: msgid "Prusa i3 MK3S OK." msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "Reset calibrazione XYZ." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "" +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr + # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Riprendi stampa" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +#: messages.c:69 msgid "Resuming print" msgstr "Riprendi stampa" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "Destra [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Porta RPi [on]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Porta RPi [off]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Porta RPi" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" -msgstr "Mem. SD [normale]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Mem. SD" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Mem. SD [flshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Destra" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "Ricerca dei punti di calibrazione del piano" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Seleziona lingua" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "Autotest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Avvia autotest" # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "Autotest" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Errore Autotest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Autotest fallito" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Verra effettuato un self test per calibrare l'homing senza sensori" # -#: ultralcd.cpp:5045 +#: ultralcd.cpp:5102 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale." -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Selezionate filamento PLA:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" -msgstr "Imposta temperatura:" +msgstr "Imposta temperatura" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Impostazioni" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Stato finecorsa" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Stato sensore" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Ordina [nessuno]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Ordina" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Ordina [cron.]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Nessuno" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Cron." # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Devia.grave:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Ordine [alfabeti]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfabeti" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Ordinando i file" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Suono [forte]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Forte" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Devia.lieve:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Suono [mute]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Suono" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "Esaurim" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Sono stati rilevati problemi, avviato livellamento Z ..." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Suono [singolo]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Suono[silenzioso]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Singolo" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Velocita" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Gira" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 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:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Statistiche" # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Arresta stampa" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "ARRESTATO." # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "Supporto" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Scambiato" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Calib. temp. " +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Seleziona il filamento:" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Calib. temp. [on]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Calib. temp." -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Calib. temp.[off]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Seleziona la temperatura appropriata per il tuo materiale." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Calib. Temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Calibrazione temperatura fallita" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Sensore verificato, rimuovere il filamento." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "" +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr + # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "Temperature" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "Filamento totale" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "Tempo stampa totale" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Regola" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Scarica" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Totale fallimenti" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "per caricare il filamento" # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "per scaricare il filamento" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Scarica filamento" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Scaricando filamento" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "Totale" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Usati nella stampa" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Voltaggi" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "sconosciuto" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Attendendo utente..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 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:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "In attesa del raffreddamento della sonda PINDA" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Avviso: tipo di scheda madre cambiato" # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Avviso: tipo di stampante cambiato." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "Filamento scaricato con successo?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Errore cablaggio" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "XYZ Cal. dettagli" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Si" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 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:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "Correzione-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Caricare tutti" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." +msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Distanza Y dal min" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "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):" + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Verifica fallita, rimuovere il filamento e riprovare." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Correzione-Y:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" +#: messages.c:105 +msgid "Off" +msgstr "" + +# MSG_ON +#: messages.c:106 +msgid "On" msgstr "" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "Indietro" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Controlli" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Falso innesco" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware[nessuno]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Esatto" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Avviso" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [esatto]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware [avviso]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "Installazione HW" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Comp. Magneti[N/A]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Comp. Magneti" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Griglia" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Comp. Magneti[off]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Comp. Magneti [on]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Griglia [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Griglia [7x7]" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" -msgstr "Mesh livel. letto" +msgstr "Liv. griglia piano" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "Firmware MK3S rilevato su stampante MK3" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Modalita MMU [Normale]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Mod. MMU" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Modalita MMU [Silenziosa]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Cambio modalita in corso ..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Modello [nessuno]" +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "Modello" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Diam.Ugello" # -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Modello [esatto]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Modello [avviso]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Diam.Ugello[0.25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Diam.Ugello[0.40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Diam.Ugello[0.60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Ugello [nessuno]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Ugello [esatto]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Ugello [avviso]" - -# -#: util.cpp:510 +#: util.cpp:514 msgid "G-code sliced for a different level. Continue?" msgstr "G-code processato per un livello diverso. Continuare?" # -#: util.cpp:516 +#: util.cpp:520 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 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "G-code processato per una stampante diversa. Continuare?" # -#: util.cpp:433 +#: util.cpp:437 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 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "G-code processato per un firmware piu recente. Continuare?" # -#: util.cpp:483 +#: util.cpp:487 msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" -msgstr "Preriscaldamento per taglio" +msgstr "Preriscalda. taglio" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" -msgstr "Preriscaldamento per espulsione" +msgstr "Preriscalda. espuls." # -#: util.cpp:390 +#: util.cpp:394 msgid "Printer nozzle diameter differs from the G-code. Continue?" msgstr "Diametro ugello diverso da G-Code. Continuare?" # -#: util.cpp:397 +#: util.cpp:401 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." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "atteso livello %s" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Rinomina" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Seleziona" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Info Sensore" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Piano" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Suono [assist.]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Assist." -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Piani d'acciaio" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Correzione-Z:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Z-probe nr. [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Z-probe nr. [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Nr. Z-test" diff --git a/lang/po/new/pl.po b/lang/po/new/pl.po index 055768382..5cb88c7f9 100644 --- a/lang/po/new/pl.po +++ b/lang/po/new/pl.po @@ -7,26 +7,41 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Sun, Sep 22, 2019 1:34:25 PM\n" -"PO-Revision-Date: Sun, Sep 22, 2019 1:34:25 PM\n" +"POT-Creation-Date: Tue May 12 21:10:37 CEST 2020\n" +"PO-Revision-Date: Tue May 12 21:10:37 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" "Last-Translator: \n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 lub starszy" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 lub nowszy" + # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 -#: messages.c:39 +#: messages.c:36 msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:60 +#: messages.c:56 msgid " of 9" msgstr " z 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:3089 +#: ultralcd.cpp:3064 msgid "[0;0] point offset" msgstr "[0;0] przesun.punktu" @@ -41,802 +56,822 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth" # -#: ultralcd.cpp:2472 +#: ultralcd.cpp:2460 msgid ">Cancel" msgstr ">Anuluj" # MSG_BABYSTEPPING_Z c=15 -#: ultralcd.cpp:3209 +#: ultralcd.cpp:3184 msgid "Adjusting Z:" msgstr "Ustawianie Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8679 msgid "All correct " msgstr "Wszystko OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:101 +#: messages.c:99 msgid "All is done. Happy printing!" msgstr "Gotowe. Udanego drukowania!" # -#: ultralcd.cpp:2009 +#: ultralcd.cpp:1956 msgid "Ambient" msgstr "Otoczenie" -# MSG_PRESS c=20 -#: ultralcd.cpp:2618 +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 msgid "and press the knob" msgstr "i nacisnij pokretlo" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3529 +#: ultralcd.cpp:3506 msgid "Are left and right Z~carriages all up?" msgstr "Obydwa konce osi sa na szczycie?" -# MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:5200 -msgid "SpoolJoin [on]" -msgstr "SpoolJoin [wl]" - -# -#: ultralcd.cpp:5196 -msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/D]" - -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:5204 -msgid "SpoolJoin [off]" -msgstr "SpoolJoin [wyl]" +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" # MSG_AUTO_HOME #: messages.c:11 msgid "Auto home" msgstr "Auto zerowanie" -# MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6822 +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 msgid "AutoLoad filament" msgstr "Autoladowanie fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4462 +#: ultralcd.cpp:4445 msgid "Autoloading filament available only when filament sensor is turned on..." -msgstr "Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..." +msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2813 +#: ultralcd.cpp:2804 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:7949 +#: ultralcd.cpp:8327 msgid "Axis length" msgstr "Dlugosc osi" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7951 +#: ultralcd.cpp:8329 msgid "Axis" msgstr "Os" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7893 +#: ultralcd.cpp:8271 msgid "Bed / Heater" msgstr "Stol / Grzanie" # MSG_BED_DONE -#: messages.c:16 +#: messages.c:15 msgid "Bed done" msgstr "Stol OK" # MSG_BED_HEATING -#: messages.c:17 +#: messages.c:16 msgid "Bed Heating" msgstr "Grzanie stolu.." # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5768 +#: ultralcd.cpp:5861 msgid "Bed level correct" msgstr "Korekta stolu" -# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 -#: messages.c:18 +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test paskow" + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 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_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Jasny" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Jasnosc" + # MSG_BED -#: messages.c:15 +#: messages.c:14 msgid "Bed" msgstr "Stol" -# MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2059 +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 msgid "Belt status" msgstr "Stan paskow" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:71 +#: messages.c:67 msgid "Blackout occurred. Recover print?" msgstr "Wykryto zanik napiecia. Kontynowac?" # -#: ultralcd.cpp:8297 +#: ultralcd.cpp:8681 msgid "Calibrating home" msgstr "Zerowanie osi" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5757 +#: ultralcd.cpp:5850 msgid "Calibrate XYZ" msgstr "Kalibracja XYZ" # MSG_HOMEYZ -#: messages.c:48 +#: messages.c:44 msgid "Calibrate Z" msgstr "Kalibruj Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4654 +#: ultralcd.cpp:4637 msgid "Calibrate" msgstr "Kalibruj" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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." # MSG_CALIBRATE_Z_AUTO c=20 r=2 -#: messages.c:20 +#: messages.c:19 msgid "Calibrating Z" msgstr "Kalibruje Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3492 +#: ultralcd.cpp:3469 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:816 +#: ultralcd.cpp:865 msgid "Calibration done" msgstr "Kalibracja OK" # MSG_MENU_CALIBRATION -#: messages.c:61 +#: messages.c:57 msgid "Calibration" msgstr "Kalibracja" # -#: ultralcd.cpp:4781 +#: ultralcd.cpp:4815 msgid "Cancel" msgstr "Anuluj" # MSG_SD_REMOVED -#: ultralcd.cpp:8679 +#: ultralcd.cpp:9092 msgid "Card removed" msgstr "Karta wyjeta" # MSG_NOT_COLOR -#: ultralcd.cpp:2718 +#: ultralcd.cpp:2709 msgid "Color not correct" msgstr "Kolor zanieczysz." # MSG_COOLDOWN -#: messages.c:23 +#: messages.c:22 msgid "Cooldown" msgstr "Chlodzenie" # -#: ultralcd.cpp:4587 +#: ultralcd.cpp:4570 msgid "Copy selected language?" msgstr "Skopiowac wybrany jezyk?" # MSG_CRASHDETECT_ON -#: messages.c:27 -msgid "Crash det. [on]" -msgstr "Wykr.zderzen [wl]" +#: messages.c:24 +msgid "Crash det." +msgstr "Wykr.zderzen" -# MSG_CRASHDETECT_NA -#: messages.c:25 -msgid "Crash det. [N/A]" -msgstr "Wykr.zderzen[N/D]" - -# MSG_CRASHDETECT_OFF -#: messages.c:26 -msgid "Crash det. [off]" -msgstr "Wykr.zderzen[wyl]" +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym." # MSG_CRASH_DETECTED c=20 r=1 -#: messages.c:24 +#: messages.c:23 msgid "Crash detected." msgstr "Zderzenie wykryte" # -#: Marlin_main.cpp:600 +#: Marlin_main.cpp:607 msgid "Crash detected. Resume print?" msgstr "Wykryto zderzenie. Wznowic druk?" # -#: ultralcd.cpp:1853 +#: ultralcd.cpp:1785 msgid "Crash" msgstr "Zderzenie" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5909 +#: ultralcd.cpp:6002 msgid "Current" msgstr "Aktualne" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2213 +#: ultralcd.cpp:2163 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5654 +#: ultralcd.cpp:5743 msgid "Disable steppers" msgstr "Wylacz silniki" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 -#: messages.c:14 +#: messages.c:13 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 "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy." +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "Kont." + # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:5070 +#: ultralcd.cpp:5125 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=10 -#: ultralcd.cpp:5134 +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 msgid "E-correct:" msgstr "Korekcja-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: messages.c:53 +#: messages.c:49 msgid "Eject filament" msgstr "Wysun filament" -# -#: ultralcd.cpp:4869 -msgid "Eject" -msgstr "Wysun" - # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1434 +#: mmu.cpp:1416 msgid "Ejecting filament" msgstr "Wysuwanie filamentu" -# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7917 +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8295 msgid "Endstop not hit" msgstr "Krancowka nie aktyw." # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7911 +#: ultralcd.cpp:8289 msgid "Endstop" msgstr "Krancowka" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7899 +#: ultralcd.cpp:8277 msgid "Endstops" msgstr "Krancowki" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6859 +#: ultralcd.cpp:6998 msgid "Error - static memory has been overwritten" msgstr "Blad - pamiec statyczna zostala nadpisana" +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Ciecie filamentu" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Nozyk" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Obcinanie fil." + # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4475 +#: ultralcd.cpp:4458 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Sciemn" + # MSG_ERROR -#: messages.c:28 +#: messages.c:25 msgid "ERROR:" msgstr "BLAD:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8304 +#: ultralcd.cpp:8688 msgid "Extruder fan:" msgstr "WentHotend:" -# MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2244 +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 msgid "Extruder info" msgstr "Ekstruder - info" # MSG_MOVE_E -#: messages.c:29 +#: messages.c:26 msgid "Extruder" msgstr "Ekstruder" # -#: ultralcd.cpp:6846 +#: ultralcd.cpp:6985 msgid "Fail stats MMU" msgstr "Bledy MMU" -# MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:5168 -msgid "F. autoload [on]" -msgstr "Autolad.fil. [wl]" - -# MSG_FSENS_AUTOLOAD_NA c=17 r=1 -#: messages.c:43 -msgid "F. autoload [N/A]" -msgstr "Autolad.fil.[N/D]" - -# MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:5170 -msgid "F. autoload [off]" -msgstr "Autolad.fil.[wyl]" +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "Autolad. fil." # -#: ultralcd.cpp:6843 +#: ultralcd.cpp:6982 msgid "Fail stats" msgstr "Statystyki bledow" # MSG_FAN_SPEED c=14 -#: messages.c:31 +#: messages.c:28 msgid "Fan speed" msgstr "Predkosc went." # MSG_SELFTEST_FAN c=20 -#: messages.c:78 +#: messages.c:74 msgid "Fan test" msgstr "Test wentylatora" -# MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5663 -msgid "Fans check [on]" -msgstr "Sprawd.went. [wl]" +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Sprawd.went." -# MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5665 -msgid "Fans check [off]" -msgstr "Sprawd.went.[wyl]" +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Czuj. filam." -# MSG_FSENSOR_ON -#: messages.c:45 -msgid "Fil. sensor [on]" -msgstr "Czuj. filam. [wl]" - -# MSG_FSENSOR_NA -#: ultralcd.cpp:5148 -msgid "Fil. sensor [N/A]" -msgstr "Czuj. filam.[N/D]" - -# MSG_FSENSOR_OFF -#: messages.c:44 -msgid "Fil. sensor [off]" -msgstr "Czuj. filam.[wyl]" - -# -#: ultralcd.cpp:1852 +# c=14 +#: ultralcd.cpp:1784 msgid "Filam. runouts" -msgstr "Konc. filamentu" +msgstr "Konc.filamentu" # MSG_FILAMENT_CLEAN c=20 r=2 -#: messages.c:32 +#: messages.c:29 msgid "Filament extruding & with correct color?" -msgstr "Filament wychodzi z dyszy, kolor jest ok?" +msgstr "Filament wychodzi z dyszy,kolor jest ok?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2714 +#: ultralcd.cpp:2705 msgid "Filament not loaded" msgstr "Fil. nie zaladowany" # MSG_FILAMENT_SENSOR c=20 -#: messages.c:84 +#: messages.c:80 msgid "Filament sensor" msgstr "Czujnik filamentu" -# MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2885 +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 msgid "Filament used" msgstr "Uzyty filament" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2886 +#: ultralcd.cpp:2870 msgid "Print time" msgstr "Czas druku" -# MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:8432 +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "Akcja FS" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 lub nowszy" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8816 msgid "File incomplete. Continue anyway?" msgstr "Plik niekompletny. Kontynowac?" -# MSG_FINISHING_MOVEMENTS c=20 r=1 -#: messages.c:40 +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 msgid "Finishing movements" msgstr "Konczenie druku" -# MSG_V2_CALIBRATION c=17 r=1 -#: messages.c:105 +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 msgid "First layer cal." msgstr "Kal. 1. warstwy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4982 +#: ultralcd.cpp:5046 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:724 +#: mmu.cpp:727 msgid "Fix the issue and then press button on MMU unit." msgstr "Rozwiaz problem i wcisnij przycisk na MMU." # MSG_FLOW -#: ultralcd.cpp:6932 +#: ultralcd.cpp:7125 msgid "Flow" msgstr "Przeplyw" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2206 +#: ultralcd.cpp:2156 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:75 +#: messages.c:71 msgid "Front print fan?" msgstr "Przedni went. druku?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3294 +#: ultralcd.cpp:3266 msgid "Front side[um]" msgstr "Przod [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7957 +#: ultralcd.cpp:8335 msgid "Front/left fans" msgstr "Przedni/lewy wentylator" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7887 +#: ultralcd.cpp:8265 msgid "Heater/Thermistor" msgstr "Grzalka/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:8467 +#: Marlin_main.cpp:9440 msgid "Heating disabled by safety timer." msgstr "Grzanie wylaczone przez wyl. czasowy" # MSG_HEATING_COMPLETE c=20 -#: messages.c:47 +#: messages.c:43 msgid "Heating done." msgstr "Grzanie zakonczone" # MSG_HEATING -#: messages.c:46 +#: messages.c:42 msgid "Heating" msgstr "Grzanie..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4961 +#: ultralcd.cpp:5025 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:2207 +#: ultralcd.cpp:2157 msgid "howto.prusa3d.com" msgstr "" # MSG_FILAMENTCHANGE -#: messages.c:37 +#: messages.c:34 msgid "Change filament" msgstr "Wymiana filamentu" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2629 +#: ultralcd.cpp:2620 msgid "Change success!" msgstr "Wymiana ok!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2706 +#: ultralcd.cpp:2697 msgid "Changed correctly?" msgstr "Wymiana ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:81 +#: messages.c:77 msgid "Checking bed " msgstr "Kontrola stolu" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8286 +#: ultralcd.cpp:8670 msgid "Checking endstops" msgstr "Kontrola krancowek" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8292 +#: ultralcd.cpp:8676 msgid "Checking hotend " msgstr "Kontrola hotendu" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:82 +#: messages.c:78 msgid "Checking sensors " -msgstr "Sprawdzanie czujnikow" +msgstr "Kontrola czujnikow" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:8287 +#: ultralcd.cpp:7482 msgid "Checking X axis " msgstr "Kontrola osi X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:8288 +#: ultralcd.cpp:7491 msgid "Checking Y axis " msgstr "Kontrola osi Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8673 msgid "Checking Z axis " msgstr "Kontrola osi Z" # MSG_CHOOSE_EXTRUDER c=20 r=1 -#: messages.c:49 +#: messages.c:45 msgid "Choose extruder:" msgstr "Wybierz ekstruder:" # MSG_CHOOSE_FILAMENT c=20 r=1 -#: messages.c:50 +#: messages.c:46 msgid "Choose filament:" msgstr "Wybierz filament:" # MSG_FILAMENT c=17 r=1 -#: messages.c:30 +#: messages.c:27 msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4991 +#: ultralcd.cpp:5055 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:4999 +#: ultralcd.cpp:5063 msgid "I will run z calibration now." msgstr "Przeprowadze kalibracje Z." -# MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:5064 -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_WATCH -#: messages.c:99 +#: messages.c:97 msgid "Info screen" msgstr "Ekran informacyjny" -# -#: ultralcd.cpp:5024 -msgid "Is filament 1 loaded?" -msgstr "Filament 1 zaladowany?" - # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2614 +#: ultralcd.cpp:2605 msgid "Insert filament" msgstr "Wprowadz filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:5027 +#: ultralcd.cpp:4835 msgid "Is filament loaded?" msgstr "Filament jest zaladowany?" -# MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:5058 -msgid "Is it PLA filament?" -msgstr "Czy to filament PLA?" - -# MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4790 -msgid "Is PLA filament loaded?" -msgstr "Fialment PLA jest zaladowany?" - # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:92 +#: messages.c:90 msgid "Is steel sheet on heatbed?" msgstr "Czy plyta stal. jest na podgrzew. stole?" # -#: ultralcd.cpp:1795 +#: ultralcd.cpp:1727 msgid "Last print failures" msgstr "Ostatnie bledy druku" # -#: ultralcd.cpp:1772 +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe." + +# +#: ultralcd.cpp:1704 msgid "Last print" msgstr "Ost. wydruk" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:76 +#: messages.c:72 msgid "Left hotend fan?" msgstr "Lewy went hotendu?" # -#: ultralcd.cpp:3018 +#: ultralcd.cpp:2993 msgid "Left" msgstr "Lewa" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3292 +#: ultralcd.cpp:3264 msgid "Left side [um]" msgstr "Lewo [um]" # -#: ultralcd.cpp:5680 +#: ultralcd.cpp:5766 msgid "Lin. correction" msgstr "Korekcja liniowa" # MSG_BABYSTEP_Z -#: messages.c:13 +#: messages.c:12 msgid "Live adjust Z" msgstr "Ustaw. Live Z" +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo." + # MSG_LOAD_FILAMENT c=17 -#: messages.c:51 +#: messages.c:47 msgid "Load filament" msgstr "Ladowanie fil." # MSG_LOADING_COLOR -#: ultralcd.cpp:2654 +#: ultralcd.cpp:2645 msgid "Loading color" msgstr "Czyszcz. koloru" # MSG_LOADING_FILAMENT c=20 -#: messages.c:52 +#: messages.c:48 msgid "Loading filament" msgstr "Laduje filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7941 +#: ultralcd.cpp:8319 msgid "Loose pulley" msgstr "Luzne kolo pasowe" # -#: ultralcd.cpp:6805 +#: ultralcd.cpp:6944 msgid "Load to nozzle" msgstr "Zaladuj do dyszy" -# MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:55 +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 msgid "M117 First layer cal." msgstr "M117 Kal. 1. warstwy" # MSG_MAIN -#: messages.c:56 +#: messages.c:52 msgid "Main" msgstr "Menu glowne" +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "Poziom jasn." + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "Poziom ciem." + # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:59 +#: messages.c:55 msgid "Measuring reference height of calibration point" msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5763 +#: ultralcd.cpp:5856 msgid "Mesh Bed Leveling" msgstr "Poziomowanie stolu wg siatki" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:762 +#: mmu.cpp:765 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Wznawianie pozycji." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:755 +#: mmu.cpp:758 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Wznawiam nagrzewanie..." # -#: ultralcd.cpp:3059 +#: ultralcd.cpp:3034 msgid "Measured skew" msgstr "Zmierzony skos" # -#: ultralcd.cpp:1796 +#: ultralcd.cpp:1728 msgid "MMU fails" msgstr "Bledy MMU" # -#: mmu.cpp:1613 +#: mmu.cpp:1588 msgid "MMU load failed " msgstr "Blad ladowania MMU" # -#: ultralcd.cpp:1797 +#: ultralcd.cpp:1729 msgid "MMU load fails" msgstr "Bledy ladow. MMU" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:773 +#: mmu.cpp:776 msgid "MMU OK. Resuming..." msgstr "MMU OK. Wznawianie..." -# MSG_STEALTH_MODE_OFF -#: messages.c:90 -msgid "Mode [Normal]" -msgstr "Tryb [normalny]" +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Tryb" -# MSG_SILENT_MODE_ON -#: messages.c:89 -msgid "Mode [silent]" -msgstr "Tryb [cichy]" +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Wykryto firmware MK3 w drukarce MK3S" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "Normalny" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Cichy" # -#: mmu.cpp:719 +#: mmu.cpp:722 msgid "MMU needs user attention." msgstr "MMU wymaga uwagi uzytkownika." # -#: ultralcd.cpp:1823 +#: ultralcd.cpp:1755 msgid "MMU power fails" msgstr "Zaniki zasil. MMU" -# MSG_STEALTH_MODE_ON -#: messages.c:91 -msgid "Mode [Stealth]" -msgstr "Tryb [cichy]" +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Cichy" -# MSG_AUTO_MODE_ON -#: messages.c:12 -msgid "Mode [auto power]" -msgstr "Tryb [automatycz]" +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Automatycz" -# MSG_SILENT_MODE_OFF -#: messages.c:88 -msgid "Mode [high power]" -msgstr "Tryb[wysoka wyd.]" +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Wysoka wyd." # -#: ultralcd.cpp:2219 +#: ultralcd.cpp:2186 msgid "MMU2 connected" msgstr "MMU podlaczone" # MSG_SELFTEST_MOTOR -#: messages.c:83 +#: messages.c:79 msgid "Motor" msgstr "Silnik" # MSG_MOVE_AXIS -#: ultralcd.cpp:5652 +#: ultralcd.cpp:5741 msgid "Move axis" msgstr "Ruch osi" # MSG_MOVE_X -#: ultralcd.cpp:4378 +#: ultralcd.cpp:4361 msgid "Move X" msgstr "Ruch osi X" # MSG_MOVE_Y -#: ultralcd.cpp:4379 +#: ultralcd.cpp:4362 msgid "Move Y" msgstr "Ruch osi Y" # MSG_MOVE_Z -#: ultralcd.cpp:4380 +#: ultralcd.cpp:4363 msgid "Move Z" msgstr "Ruch osi Z" # MSG_NO_MOVE -#: Marlin_main.cpp:5292 +#: Marlin_main.cpp:5541 msgid "No move." msgstr "Brak ruchu." # MSG_NO_CARD -#: ultralcd.cpp:6772 +#: ultralcd.cpp:6911 msgid "No SD card" msgstr "Brak karty SD" -# -#: ultralcd.cpp:3024 +# MSG_NA +#: messages.c:107 msgid "N/A" msgstr "N/D" # MSG_NO -#: messages.c:62 +#: messages.c:58 msgid "No" msgstr "Nie" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7889 +#: ultralcd.cpp:8267 msgid "Not connected" msgstr "Nie podlaczono " @@ -846,967 +881,962 @@ msgid "New firmware version available:" msgstr "Dostepna nowa wersja firmware:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:79 +#: messages.c:75 msgid "Not spinning" msgstr "Nie kreci sie" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:5063 +#: ultralcd.cpp:4946 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:5007 +#: ultralcd.cpp:5071 msgid "Now I will preheat nozzle for PLA." msgstr "Nagrzewam dysze dla PLA." # MSG_NOZZLE -#: messages.c:63 +#: messages.c:59 msgid "Nozzle" msgstr "Dysza" -# MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1519 +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp." # -#: ultralcd.cpp:4998 +#: ultralcd.cpp:5062 msgid "Now remove the test print from steel sheet." msgstr "Teraz zdejmij wydruk testowy ze stolu." # -#: ultralcd.cpp:1722 +#: ultralcd.cpp:1654 msgid "Nozzle FAN" msgstr "WentHotend" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6735 +#: ultralcd.cpp:6875 msgid "Pause print" msgstr "Wstrzymanie wydruku" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1606 +#: ultralcd.cpp:1539 msgid "PID cal. " msgstr "Kalibracja PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1612 +#: ultralcd.cpp:1545 msgid "PID cal. finished" msgstr "Kal. PID zakonczona" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5769 +#: ultralcd.cpp:5862 msgid "PID calibration" msgstr "Kalibracja PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:846 +#: ultralcd.cpp:896 msgid "PINDA Heating" msgstr "Grzanie sondy PINDA" -# MSG_PAPER c=20 r=8 -#: messages.c:64 +# MSG_PAPER c=20 r=10 +#: messages.c:60 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:5072 +#: ultralcd.cpp:5128 msgid "Please clean heatbed and then press the knob." msgstr "Oczysc powierzchnie druku i nacisnij pokretlo." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 -#: messages.c:22 +#: messages.c:21 msgid "Please clean the nozzle for calibration. Click when done." msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7881 +#: ultralcd.cpp:8259 msgid "Please check :" msgstr "Sprawdz :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:100 +#: messages.c:98 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:4894 -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:4795 -msgid "Please load PLA filament first." -msgstr "Najpierw zaladuj filament PLA." - # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3064 +#: Marlin_main.cpp:3138 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:65 +#: messages.c:61 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:68 +#: messages.c:64 msgid "Please press the knob to unload filament" msgstr "Nacisnij pokretlo aby rozladowac filament" -# -#: ultralcd.cpp:4889 -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:70 +#: messages.c:66 msgid "Please pull out filament immediately" msgstr "Wyciagnij filament teraz" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1440 +#: mmu.cpp:1422 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:74 +#: messages.c:70 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:4355 +#: Marlin_main.cpp:4583 msgid "Please run XYZ calibration first." msgstr "Prosze najpierw uruchomic kalibracje XYZ" # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1359 +#: mmu.cpp:1341 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:66 +#: messages.c:62 msgid "Please wait" msgstr "Prosze czekac" # -#: ultralcd.cpp:4997 +#: ultralcd.cpp:5061 msgid "Please remove shipping helpers first." msgstr "Najpierw usun zabezpieczenia transportowe" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:67 +#: messages.c:63 msgid "Preheat the nozzle!" msgstr "Nagrzej dysze!" # MSG_PREHEAT -#: ultralcd.cpp:6722 +#: ultralcd.cpp:6853 msgid "Preheat" msgstr "Grzanie" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:102 +#: messages.c:100 msgid "Preheating nozzle. Please wait." msgstr "Nagrzewanie dyszy. Prosze czekac." +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + # #: util.cpp:297 msgid "Please upgrade." msgstr "Prosze zaktualizowac." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:10364 +#: Marlin_main.cpp:11526 msgid "Press knob to preheat nozzle and continue." msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "Pauza" + # -#: ultralcd.cpp:1851 +#: ultralcd.cpp:1783 msgid "Power failures" msgstr "Zaniki zasilania" # MSG_PRINT_ABORTED c=20 -#: messages.c:69 +#: messages.c:65 msgid "Print aborted" msgstr "Druk przerwany" -# -#: ultralcd.cpp:2455 +# c=20 +#: ultralcd.cpp:2442 msgid "Preheating to load" -msgstr "Nagrzew. do ladowania" +msgstr "Nagrzew.do ladowania" -# -#: ultralcd.cpp:2459 +# c=20 +#: ultralcd.cpp:2446 msgid "Preheating to unload" msgstr "Nagrzew. do rozlad." # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8307 +#: ultralcd.cpp:8691 msgid "Print fan:" msgstr "WentWydruk:" # MSG_CARD_MENU -#: messages.c:21 +#: messages.c:20 msgid "Print from SD" msgstr "Druk z karty SD" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2289 msgid "Press the knob" msgstr "Wcisnij pokretlo" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1069 +#: ultralcd.cpp:1118 msgid "Print paused" msgstr "Druk wstrzymany" # -#: mmu.cpp:723 +#: mmu.cpp:726 msgid "Press the knob to resume nozzle temperature." msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 -#: messages.c:41 +#: messages.c:38 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Drukarka nie byla jeszcze kalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem." # -#: ultralcd.cpp:1723 +#: ultralcd.cpp:1655 msgid "Print FAN" msgstr "WentWydruk" +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac." + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac." + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Najpierw zaladuj filament." + # MSG_PRUSA3D -#: ultralcd.cpp:2205 +#: ultralcd.cpp:2155 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3295 +#: ultralcd.cpp:3267 msgid "Rear side [um]" msgstr "Tyl [um]" -# MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:9764 -msgid "Recovering print " -msgstr "Wznawianie wydruku" +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc." -# MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:830 +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Wznawianie wydruku " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy." -# +# c=20 #: msgid "Prusa i3 MK3S OK." -msgstr "Prusa i3 MK3S OK" +msgstr "" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5774 +#: ultralcd.cpp:5867 msgid "Reset XYZ calibr." msgstr "Reset kalibr. XYZ" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3296 +#: ultralcd.cpp:3268 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6742 +#: ultralcd.cpp:6861 msgid "Resume print" msgstr "Wznowic wydruk" -# MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:73 +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 msgid "Resuming print" msgstr "Wznawianie druku" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3293 +#: ultralcd.cpp:3265 msgid "Right side[um]" msgstr "Prawo [um]" -# MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5692 -msgid "RPi port [on]" -msgstr "Port RPi [wl]" - -# MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5690 -msgid "RPi port [off]" -msgstr "Port RPi [wyl]" +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "Port RPi" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4812 +#: ultralcd.cpp:4864 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:5322 -msgid "SD card [normal]" -msgstr "Karta SD [normal]" +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "Karta SD" -# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5320 -msgid "SD card [flshAir]" -msgstr "Karta SD[FlshAir]" +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" # -#: ultralcd.cpp:3019 +#: ultralcd.cpp:2994 msgid "Right" msgstr "Prawa" # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: messages.c:38 +#: messages.c:35 msgid "Searching bed calibration point" msgstr "Szukam punktu kalibracyjnego na stole" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5699 +#: ultralcd.cpp:5779 msgid "Select language" msgstr "Wybor jezyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7452 +#: ultralcd.cpp:7814 msgid "Self test OK" msgstr "Selftest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7238 +#: ultralcd.cpp:7584 msgid "Self test start " msgstr "Selftest startuje" # MSG_SELFTEST -#: ultralcd.cpp:5750 +#: ultralcd.cpp:5843 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7879 +#: ultralcd.cpp:8257 msgid "Selftest error !" msgstr "Blad selftest!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:77 +#: messages.c:73 msgid "Selftest failed " msgstr "Selftest nieudany" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1551 +#: Marlin_main.cpp:1550 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek" # -#: ultralcd.cpp:5045 +#: ultralcd.cpp:5102 msgid "Select nozzle preheat temperature which matches your material." msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu." -# -#: ultralcd.cpp:4780 -msgid "Select PLA filament:" -msgstr "Wybierz filament PLA:" - # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3314 +#: ultralcd.cpp:3286 msgid "Set temperature:" msgstr "Ustaw temperature:" +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + # MSG_SETTINGS -#: messages.c:86 +#: messages.c:82 msgid "Settings" msgstr "Ustawienia" -# MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5771 +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 msgid "Show end stops" msgstr "Pokaz krancowki" # -#: ultralcd.cpp:4025 +#: ultralcd.cpp:4008 msgid "Sensor state" msgstr "Stan czujnikow" -# MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:739 +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 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:5332 -msgid "Sort [none]" -msgstr "Sortowanie [brak]" +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Sortowanie" -# MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5330 -msgid "Sort [time]" -msgstr "Sortowanie [czas]" +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Brak" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Czas" # -#: ultralcd.cpp:3062 +#: ultralcd.cpp:3037 msgid "Severe skew:" msgstr "Znaczny skos:" -# MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5331 -msgid "Sort [alphabet]" -msgstr "Sortowanie[alfab]" +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Alfab" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:746 +#: cardreader.cpp:745 msgid "Sorting files" msgstr "Sortowanie plikow" -# MSG_SOUND_LOUD c=17 r=1 -#: sound.h:6 -msgid "Sound [loud]" -msgstr "Dzwiek [glosny]" +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Glosny" # -#: ultralcd.cpp:3061 +#: ultralcd.cpp:3036 msgid "Slight skew:" msgstr "Lekki skos:" -# MSG_SOUND_MUTE c=17 r=1 -#: -msgid "Sound [mute]" -msgstr "Dzwiek[wylaczony]" +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Dzwiek" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "Konce f" # -#: Marlin_main.cpp:4871 +#: Marlin_main.cpp:5101 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Wykryto problem, wymuszono poziomowanie osi Z." -# MSG_SOUND_ONCE c=17 r=1 -#: sound.h:7 -msgid "Sound [once]" -msgstr "Dzwiek [1-raz]" - -# MSG_SOUND_SILENT c=17 r=1 -#: sound.h:8 -msgid "Sound [silent]" -msgstr "Dzwiek [cichy]" +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "1-raz" # MSG_SPEED -#: ultralcd.cpp:6926 +#: ultralcd.cpp:7119 msgid "Speed" msgstr "Predkosc" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:80 +#: messages.c:76 msgid "Spinning" msgstr "Kreci sie" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4368 +#: Marlin_main.cpp:4596 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:6839 +#: ultralcd.cpp:6978 msgid "Statistics " msgstr "Statystyki" # MSG_STOP_PRINT -#: messages.c:93 +#: messages.c:91 msgid "Stop print" msgstr "Przerwanie druku" # MSG_STOPPED -#: messages.c:94 +#: messages.c:92 msgid "STOPPED. " msgstr "ZATRZYMANO." # MSG_SUPPORT -#: ultralcd.cpp:6848 +#: ultralcd.cpp:6987 msgid "Support" msgstr "Wsparcie" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7959 +#: ultralcd.cpp:8337 msgid "Swapped" msgstr "Zamieniono" -# MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:95 -msgid "Temp. cal. " -msgstr "Kalibracja temp." +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Wybierz filament:" -# MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5686 -msgid "Temp. cal. [on]" -msgstr "Kalibr.temp. [wl]" +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Kalib. temp." -# MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5684 -msgid "Temp. cal. [off]" -msgstr "Kalibr.temp.[wyl]" +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi." # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5780 +#: ultralcd.cpp:5873 msgid "Temp. calibration" msgstr "Kalibracja temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3951 +#: ultralcd.cpp:3933 msgid "Temperature calibration failed" msgstr "Kalibracja temperaturowa nieudana" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:96 +#: messages.c:94 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." +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Czujnik sprawdzony, wyciagnij filament." + # MSG_TEMPERATURE -#: ultralcd.cpp:5650 +#: ultralcd.cpp:5739 msgid "Temperature" msgstr "Temperatura" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2251 +#: ultralcd.cpp:2218 msgid "Temperatures" msgstr "Temperatury" -# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4 -#: messages.c:42 +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2891 msgid "Total filament" msgstr "Zuzycie filamentu" # -#: ultralcd.cpp:2908 +#: ultralcd.cpp:2892 msgid "Total print time" msgstr "Laczny czas druku" # MSG_TUNE -#: ultralcd.cpp:6719 +#: ultralcd.cpp:6850 msgid "Tune" msgstr "Strojenie" # -#: ultralcd.cpp:4869 +#: msgid "Unload" msgstr "Rozladuj" # -#: ultralcd.cpp:1820 +#: ultralcd.cpp:1752 msgid "Total failures" msgstr "Suma bledow" # -#: ultralcd.cpp:2324 +#: ultralcd.cpp:2296 msgid "to load filament" msgstr "aby zaladow. fil." # -#: ultralcd.cpp:2328 +#: ultralcd.cpp:2300 msgid "to unload filament" msgstr "aby rozlad. filament" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:97 +#: messages.c:95 msgid "Unload filament" msgstr "Rozladowanie fil." # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:98 +#: messages.c:96 msgid "Unloading filament" msgstr "Rozladowuje filament" # -#: ultralcd.cpp:1773 +#: ultralcd.cpp:1705 msgid "Total" msgstr "Suma" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5908 +#: ultralcd.cpp:6001 msgid "Used during print" msgstr "Uzyte podczas druku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2254 +#: ultralcd.cpp:2221 msgid "Voltages" msgstr "Napiecia" # -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2194 msgid "unknown" msgstr "nieznane" # MSG_USERWAIT -#: Marlin_main.cpp:5263 +#: Marlin_main.cpp:5511 msgid "Wait for user..." msgstr "Czekam na uzytkownika..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3458 +#: ultralcd.cpp:3434 msgid "Waiting for nozzle and bed cooling" msgstr "Oczekiwanie na wychlodzenie dyszy i stolu" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3422 +#: ultralcd.cpp:3395 msgid "Waiting for PINDA probe cooling" msgstr "Czekam az spadnie temp. sondy PINDA" # -#: ultralcd.cpp:4868 +#: 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:1511 +#: Marlin_main.cpp:1510 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:1503 +#: Marlin_main.cpp:1502 msgid "Warning: motherboard type changed." msgstr "Ostrzezenie: plyta glowna ulegla zmianie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1507 +#: Marlin_main.cpp:1506 msgid "Warning: printer type changed." msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3054 +#: Marlin_main.cpp:3128 msgid "Was filament unload successful?" msgstr "Rozladowanie fil. ok?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:85 +#: messages.c:81 msgid "Wiring error" msgstr "Blad polaczenia" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5747 +#: ultralcd.cpp:5834 msgid "Wizard" msgstr "Asystent" -# MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2243 +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 msgid "XYZ cal. details" msgstr "Szczegoly kal. XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 -#: messages.c:19 +#: messages.c:18 msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji." # MSG_YES -#: messages.c:104 +#: messages.c:102 msgid "Yes" msgstr "Tak" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:103 +#: messages.c:101 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:3922 +#: ultralcd.cpp:3904 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:3919 +#: ultralcd.cpp:3901 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:5130 +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "Wyl. czas." + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 msgid "X-correct:" msgstr "Korekcja-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3916 +#: ultralcd.cpp:3898 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:3900 +#: ultralcd.cpp:3882 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:3903 +#: ultralcd.cpp:3885 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:6166 +#: ultralcd.cpp:6261 msgid "Load all" msgstr "Zalad. wszystkie" # -#: ultralcd.cpp:3882 +#: ultralcd.cpp:3864 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych." # -#: ultralcd.cpp:3888 +#: ultralcd.cpp:3870 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki." # -#: ultralcd.cpp:3891 +#: ultralcd.cpp:3873 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." # -#: ultralcd.cpp:3016 +#: ultralcd.cpp:2991 msgid "Y distance from min" msgstr "Dystans od 0 w osi Y" # -#: ultralcd.cpp:5131 +#: ultralcd.cpp:4958 +msgid "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)." +msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 msgid "Y-correct:" msgstr "Korekcja-Y:" # MSG_OFF -#: menu.cpp:426 -msgid " [off]" -msgstr " [wyl]" +#: messages.c:105 +msgid "Off" +msgstr "Wyl" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Wl" # -#: messages.c:57 +#: messages.c:53 msgid "Back" msgstr "Wstecz" # -#: ultralcd.cpp:5639 +#: ultralcd.cpp:5724 msgid "Checks" msgstr "Testy" # -#: ultralcd.cpp:7973 +#: ultralcd.cpp:8351 msgid "False triggering" msgstr "Falszywy alarm" # -#: ultralcd.cpp:4030 +#: ultralcd.cpp:4013 msgid "FINDA:" msgstr "" -# -#: ultralcd.cpp:5545 -msgid "Firmware [none]" -msgstr "Firmware [brak]" +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Restr." + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Ostrzez" # -#: ultralcd.cpp:5551 -msgid "Firmware [strict]" -msgstr "Firmware [restr.]" - -# -#: ultralcd.cpp:5548 -msgid "Firmware [warn]" -msgstr "Firmware[ostrzez]" - -# -#: messages.c:87 +#: messages.c:83 msgid "HW Setup" msgstr "Ustawienia HW" # -#: ultralcd.cpp:4034 +#: ultralcd.cpp:4017 msgid "IR:" msgstr "" -# -#: ultralcd.cpp:7046 -msgid "Magnets comp.[N/A]" -msgstr "Kor. magnesow[N/D]" +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Kor. magnesow" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "Siatka" # -#: ultralcd.cpp:7044 -msgid "Magnets comp.[Off]" -msgstr "Kor. magnesow[wyl]" - -# -#: ultralcd.cpp:7043 -msgid "Magnets comp. [On]" -msgstr "Kor. magnesow [wl]" - -# -#: ultralcd.cpp:7035 -msgid "Mesh [3x3]" -msgstr "Siatka [3x3]" - -# -#: ultralcd.cpp:7036 -msgid "Mesh [7x7]" -msgstr "Siatka [7x7]" - -# -#: ultralcd.cpp:5677 +#: ultralcd.cpp:5763 msgid "Mesh bed leveling" msgstr "Poziomowanie stolu" # -#: Marlin_main.cpp:856 +#: Marlin_main.cpp:872 msgid "MK3S firmware detected on MK3 printer" msgstr "Wykryto firmware MK3S w drukarce MK3" -# -#: ultralcd.cpp:5306 -msgid "MMU Mode [Normal]" -msgstr "Tryb MMU[Normaln]" +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "Tryb MMU" # -#: ultralcd.cpp:5307 -msgid "MMU Mode[Stealth]" -msgstr "Tryb MMU[Stealth]" - -# -#: ultralcd.cpp:4511 +#: ultralcd.cpp:4494 msgid "Mode change in progress ..." msgstr "Trwa zmiana trybu..." -# -#: ultralcd.cpp:5506 -msgid "Model [none]" -msgstr "Model [brak]" - -# -#: ultralcd.cpp:5512 -msgid "Model [strict]" -msgstr "Model [restrykc.]" - -# -#: ultralcd.cpp:5509 -msgid "Model [warn]" -msgstr "Model [ostrzez.]" - -# -#: ultralcd.cpp:5467 -msgid "Nozzle d. [0.25]" -msgstr "Sr. dyszy [0,25]" - -# -#: ultralcd.cpp:5470 -msgid "Nozzle d. [0.40]" -msgstr "Sr. dyszy [0,40]" - -# -#: ultralcd.cpp:5473 -msgid "Nozzle d. [0.60]" -msgstr "Sr. dyszy [0,60]" - -# -#: ultralcd.cpp:5421 -msgid "Nozzle [none]" -msgstr "Dysza [brak]" - -# -#: ultralcd.cpp:5427 -msgid "Nozzle [strict]" -msgstr "Dysza [restrykc.]" - -# -#: ultralcd.cpp:5424 -msgid "Nozzle [warn]" -msgstr "Dysza [ostrzez.]" - -# -#: util.cpp:510 -msgid "G-code sliced for a different level. Continue?" +# MSG_MODEL +#: messages.c:113 +msgid "Model" msgstr "" +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Sr. dyszy" + # -#: util.cpp:516 +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-code pociety dla innej wersji. Kontynuowac?" + +# +#: util.cpp:520 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 +#: util.cpp:431 msgid "G-code sliced for a different printer type. Continue?" msgstr "G-code pociety dla innej drukarki. Kontynuowac?" # -#: util.cpp:433 +#: util.cpp:437 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 +#: util.cpp:481 msgid "G-code sliced for a newer firmware. Continue?" msgstr "G-code pociety dla nowszego firmware. Kontynuowac?" # -#: util.cpp:483 +#: util.cpp:487 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." # -#: ultralcd.cpp:4026 +#: ultralcd.cpp:4009 msgid "PINDA:" msgstr "" -# -#: ultralcd.cpp:2465 +# c=20 +#: ultralcd.cpp:2452 msgid "Preheating to cut" -msgstr "Nagrzewanie do obciecia" +msgstr "Nagrzew. obciecia" -# -#: ultralcd.cpp:2462 +# c=20 +#: ultralcd.cpp:2449 msgid "Preheating to eject" -msgstr "Nagrzewanie do wysuniecia" +msgstr "Nagrzew. wysuniecia" # -#: util.cpp:390 +#: util.cpp:394 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 +#: util.cpp:401 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." +# c=20 +#: ultralcd.cpp:8357 +msgid "%s level expected" +msgstr "Oczekiwano wersji %s" + # -#: ultralcd.cpp:6683 +#: ultralcd.cpp:6814 msgid "Rename" msgstr "Zmien nazwe" # -#: ultralcd.cpp:6679 +#: ultralcd.cpp:6807 msgid "Select" msgstr "Wybierz" # -#: ultralcd.cpp:2245 +#: ultralcd.cpp:2212 msgid "Sensor info" msgstr "Info o sensorach" -# -#: messages.c:58 +# MSG_SHEET c=10 +#: messages.c:54 msgid "Sheet" msgstr "Plyta" -# -#: sound.h:9 -msgid "Sound [assist]" -msgstr "Dzwiek [asyst.]" +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asyst." -# -#: ultralcd.cpp:5637 +# c=18 +#: ultralcd.cpp:5722 msgid "Steel sheets" msgstr "Plyty stalowe" -# -#: ultralcd.cpp:5132 +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 msgid "Z-correct:" msgstr "Korekcja-Z:" -# -#: ultralcd.cpp:7038 -msgid "Z-probe nr. [1]" -msgstr "Ilosc Pomiarow [1]" - -# -#: ultralcd.cpp:7040 -msgid "Z-probe nr. [3]" -msgstr "Ilosc Pomiarow [3]" +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Ilosc Pomiarow" From 41da8862b47ef616dbf1d287a9c7e456144e9107 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 13 May 2020 20:51:13 +0200 Subject: [PATCH 286/361] MK3 3.9.0 Italian fix (#2663) * Fix rm ... output issue Remove files only if they exist * Fix Italian missing translations There have been only 362 instead of 365 Sorry for that, normally I double check this. * Added `not_tran` and `not_used` files This makes it easier to find missing or obsolate translations * Revert "Added `not_tran` and `not_used` files" This reverts commit a1b53dde663dc20a105fd3fa817e612ef999cb97. These should be ignored * Ignore ALL `not_tran`and `not_used` files --- .gitignore | 4 +- PF-build.sh | 21 ++++++++-- lang/lang_en_it.txt | 54 +++++++++++++------------- lang/po/Firmware.pot | 56 +++++++++++++-------------- lang/po/Firmware_cs.po | 56 +++++++++++++-------------- lang/po/Firmware_de.po | 56 +++++++++++++-------------- lang/po/Firmware_es.po | 56 +++++++++++++-------------- lang/po/Firmware_fr.po | 56 +++++++++++++-------------- lang/po/Firmware_it.po | 87 +++++++++++++++--------------------------- lang/po/Firmware_pl.po | 56 +++++++++++++-------------- lang/po/new/cs.po | 56 +++++++++++++-------------- lang/po/new/de.po | 56 +++++++++++++-------------- lang/po/new/es.po | 56 +++++++++++++-------------- lang/po/new/fr.po | 56 +++++++++++++-------------- lang/po/new/it.po | 87 +++++++++++++++--------------------------- lang/po/new/pl.po | 56 +++++++++++++-------------- 16 files changed, 417 insertions(+), 452 deletions(-) diff --git a/.gitignore b/.gitignore index dec628d07..dae307af4 100644 --- a/.gitignore +++ b/.gitignore @@ -40,8 +40,8 @@ Firmware/Doc /lang/*.dat /lang/*.tmp /lang/*.out -/lang/not_tran.txt -/lang/not_used.txt +/lang/not_tran*.txt +/lang/not_used*.txt /lang/progmem1.chr /lang/progmem1.lss /lang/progmem1.txt diff --git a/PF-build.sh b/PF-build.sh index 545e463cf..f459095c9 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_17 +# Version: 1.0.6-Build_18 # 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 @@ -123,6 +123,7 @@ # 05 May 2020, 3d-gussner, Make a copy of `not_tran.txt`and `not_used.txt` as `not_tran_$VARIANT.txt`and `not_used_$VARIANT.txt` # After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. # 12 May 2020, DRracer , Cleanup double MK2/s MK25/s `not_tran` and `not_used` files +# 13 May 2020, leptun , If cleanup files do not exist don't try to. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -723,8 +724,22 @@ do # Cleanup Firmware rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 - rm $SCRIPT_PATH/lang/*RAMBo10a*.txt - rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt + if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*RAMBo10a*.txt + fi + if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_tran.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_used.txt + fi sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h echo $MULTI_LANGUAGE_CHECK diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 8d7f4571e..6da58c993 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -52,7 +52,7 @@ #MSG_AUTO c=6 "Auto" - +"\x00" #MSG_PRESS c=20 r=2 "and press the knob" @@ -228,7 +228,7 @@ #MSG_FS_CONTINUE c=5 "Cont." - +"\x00" #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 "Do you want to repeat last step to readjust distance between nozzle and heatbed?" @@ -352,11 +352,11 @@ #MSG_FS_ACTION c=10 "FS Action" -"" +"\x00" # c=18 "FS v0.4 or newer" -"" +"\x00" #MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" @@ -366,7 +366,7 @@ "Finishing movements" "Finaliz. spostamenti" -#MSG_V2_CALIBRATION c=17 r=1 +#MSG_V2_CALIBRATION c=18 "First layer cal." "Cal. primo strato" @@ -384,7 +384,7 @@ #MSG_PRUSA3D_FORUM "forum.prusa3d.com" -"" +"\x00" #MSG_SELFTEST_COOLING_FAN c=20 "Front print fan?" @@ -420,7 +420,7 @@ #MSG_PRUSA3D_HOWTO "howto.prusa3d.com" -"" +"\x00" #MSG_FILAMENTCHANGE "Change filament" @@ -680,7 +680,7 @@ #MSG_NO "No" - +"\x00" #MSG_SELFTEST_NOTCONNECTED "Not connected" @@ -812,7 +812,7 @@ # c=14 "PINDA" -"" +"\x00" # "Please upgrade." @@ -884,7 +884,7 @@ #MSG_PRUSA3D "prusa3d.com" -"" +"\x00" #MSG_BED_CORRECTION_REAR c=14 r=1 "Rear side [um]" @@ -904,7 +904,7 @@ # c=20 "Prusa i3 MK3S OK." -"" +"\x00" #MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." @@ -912,13 +912,13 @@ #MSG_BED_CORRECTION_RESET "Reset" - +"\x00" #MSG_RESUME_PRINT "Resume print" "Riprendi stampa" -#MSG_RESUMING_PRINT c=20 r=1 +#MSG_RESUMING_PRINT c=20 "Resuming print" "Riprendi stampa" @@ -940,7 +940,7 @@ #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY "FlashAir" -"" +"\x00" # "Right" @@ -964,7 +964,7 @@ #MSG_SELFTEST "Selftest " -"Autotest" +"Autotest " #MSG_SELFTEST_ERROR "Selftest error !" @@ -988,15 +988,15 @@ # c=20 "Prusa i3 MK2.5 OK." -"" +"\x00" # c=20 "Prusa i3 MK2.5S OK." -"" +"\x00" # c=20 "Prusa i3 MK3 OK." -"" +"\x00" #MSG_SETTINGS "Settings" @@ -1124,7 +1124,7 @@ #MSG_TEMPERATURE "Temperature" - +"\x00" #MSG_MENU_TEMPERATURES c=15 r=1 "Temperatures" @@ -1224,7 +1224,7 @@ #MSG_WIZARD c=17 r=1 "Wizard" -"" +"\x00" #MSG_XYZ_DETAILS c=18 "XYZ cal. details" @@ -1252,7 +1252,7 @@ #MSG_TIMEOUT c=12 "Timeout" -"" +"\x00" #MSG_X_CORRECTION c=13 "X-correct:" @@ -1304,11 +1304,11 @@ #MSG_OFF "Off" -"" +"\x00" #MSG_ON "On" -"" +"\x00" # "Back" @@ -1324,11 +1324,11 @@ # "FINDA:" -"" +"\x00" #MSG_FIRMWARE "Firmware" -"" +"\x00" #MSG_STRICT "Strict" @@ -1344,7 +1344,7 @@ # "IR:" -"" +"\x00" #MSG_MAGNETS_COMP "Magnets comp." @@ -1404,7 +1404,7 @@ # "PINDA:" -"" +"\x00" # c=20 "Preheating to cut" diff --git a/lang/po/Firmware.pot b/lang/po/Firmware.pot index ef78311eb..02dc7715a 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: Tue May 12 21:08:04 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:08:04 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:40:37 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:40:37 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "" @@ -121,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "" @@ -871,7 +871,7 @@ msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "" @@ -956,7 +956,7 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "" # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "" # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/Firmware_cs.po b/lang/po/Firmware_cs.po index 6322bebd8..e1f8932ae 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: Tue May 12 21:08:30 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:08:30 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:02 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:02 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Doladeni Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Vse OK " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Delka osy" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Osa" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Podlozka / Topeni" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Detekovan vypadek proudu.Obnovit tisk?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Kalibruji vychozi poz." @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Zrusit" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Karta vyjmuta" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Vysouvam filament" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Kon. spinac nesepnut" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Koncovy spinac" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Konc. spinace" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "CHYBA:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Levy vent.:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 a novejsi" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Soubor nekompletni. Pokracovat?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Vpredu [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Predni/levy vent." # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Topeni/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Kontrola podlozky" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Kontrola endstopu" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Kontrola hotend " @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Kontrola osy Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Kontrola osy Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Zavadeni filamentu" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Uvolnena remenicka" @@ -871,7 +871,7 @@ msgid "No" msgstr "Ne" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nezapojeno " @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Zkontrolujte :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Predehrev k vyjmuti" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Tiskovy vent.:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Vyber jazyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Self test start " @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Chyba Selftestu!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Podpora" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Prohozene" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Kontrola" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falesne spusteni" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/Firmware_de.po b/lang/po/Firmware_de.po index 4b884405e..500248ddd 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: Tue May 12 21:08:56 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:08:56 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:25 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:25 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Z Anpassen:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Alles richtig " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Achsenlaenge" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Achse" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Bett / Heizung" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Stromausfall! Druck wiederherstellen?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Kalibriere Start" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Abbruch" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "SD Karte entfernt" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "werfe Filament aus" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Ende nicht getroffen" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Endanschlag" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Endschalter" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "FEHLER:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Extruder Luefter:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 oder neuer" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Datei unvollstaendig Trotzdem fortfahren?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Vorne [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Vorderer/linke Luefter" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Heizung/Thermistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Pruefe Bett " # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Pruefe Endschalter" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Pruefe Duese " @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Pruefe Y Achse " # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Pruefe Z Achse " @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Filament laedt" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Lose Riemenscheibe" @@ -871,7 +871,7 @@ msgid "No" msgstr "Nein" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nicht angeschlossen" @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Bitte pruefe:" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Heizen zum Entladen" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Druckvent.:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Waehle Sprache" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Selbsttest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Selbsttest start " @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selbsttest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Selbsttest Fehler!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Ausgetauscht" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Kontrolle" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falschtriggerung" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/Firmware_es.po b/lang/po/Firmware_es.po index a8073a837..1fa12ab75 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: Tue May 12 21:09:21 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:09:21 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:49 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:49 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ajustar-Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Todo bien" @@ -121,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Longitud del eje" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Eje" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Base / Calentador" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Se fue la luz. ?Reanudar la impresion?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calibrando posicion inicial" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Cancelar" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Tarjeta retirada" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Expulsando filamento" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Endstop no alcanzado" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Vent.extrusor:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 o +nueva" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Archivo incompleto. ?Continuar de todos modos?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Frontal [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventiladores frontal/izquierdo" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Calentador/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Control base cal." # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Control endstops" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Control fusor" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Control sensor Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Control sensor Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Introduciendo filam." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Polea suelta" @@ -871,7 +871,7 @@ msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "No hay conexion " @@ -956,7 +956,7 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Limpia boquilla para calibracion. Click cuando acabes." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Controla :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Precalent. descargar" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent.fusor:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Cambiar el idioma" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Iniciar Selftest" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Error Selftest !" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Soporte" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Intercambiado" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Comprobaciones" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falsa activacion" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/Firmware_fr.po b/lang/po/Firmware_fr.po index 05eb39205..7e7db4e8c 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: Tue May 12 21:09:46 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:09:46 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:42:13 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:42:13 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ajuster Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Tout est correct" @@ -121,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Longueur de l'axe" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Axe" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Lit / Chauffage" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Coupure detectee. Reprendre impression?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calib. mise a 0" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Annuler" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Carte retiree" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Le fil. remonte" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Butee non atteinte" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Butee" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Butees" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "ERREUR:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Ventilo extrudeur:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 ou +recent" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Fichier incomplet. Continuer qd meme?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Avant [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventilos avt/gauche" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Chauffage/Thermistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Verif. plateau chauf" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Verification butees" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Verif. du hotend" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Verification axe Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Verification axe Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Chargement du fil." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Poulie lache" @@ -871,7 +871,7 @@ msgid "No" msgstr "Non" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Non connecte" @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Verifiez:" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Chauf.pour decharger" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent. impr:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Choisir langue" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Auto-test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Debut auto-test" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Auto-test" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Erreur auto-test!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Echange" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Verifications" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Faux declenchement" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/Firmware_it.po b/lang/po/Firmware_it.po index 8209a3bd8..987543902 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: Tue May 12 21:10:11 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:10:11 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:42:36 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:42:36 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Compensaz. Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Nessun errore" @@ -85,11 +85,6 @@ msgstr "Ambiente" msgid "Auto" msgstr "" -# MSG_AUTO c=6 -#: messages.c:140 -msgid "Auto" -msgstr - # MSG_PRESS c=20 r=2 #: ultralcd.cpp:2609 msgid "and press the knob" @@ -126,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Lunghezza dell'asse" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Assi" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Piano/Riscald." @@ -191,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Blackout rilevato. Recuperare la stampa?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calibrazione Home" @@ -241,7 +236,7 @@ msgid "Cancel" msgstr "Annulla" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "SD rimossa" @@ -310,11 +305,6 @@ msgstr "Distanza tra la punta dell'ugello e la superficie del piano non ancora i msgid "Cont." msgstr "" -# MSG_FS_CONTINUE c=5 -#: messages.c:132 -msgid "Cont." -msgstr - # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 #: ultralcd.cpp:5125 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" @@ -336,17 +326,17 @@ msgid "Ejecting filament" msgstr "Espellendo filamento" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Finec. fuori portata" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Finecorsa" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Finecorsa" @@ -386,7 +376,7 @@ msgid "ERROR:" msgstr "ERRORE:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Ventola estr:" @@ -476,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "File incompleto. Continuare comunque?" @@ -485,7 +475,7 @@ msgstr "File incompleto. Continuare comunque?" msgid "Finishing movements" msgstr "Finaliz. spostamenti" -# MSG_V2_CALIBRATION c=17 r=1 +# MSG_V2_CALIBRATION c=18 #: messages.c:103 msgid "First layer cal." msgstr "Cal. primo strato" @@ -521,12 +511,12 @@ msgid "Front side[um]" msgstr "Fronte [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventola frontale/sinistra" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Riscald./Termist." @@ -576,12 +566,12 @@ msgid "Checking bed " msgstr "Verifica piano" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Verifica finecorsa" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Verifica ugello" @@ -601,7 +591,7 @@ msgid "Checking Y axis " msgstr "Verifica asse Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Verifica asse Z" @@ -711,7 +701,7 @@ msgid "Loading filament" msgstr "Caricando filamento" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Puleggia lenta" @@ -880,13 +870,8 @@ msgstr "N/D" msgid "No" msgstr "" -# MSG_NO -#: messages.c:58 -msgid "No" -msgstr - # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Non connesso" @@ -971,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Verifica:" @@ -1086,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Preriscald. scarico" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent.stam:" @@ -1175,17 +1160,12 @@ msgstr "Reset calibrazione XYZ." msgid "Reset" msgstr "" -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3268 -msgid "Reset" -msgstr - # MSG_RESUME_PRINT #: ultralcd.cpp:6861 msgid "Resume print" msgstr "Riprendi stampa" -# MSG_RESUMING_PRINT c=20 r=1 +# MSG_RESUMING_PRINT c=20 #: messages.c:69 msgid "Resuming print" msgstr "Riprendi stampa" @@ -1231,22 +1211,22 @@ msgid "Select language" msgstr "Seleziona lingua" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Autotest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Avvia autotest" # MSG_SELFTEST #: ultralcd.cpp:5843 msgid "Selftest " -msgstr "Autotest" +msgstr "Autotest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Errore Autotest !" @@ -1401,7 +1381,7 @@ msgid "Support" msgstr "Supporto" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Scambiato" @@ -1445,11 +1425,6 @@ msgstr "Sensore verificato, rimuovere il filamento." msgid "Temperature" msgstr "" -# MSG_TEMPERATURE -#: ultralcd.cpp:5739 -msgid "Temperature" -msgstr - # MSG_MENU_TEMPERATURES c=15 r=1 #: ultralcd.cpp:2218 msgid "Temperatures" @@ -1691,7 +1666,7 @@ msgid "Checks" msgstr "Controlli" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falso innesco" @@ -1821,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "atteso livello %s" diff --git a/lang/po/Firmware_pl.po b/lang/po/Firmware_pl.po index 5cb88c7f9..3df01c101 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: Tue May 12 21:10:37 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:10:37 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:43:00 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:43:00 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ustawianie Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Wszystko OK " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Dlugosc osi" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Os" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Stol / Grzanie" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Wykryto zanik napiecia. Kontynowac?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Zerowanie osi" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Anuluj" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Karta wyjeta" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Wysuwanie filamentu" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Krancowka nie aktyw." # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Krancowka" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Krancowki" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "BLAD:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "WentHotend:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 lub nowszy" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Plik niekompletny. Kontynowac?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Przod [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Przedni/lewy wentylator" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Grzalka/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Kontrola stolu" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Kontrola krancowek" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Kontrola hotendu" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Kontrola osi Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Kontrola osi Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Laduje filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Luzne kolo pasowe" @@ -871,7 +871,7 @@ msgid "No" msgstr "Nie" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nie podlaczono " @@ -956,7 +956,7 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Sprawdz :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Nagrzew. do rozlad." # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "WentWydruk:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Wybor jezyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Selftest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Selftest startuje" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Blad selftest!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Wsparcie" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Zamieniono" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Testy" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falszywy alarm" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "Oczekiwano wersji %s" diff --git a/lang/po/new/cs.po b/lang/po/new/cs.po index 6322bebd8..e1f8932ae 100644 --- a/lang/po/new/cs.po +++ b/lang/po/new/cs.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:08:30 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:08:30 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:02 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:02 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Doladeni Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Vse OK " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Delka osy" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Osa" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Podlozka / Topeni" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Detekovan vypadek proudu.Obnovit tisk?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Kalibruji vychozi poz." @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Zrusit" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Karta vyjmuta" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Vysouvam filament" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Kon. spinac nesepnut" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Koncovy spinac" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Konc. spinace" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "CHYBA:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Levy vent.:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 a novejsi" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Soubor nekompletni. Pokracovat?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Vpredu [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Predni/levy vent." # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Topeni/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Kontrola podlozky" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Kontrola endstopu" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Kontrola hotend " @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Kontrola osy Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Kontrola osy Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Zavadeni filamentu" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Uvolnena remenicka" @@ -871,7 +871,7 @@ msgid "No" msgstr "Ne" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nezapojeno " @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Zkontrolujte :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Predehrev k vyjmuti" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Tiskovy vent.:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Vyber jazyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Self test start " @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Chyba Selftestu!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Podpora" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Prohozene" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Kontrola" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falesne spusteni" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/new/de.po b/lang/po/new/de.po index 4b884405e..500248ddd 100644 --- a/lang/po/new/de.po +++ b/lang/po/new/de.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:08:56 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:08:56 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:25 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:25 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Z Anpassen:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Alles richtig " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Achsenlaenge" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Achse" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Bett / Heizung" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Stromausfall! Druck wiederherstellen?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Kalibriere Start" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Abbruch" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "SD Karte entfernt" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "werfe Filament aus" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Ende nicht getroffen" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Endanschlag" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Endschalter" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "FEHLER:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Extruder Luefter:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 oder neuer" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Datei unvollstaendig Trotzdem fortfahren?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Vorne [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Vorderer/linke Luefter" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Heizung/Thermistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Pruefe Bett " # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Pruefe Endschalter" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Pruefe Duese " @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Pruefe Y Achse " # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Pruefe Z Achse " @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Filament laedt" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Lose Riemenscheibe" @@ -871,7 +871,7 @@ msgid "No" msgstr "Nein" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nicht angeschlossen" @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Bitte pruefe:" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Heizen zum Entladen" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Druckvent.:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Waehle Sprache" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Selbsttest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Selbsttest start " @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selbsttest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Selbsttest Fehler!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Ausgetauscht" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Kontrolle" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falschtriggerung" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/new/es.po b/lang/po/new/es.po index a8073a837..1fa12ab75 100644 --- a/lang/po/new/es.po +++ b/lang/po/new/es.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:09:21 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:09:21 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:41:49 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:49 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ajustar-Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Todo bien" @@ -121,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Longitud del eje" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Eje" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Base / Calentador" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Se fue la luz. ?Reanudar la impresion?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calibrando posicion inicial" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Cancelar" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Tarjeta retirada" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Expulsando filamento" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Endstop no alcanzado" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Vent.extrusor:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 o +nueva" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Archivo incompleto. ?Continuar de todos modos?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Frontal [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventiladores frontal/izquierdo" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Calentador/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Control base cal." # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Control endstops" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Control fusor" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Control sensor Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Control sensor Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Introduciendo filam." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Polea suelta" @@ -871,7 +871,7 @@ msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "No hay conexion " @@ -956,7 +956,7 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Limpia boquilla para calibracion. Click cuando acabes." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Controla :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Precalent. descargar" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent.fusor:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Cambiar el idioma" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Iniciar Selftest" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Error Selftest !" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Soporte" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Intercambiado" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Comprobaciones" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falsa activacion" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/new/fr.po b/lang/po/new/fr.po index 05eb39205..7e7db4e8c 100644 --- a/lang/po/new/fr.po +++ b/lang/po/new/fr.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:09:46 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:09:46 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:42:13 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:42:13 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ajuster Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Tout est correct" @@ -121,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Longueur de l'axe" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Axe" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Lit / Chauffage" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Coupure detectee. Reprendre impression?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calib. mise a 0" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Annuler" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Carte retiree" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Le fil. remonte" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Butee non atteinte" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Butee" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Butees" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "ERREUR:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Ventilo extrudeur:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 ou +recent" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Fichier incomplet. Continuer qd meme?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Avant [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventilos avt/gauche" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Chauffage/Thermistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Verif. plateau chauf" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Verification butees" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Verif. du hotend" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Verification axe Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Verification axe Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Chargement du fil." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Poulie lache" @@ -871,7 +871,7 @@ msgid "No" msgstr "Non" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Non connecte" @@ -956,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Verifiez:" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Chauf.pour decharger" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent. impr:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Choisir langue" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Auto-test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Debut auto-test" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Auto-test" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Erreur auto-test!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Echange" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Verifications" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Faux declenchement" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "" diff --git a/lang/po/new/it.po b/lang/po/new/it.po index 8209a3bd8..987543902 100644 --- a/lang/po/new/it.po +++ b/lang/po/new/it.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:10:11 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:10:11 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:42:36 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:42:36 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Compensaz. Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Nessun errore" @@ -85,11 +85,6 @@ msgstr "Ambiente" msgid "Auto" msgstr "" -# MSG_AUTO c=6 -#: messages.c:140 -msgid "Auto" -msgstr - # MSG_PRESS c=20 r=2 #: ultralcd.cpp:2609 msgid "and press the knob" @@ -126,17 +121,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament.. msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Lunghezza dell'asse" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Assi" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Piano/Riscald." @@ -191,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Blackout rilevato. Recuperare la stampa?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Calibrazione Home" @@ -241,7 +236,7 @@ msgid "Cancel" msgstr "Annulla" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "SD rimossa" @@ -310,11 +305,6 @@ msgstr "Distanza tra la punta dell'ugello e la superficie del piano non ancora i msgid "Cont." msgstr "" -# MSG_FS_CONTINUE c=5 -#: messages.c:132 -msgid "Cont." -msgstr - # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 #: ultralcd.cpp:5125 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" @@ -336,17 +326,17 @@ msgid "Ejecting filament" msgstr "Espellendo filamento" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Finec. fuori portata" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Finecorsa" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Finecorsa" @@ -386,7 +376,7 @@ msgid "ERROR:" msgstr "ERRORE:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "Ventola estr:" @@ -476,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "File incompleto. Continuare comunque?" @@ -485,7 +475,7 @@ msgstr "File incompleto. Continuare comunque?" msgid "Finishing movements" msgstr "Finaliz. spostamenti" -# MSG_V2_CALIBRATION c=17 r=1 +# MSG_V2_CALIBRATION c=18 #: messages.c:103 msgid "First layer cal." msgstr "Cal. primo strato" @@ -521,12 +511,12 @@ msgid "Front side[um]" msgstr "Fronte [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Ventola frontale/sinistra" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Riscald./Termist." @@ -576,12 +566,12 @@ msgid "Checking bed " msgstr "Verifica piano" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Verifica finecorsa" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Verifica ugello" @@ -601,7 +591,7 @@ msgid "Checking Y axis " msgstr "Verifica asse Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Verifica asse Z" @@ -711,7 +701,7 @@ msgid "Loading filament" msgstr "Caricando filamento" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Puleggia lenta" @@ -880,13 +870,8 @@ msgstr "N/D" msgid "No" msgstr "" -# MSG_NO -#: messages.c:58 -msgid "No" -msgstr - # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Non connesso" @@ -971,7 +956,7 @@ 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:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Verifica:" @@ -1086,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Preriscald. scarico" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "Vent.stam:" @@ -1175,17 +1160,12 @@ msgstr "Reset calibrazione XYZ." msgid "Reset" msgstr "" -# MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3268 -msgid "Reset" -msgstr - # MSG_RESUME_PRINT #: ultralcd.cpp:6861 msgid "Resume print" msgstr "Riprendi stampa" -# MSG_RESUMING_PRINT c=20 r=1 +# MSG_RESUMING_PRINT c=20 #: messages.c:69 msgid "Resuming print" msgstr "Riprendi stampa" @@ -1231,22 +1211,22 @@ msgid "Select language" msgstr "Seleziona lingua" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Autotest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Avvia autotest" # MSG_SELFTEST #: ultralcd.cpp:5843 msgid "Selftest " -msgstr "Autotest" +msgstr "Autotest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Errore Autotest !" @@ -1401,7 +1381,7 @@ msgid "Support" msgstr "Supporto" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Scambiato" @@ -1445,11 +1425,6 @@ msgstr "Sensore verificato, rimuovere il filamento." msgid "Temperature" msgstr "" -# MSG_TEMPERATURE -#: ultralcd.cpp:5739 -msgid "Temperature" -msgstr - # MSG_MENU_TEMPERATURES c=15 r=1 #: ultralcd.cpp:2218 msgid "Temperatures" @@ -1691,7 +1666,7 @@ msgid "Checks" msgstr "Controlli" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falso innesco" @@ -1821,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "atteso livello %s" diff --git a/lang/po/new/pl.po b/lang/po/new/pl.po index 5cb88c7f9..3df01c101 100644 --- a/lang/po/new/pl.po +++ b/lang/po/new/pl.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Tue May 12 21:10:37 CEST 2020\n" -"PO-Revision-Date: Tue May 12 21:10:37 CEST 2020\n" +"POT-Creation-Date: Wed May 13 17:43:00 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:43:00 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -66,7 +66,7 @@ msgid "Adjusting Z:" msgstr "Ustawianie Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:8679 +#: ultralcd.cpp:8677 msgid "All correct " msgstr "Wszystko OK " @@ -121,17 +121,17 @@ 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:8327 +#: ultralcd.cpp:8325 msgid "Axis length" msgstr "Dlugosc osi" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:8329 +#: ultralcd.cpp:8327 msgid "Axis" msgstr "Os" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:8271 +#: ultralcd.cpp:8269 msgid "Bed / Heater" msgstr "Stol / Grzanie" @@ -186,7 +186,7 @@ msgid "Blackout occurred. Recover print?" msgstr "Wykryto zanik napiecia. Kontynowac?" # -#: ultralcd.cpp:8681 +#: ultralcd.cpp:8679 msgid "Calibrating home" msgstr "Zerowanie osi" @@ -236,7 +236,7 @@ msgid "Cancel" msgstr "Anuluj" # MSG_SD_REMOVED -#: ultralcd.cpp:9092 +#: ultralcd.cpp:9090 msgid "Card removed" msgstr "Karta wyjeta" @@ -326,17 +326,17 @@ msgid "Ejecting filament" msgstr "Wysuwanie filamentu" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 -#: ultralcd.cpp:8295 +#: ultralcd.cpp:8293 msgid "Endstop not hit" msgstr "Krancowka nie aktyw." # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:8289 +#: ultralcd.cpp:8287 msgid "Endstop" msgstr "Krancowka" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:8277 +#: ultralcd.cpp:8275 msgid "Endstops" msgstr "Krancowki" @@ -376,7 +376,7 @@ msgid "ERROR:" msgstr "BLAD:" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:8688 +#: ultralcd.cpp:8686 msgid "Extruder fan:" msgstr "WentHotend:" @@ -466,7 +466,7 @@ msgid "FS v0.4 or newer" msgstr "FS v0.4 lub nowszy" # MSG_FILE_INCOMPLETE c=20 r=3 -#: ultralcd.cpp:8816 +#: ultralcd.cpp:8814 msgid "File incomplete. Continue anyway?" msgstr "Plik niekompletny. Kontynowac?" @@ -511,12 +511,12 @@ msgid "Front side[um]" msgstr "Przod [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:8335 +#: ultralcd.cpp:8333 msgid "Front/left fans" msgstr "Przedni/lewy wentylator" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:8265 +#: ultralcd.cpp:8263 msgid "Heater/Thermistor" msgstr "Grzalka/Termistor" @@ -566,12 +566,12 @@ msgid "Checking bed " msgstr "Kontrola stolu" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:8670 +#: ultralcd.cpp:8668 msgid "Checking endstops" msgstr "Kontrola krancowek" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:8676 +#: ultralcd.cpp:8674 msgid "Checking hotend " msgstr "Kontrola hotendu" @@ -591,7 +591,7 @@ msgid "Checking Y axis " msgstr "Kontrola osi Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:8673 +#: ultralcd.cpp:8671 msgid "Checking Z axis " msgstr "Kontrola osi Z" @@ -701,7 +701,7 @@ msgid "Loading filament" msgstr "Laduje filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:8319 +#: ultralcd.cpp:8317 msgid "Loose pulley" msgstr "Luzne kolo pasowe" @@ -871,7 +871,7 @@ msgid "No" msgstr "Nie" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:8267 +#: ultralcd.cpp:8265 msgid "Not connected" msgstr "Nie podlaczono " @@ -956,7 +956,7 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:8259 +#: ultralcd.cpp:8257 msgid "Please check :" msgstr "Sprawdz :" @@ -1071,7 +1071,7 @@ msgid "Preheating to unload" msgstr "Nagrzew. do rozlad." # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:8691 +#: ultralcd.cpp:8689 msgid "Print fan:" msgstr "WentWydruk:" @@ -1211,12 +1211,12 @@ msgid "Select language" msgstr "Wybor jezyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:7814 +#: ultralcd.cpp:7812 msgid "Self test OK" msgstr "Selftest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:7584 +#: ultralcd.cpp:7582 msgid "Self test start " msgstr "Selftest startuje" @@ -1226,7 +1226,7 @@ msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:8257 +#: ultralcd.cpp:8255 msgid "Selftest error !" msgstr "Blad selftest!" @@ -1381,7 +1381,7 @@ msgid "Support" msgstr "Wsparcie" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:8337 +#: ultralcd.cpp:8335 msgid "Swapped" msgstr "Zamieniono" @@ -1666,7 +1666,7 @@ msgid "Checks" msgstr "Testy" # -#: ultralcd.cpp:8351 +#: ultralcd.cpp:8349 msgid "False triggering" msgstr "Falszywy alarm" @@ -1796,7 +1796,7 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany." # c=20 -#: ultralcd.cpp:8357 +#: ultralcd.cpp:8355 msgid "%s level expected" msgstr "Oczekiwano wersji %s" From 8d946ef76e9c379b777d57e62e0634edc11b59fb Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 15 May 2020 18:44:30 +0200 Subject: [PATCH 287/361] Final FW 3.9.0 translations (#2666) * Update translations * Fix `Fsensor detection` to be found as missing in `not_tran.txt` * Fixed typo * Revert "Fix `Fsensor detection` to be found as missing in `not_tran.txt`" This reverts commit 614b22d774924d058969bbadfc25550b9b2b3fa2. We will change this in FW3.9.1 * Update po files after changing `lang_en_de.txt` and `lang_en_pl.txt` files * Update existing messages * Revert back one translation * And more updates --- lang/lang_en_de.txt | 8 ++++---- lang/lang_en_it.txt | 6 +++--- lang/lang_en_pl.txt | 2 +- lang/po/Firmware_de.po | 12 ++++++------ lang/po/Firmware_it.po | 10 +++++----- lang/po/Firmware_pl.po | 6 +++--- lang/po/new/de.po | 12 ++++++------ lang/po/new/it.po | 10 +++++----- lang/po/new/pl.po | 6 +++--- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 67789291d..25d3ae466 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -324,7 +324,7 @@ #MSG_FSENSOR "Fil. sensor" -"\x00" +"Fil. Sensor" # c=14 "Filam. runouts" @@ -1048,7 +1048,7 @@ #MSG_SOUND "Sound" -"\x00" +"Ton" # c=7 "Runouts" @@ -1252,7 +1252,7 @@ #MSG_TIMEOUT c=12 "Timeout" -"Auszeit" +"Verzoegerung" #MSG_X_CORRECTION c=13 "X-correct:" @@ -1440,7 +1440,7 @@ #MSG_SHEET c=10 "Sheet" -"Blech" +"Stahlblech" #MSG_SOUND_BLIND "Assist" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 6da58c993..70b4bbc0f 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -352,11 +352,11 @@ #MSG_FS_ACTION c=10 "FS Action" -"\x00" +"Azione FS" # c=18 "FS v0.4 or newer" -"\x00" +"FS 0.4 o superiore" #MSG_FILE_INCOMPLETE c=20 r=3 "File incomplete. Continue anyway?" @@ -1340,7 +1340,7 @@ # "HW Setup" -"Installazione HW" +"Impostazioni HW" # "IR:" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 9ecf0487a..62fd5d939 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -616,7 +616,7 @@ #MSG_NORMAL "Normal" -"Normalny" +"Normalni" #MSG_SILENT "Silent" diff --git a/lang/po/Firmware_de.po b/lang/po/Firmware_de.po index 500248ddd..7745bde85 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: Wed May 13 17:41:25 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:41:25 CEST 2020\n" +"POT-Creation-Date: Fri May 15 16:44:45 CEST 2020\n" +"PO-Revision-Date: Fri May 15 16:44:45 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -423,7 +423,7 @@ msgstr "Luefter Chk." # MSG_FSENSOR #: messages.c:41 msgid "Fil. sensor" -msgstr "" +msgstr "Fil. Sensor" # c=14 #: ultralcd.cpp:1784 @@ -1328,7 +1328,7 @@ msgstr "Leicht.Schr:" # MSG_SOUND #: messages.c:124 msgid "Sound" -msgstr "" +msgstr "Ton" # c=7 #: ultralcd.cpp:1822 @@ -1583,7 +1583,7 @@ msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg." # MSG_TIMEOUT c=12 #: messages.c:137 msgid "Timeout" -msgstr "Auszeit" +msgstr "Verzoegerung" # MSG_X_CORRECTION c=13 #: ultralcd.cpp:5190 @@ -1818,7 +1818,7 @@ msgstr "Sensor Info" # MSG_SHEET c=10 #: messages.c:54 msgid "Sheet" -msgstr "Blech" +msgstr "Stahlblech" # MSG_SOUND_BLIND #: messages.c:127 diff --git a/lang/po/Firmware_it.po b/lang/po/Firmware_it.po index 987543902..1e8c36ac7 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: Wed May 13 17:42:36 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:42:36 CEST 2020\n" +"POT-Creation-Date: Fri May 15 18:16:31 CEST 2020\n" +"PO-Revision-Date: Fri May 15 18:16:31 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -458,12 +458,12 @@ msgstr "Tempo di stampa" # MSG_FS_ACTION c=10 #: messages.c:131 msgid "FS Action" -msgstr "" +msgstr "Azione FS" # c=18 #: Marlin_main.cpp:9512 msgid "FS v0.4 or newer" -msgstr "" +msgstr "FS 0.4 o superiore" # MSG_FILE_INCOMPLETE c=20 r=3 #: ultralcd.cpp:8814 @@ -1693,7 +1693,7 @@ msgstr "Avviso" # #: messages.c:83 msgid "HW Setup" -msgstr "Installazione HW" +msgstr "Impostazioni HW" # #: ultralcd.cpp:4017 diff --git a/lang/po/Firmware_pl.po b/lang/po/Firmware_pl.po index 3df01c101..a086c4044 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: Wed May 13 17:43:00 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:43:00 CEST 2020\n" +"POT-Creation-Date: Fri May 15 18:16:57 CEST 2020\n" +"PO-Revision-Date: Fri May 15 18:16:57 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -788,7 +788,7 @@ msgstr "Wykryto firmware MK3 w drukarce MK3S" # MSG_NORMAL #: messages.c:88 msgid "Normal" -msgstr "Normalny" +msgstr "Normalni" # MSG_SILENT #: messages.c:87 diff --git a/lang/po/new/de.po b/lang/po/new/de.po index 500248ddd..7745bde85 100644 --- a/lang/po/new/de.po +++ b/lang/po/new/de.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Wed May 13 17:41:25 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:41:25 CEST 2020\n" +"POT-Creation-Date: Fri May 15 16:44:45 CEST 2020\n" +"PO-Revision-Date: Fri May 15 16:44:45 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -423,7 +423,7 @@ msgstr "Luefter Chk." # MSG_FSENSOR #: messages.c:41 msgid "Fil. sensor" -msgstr "" +msgstr "Fil. Sensor" # c=14 #: ultralcd.cpp:1784 @@ -1328,7 +1328,7 @@ msgstr "Leicht.Schr:" # MSG_SOUND #: messages.c:124 msgid "Sound" -msgstr "" +msgstr "Ton" # c=7 #: ultralcd.cpp:1822 @@ -1583,7 +1583,7 @@ msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg." # MSG_TIMEOUT c=12 #: messages.c:137 msgid "Timeout" -msgstr "Auszeit" +msgstr "Verzoegerung" # MSG_X_CORRECTION c=13 #: ultralcd.cpp:5190 @@ -1818,7 +1818,7 @@ msgstr "Sensor Info" # MSG_SHEET c=10 #: messages.c:54 msgid "Sheet" -msgstr "Blech" +msgstr "Stahlblech" # MSG_SOUND_BLIND #: messages.c:127 diff --git a/lang/po/new/it.po b/lang/po/new/it.po index 987543902..1e8c36ac7 100644 --- a/lang/po/new/it.po +++ b/lang/po/new/it.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Wed May 13 17:42:36 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:42:36 CEST 2020\n" +"POT-Creation-Date: Fri May 15 18:16:31 CEST 2020\n" +"PO-Revision-Date: Fri May 15 18:16:31 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -458,12 +458,12 @@ msgstr "Tempo di stampa" # MSG_FS_ACTION c=10 #: messages.c:131 msgid "FS Action" -msgstr "" +msgstr "Azione FS" # c=18 #: Marlin_main.cpp:9512 msgid "FS v0.4 or newer" -msgstr "" +msgstr "FS 0.4 o superiore" # MSG_FILE_INCOMPLETE c=20 r=3 #: ultralcd.cpp:8814 @@ -1693,7 +1693,7 @@ msgstr "Avviso" # #: messages.c:83 msgid "HW Setup" -msgstr "Installazione HW" +msgstr "Impostazioni HW" # #: ultralcd.cpp:4017 diff --git a/lang/po/new/pl.po b/lang/po/new/pl.po index 3df01c101..a086c4044 100644 --- a/lang/po/new/pl.po +++ b/lang/po/new/pl.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Wed May 13 17:43:00 CEST 2020\n" -"PO-Revision-Date: Wed May 13 17:43:00 CEST 2020\n" +"POT-Creation-Date: Fri May 15 18:16:57 CEST 2020\n" +"PO-Revision-Date: Fri May 15 18:16:57 CEST 2020\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -788,7 +788,7 @@ msgstr "Wykryto firmware MK3 w drukarce MK3S" # MSG_NORMAL #: messages.c:88 msgid "Normal" -msgstr "Normalny" +msgstr "Normalni" # MSG_SILENT #: messages.c:87 From 000f824e39283a18f31a84fb6a0941c1b306d6e7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 18 May 2020 01:11:59 +0200 Subject: [PATCH 288/361] Increase E-jerk LA10->15 flattened zone Increase the flattened response in the e-jerk conversion from the 1-4.5 region to 0.3-4.5 (same slope). This brings a 0.3 LA10 e-jerk to a 3.45 LA15 equivalent. This will better handle the legacy Pretty PETG/CFPETG v3 profiles. --- Firmware/la10compat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/la10compat.cpp b/Firmware/la10compat.cpp index 918659255..98522f645 100644 --- a/Firmware/la10compat.cpp +++ b/Firmware/la10compat.cpp @@ -78,10 +78,10 @@ float la10c_jerk(float j) 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 + // flattening the response in the (0.3-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 = j < 0.3? j * 11.5: j < 4.5? j * 0.25 + 3.375: j; From 285088a715f0e8cfdf7789c2c200b85869b9ed5b Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Mon, 18 May 2020 16:45:18 +0200 Subject: [PATCH 289/361] Version changed (3.9.0 build 3421) --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 9d0874421..2783c738c 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.9.0-RC3" -#define FW_COMMIT_NR 3401 +#define FW_VERSION "3.9.0" +#define FW_COMMIT_NR 3421 // 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 2447dbc69fdd602e8844d5f2fdb48678abac8fe8 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Mon, 18 May 2020 16:56:32 +0200 Subject: [PATCH 290/361] Version changed (3.9.0 build 3421) - sync --- Firmware/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 2783c738c..a4d797746 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -17,7 +17,7 @@ extern PGM_P sPrinterName; // Firmware version #define FW_VERSION "3.9.0" -#define FW_COMMIT_NR 3421 +#define FW_COMMIT_NR 3421 // 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 4ffa4dd8fdf00476fcc38077e81aa92e162c3ba1 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 27 May 2020 09:44:28 +0300 Subject: [PATCH 291/361] Fix missing start on MK3/S --- Firmware/Marlin_main.cpp | 10 +++++++--- Firmware/optiboot_w25x20cl.cpp | 8 ++++---- Firmware/optiboot_w25x20cl.h | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a0ef55910..61f0c1326 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1016,9 +1016,10 @@ void setup() #ifdef W25X20CL bool w25x20cl_success = w25x20cl_init(); + uint8_t optiboot_status = 1; if (w25x20cl_success) { - optiboot_w25x20cl_enter(); + optiboot_status = optiboot_w25x20cl_enter(); #if (LANG_MODE != 0) //secondary language support update_sec_lang_from_external_flash(); #endif //(LANG_MODE != 0) @@ -1064,9 +1065,12 @@ void setup() } MYSERIAL.begin(BAUDRATE); fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream -#ifndef W25X20CL +#if !((LANG_MODE == 1) && defined(W25X20CL)) || (LANG_MODE == 0) SERIAL_PROTOCOLLNPGM("start"); -#endif //W25X20CL +#else + if (optiboot_status == 1) + SERIAL_PROTOCOLLNPGM("start"); +#endif stdout = uartout; SERIAL_ECHO_START; printf_P(PSTR(" " FW_VERSION_FULL "\n")); diff --git a/Firmware/optiboot_w25x20cl.cpp b/Firmware/optiboot_w25x20cl.cpp index 584c32fed..7cc44801f 100644 --- a/Firmware/optiboot_w25x20cl.cpp +++ b/Firmware/optiboot_w25x20cl.cpp @@ -99,9 +99,9 @@ struct block_t; extern struct block_t *block_buffer; //! @brief Enter an STK500 compatible Optiboot boot loader waiting for flashing the languages to an external flash memory. -void optiboot_w25x20cl_enter() +uint8_t optiboot_w25x20cl_enter() { - if (boot_app_flags & BOOT_APP_FLG_USER0) return; + if (boot_app_flags & BOOT_APP_FLG_USER0) return 1; uint8_t ch; uint8_t rampz = 0; register uint16_t address = 0; @@ -144,12 +144,12 @@ void optiboot_w25x20cl_enter() delayMicroseconds(1); if (++ boot_timer > boot_timeout) // Timeout expired, continue with the application. - return; + return 0; } ch = UDR0; if (pgm_read_byte(ptr ++) != ch) // Magic was not received correctly, continue with the application - return; + return 0; watchdogReset(); } // Send the cfm magic string. diff --git a/Firmware/optiboot_w25x20cl.h b/Firmware/optiboot_w25x20cl.h index dc7d4395c..95c6465f3 100644 --- a/Firmware/optiboot_w25x20cl.h +++ b/Firmware/optiboot_w25x20cl.h @@ -1,6 +1,6 @@ #ifndef OPTIBOOT_W25X20CL_H #define OPTIBOOT_W25X20CL_H -extern void optiboot_w25x20cl_enter(); +extern uint8_t optiboot_w25x20cl_enter(); #endif /* OPTIBOOT_W25X20CL_H */ From f11ab17746d573325e16f62b7b5d430a03a5f2df Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 27 May 2020 09:59:17 +0300 Subject: [PATCH 292/361] Fix warning --- 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 61f0c1326..a57915c67 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1065,7 +1065,7 @@ void setup() } MYSERIAL.begin(BAUDRATE); fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream -#if !((LANG_MODE == 1) && defined(W25X20CL)) || (LANG_MODE == 0) +#ifndef W25X20CL SERIAL_PROTOCOLLNPGM("start"); #else if (optiboot_status == 1) From e985d17bd11a35cecf162db8f4e1e6a3c3b52b89 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 27 May 2020 10:16:44 +0300 Subject: [PATCH 293/361] Document code --- Firmware/optiboot_w25x20cl.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/optiboot_w25x20cl.cpp b/Firmware/optiboot_w25x20cl.cpp index 7cc44801f..231e7760a 100644 --- a/Firmware/optiboot_w25x20cl.cpp +++ b/Firmware/optiboot_w25x20cl.cpp @@ -99,6 +99,8 @@ struct block_t; extern struct block_t *block_buffer; //! @brief Enter an STK500 compatible Optiboot boot loader waiting for flashing the languages to an external flash memory. +//! @return 1 if "start\n" was not sent. Optiboot was skipped +//! @return 0 if "start\n" was sent. Optiboot ran normally. No need to send "start\n" in setup() uint8_t optiboot_w25x20cl_enter() { if (boot_app_flags & BOOT_APP_FLG_USER0) return 1; From b1e446ef97b16a75a79d42c461c4fd46b1aa9f4d Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 27 May 2020 13:50:02 +0300 Subject: [PATCH 294/361] Remember the serial characters during Optiboot initialization --- Firmware/Marlin_main.cpp | 13 +++++++------ Firmware/optiboot_w25x20cl.cpp | 14 +++++++------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a57915c67..68c5d4b04 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1014,6 +1014,12 @@ void setup() lcd_splash(); Sound_Init(); // also guarantee "SET_OUTPUT(BEEPER)" + selectedSerialPort = eeprom_read_byte((uint8_t*)EEPROM_SECOND_SERIAL_ACTIVE); + if (selectedSerialPort == 0xFF) selectedSerialPort = 0; + MYSERIAL.begin(BAUDRATE); + fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream + stdout = uartout; + #ifdef W25X20CL bool w25x20cl_success = w25x20cl_init(); uint8_t optiboot_status = 1; @@ -1041,15 +1047,13 @@ void setup() if ((farm_mode == 0xFF && farm_no == 0) || ((uint16_t)farm_no == 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 if ((uint16_t)farm_no == 0xFFFF) farm_no = 0; - - selectedSerialPort = eeprom_read_byte((uint8_t*)EEPROM_SECOND_SERIAL_ACTIVE); - if (selectedSerialPort == 0xFF) selectedSerialPort = 0; if (farm_mode) { no_response = true; //we need confirmation by recieving PRUSA thx important_status = 8; prusa_statistics(8); selectedSerialPort = 1; + MYSERIAL.begin(BAUDRATE); #ifdef TMC2130 //increased extruder current (PFW363) tmc2130_current_h[E_AXIS] = 36; @@ -1063,15 +1067,12 @@ void setup() if(!(eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED))) eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED,true); } - MYSERIAL.begin(BAUDRATE); - fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream #ifndef W25X20CL SERIAL_PROTOCOLLNPGM("start"); #else if (optiboot_status == 1) SERIAL_PROTOCOLLNPGM("start"); #endif - stdout = uartout; SERIAL_ECHO_START; printf_P(PSTR(" " FW_VERSION_FULL "\n")); diff --git a/Firmware/optiboot_w25x20cl.cpp b/Firmware/optiboot_w25x20cl.cpp index 231e7760a..648694855 100644 --- a/Firmware/optiboot_w25x20cl.cpp +++ b/Firmware/optiboot_w25x20cl.cpp @@ -122,38 +122,38 @@ uint8_t optiboot_w25x20cl_enter() unsigned long boot_timer = 0; const char *ptr = entry_magic_send; const char *end = strlen_P(entry_magic_send) + ptr; - // Initialize the serial line. - UCSR0A |= (1 << U2X0); - UBRR0L = (((float)(F_CPU))/(((float)(115200))*8.0)-1.0+0.5); - UCSR0B = (1 << RXEN0) | (1 << TXEN0); // Flush the serial line. while (RECV_READY) { watchdogReset(); // Dummy register read (discard) (void)(*(char *)UDR0); } + MYSERIAL.flush(); //clear RX buffer + int SerialHead = rx_buffer.head; // Send the initial magic string. while (ptr != end) putch(pgm_read_byte(ptr ++)); watchdogReset(); - // Wait for one second until a magic string (constant entry_magic) is received + // Wait for two seconds until a magic string (constant entry_magic) is received // from the serial line. ptr = entry_magic_receive; end = strlen_P(entry_magic_receive) + ptr; while (ptr != end) { - while (! RECV_READY) { + while (rx_buffer.head == SerialHead) { watchdogReset(); delayMicroseconds(1); if (++ boot_timer > boot_timeout) // Timeout expired, continue with the application. return 0; } - ch = UDR0; + ch = rx_buffer.buffer[SerialHead]; + SerialHead = (unsigned int)(SerialHead + 1) % RX_BUFFER_SIZE; if (pgm_read_byte(ptr ++) != ch) // Magic was not received correctly, continue with the application return 0; watchdogReset(); } + cbi(UCSR0B, RXCIE0); //disable the MarlinSerial0 interrupt // Send the cfm magic string. ptr = entry_magic_cfm; while (ptr != end) From c84aef3a288e75796fd30eec6164bab79062b6c3 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 27 May 2020 17:40:14 +0300 Subject: [PATCH 295/361] Handle second serial port correctly --- Firmware/Marlin_main.cpp | 5 +++-- Firmware/optiboot_w25x20cl.cpp | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 68c5d4b04..651aeb812 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1014,8 +1014,9 @@ void setup() lcd_splash(); Sound_Init(); // also guarantee "SET_OUTPUT(BEEPER)" - selectedSerialPort = eeprom_read_byte((uint8_t*)EEPROM_SECOND_SERIAL_ACTIVE); + selectedSerialPort = eeprom_read_byte((uint8_t *)EEPROM_SECOND_SERIAL_ACTIVE); if (selectedSerialPort == 0xFF) selectedSerialPort = 0; + eeprom_update_byte((uint8_t *)EEPROM_SECOND_SERIAL_ACTIVE, selectedSerialPort); MYSERIAL.begin(BAUDRATE); fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream stdout = uartout; @@ -1070,7 +1071,7 @@ void setup() #ifndef W25X20CL SERIAL_PROTOCOLLNPGM("start"); #else - if (optiboot_status == 1) + if ((optiboot_status != 0) || (selectedSerialPort != 0)) SERIAL_PROTOCOLLNPGM("start"); #endif SERIAL_ECHO_START; diff --git a/Firmware/optiboot_w25x20cl.cpp b/Firmware/optiboot_w25x20cl.cpp index 648694855..dce4074e1 100644 --- a/Firmware/optiboot_w25x20cl.cpp +++ b/Firmware/optiboot_w25x20cl.cpp @@ -122,12 +122,14 @@ uint8_t optiboot_w25x20cl_enter() unsigned long boot_timer = 0; const char *ptr = entry_magic_send; const char *end = strlen_P(entry_magic_send) + ptr; + const uint8_t selectedSerialPort_bak = selectedSerialPort; // Flush the serial line. while (RECV_READY) { watchdogReset(); // Dummy register read (discard) (void)(*(char *)UDR0); } + selectedSerialPort = 0; //switch to Serial0 MYSERIAL.flush(); //clear RX buffer int SerialHead = rx_buffer.head; // Send the initial magic string. @@ -143,14 +145,20 @@ uint8_t optiboot_w25x20cl_enter() watchdogReset(); delayMicroseconds(1); if (++ boot_timer > boot_timeout) + { // Timeout expired, continue with the application. + selectedSerialPort = selectedSerialPort_bak; //revert Serial setting return 0; + } } ch = rx_buffer.buffer[SerialHead]; SerialHead = (unsigned int)(SerialHead + 1) % RX_BUFFER_SIZE; if (pgm_read_byte(ptr ++) != ch) + { // Magic was not received correctly, continue with the application + selectedSerialPort = selectedSerialPort_bak; //revert Serial setting return 0; + } watchdogReset(); } cbi(UCSR0B, RXCIE0); //disable the MarlinSerial0 interrupt From eb44ee0f5786e84cbe318eebde2257b7a4cd5b24 Mon Sep 17 00:00:00 2001 From: DRracer Date: Mon, 1 Jun 2020 17:51:28 +0200 Subject: [PATCH 296/361] Code size optimization: 2KB down (#2687) * Combine repeated calls into functions with much less parameters -> 2KB down. * Save some bytes by removing unnecessary 1-character strings: "x" -> 'x' used in SERIAL_xxx printing macros. This is also saves some CPU cycles * Fix compilation for MK25S and MK3 * Copy surrounding indentation * Fix compilation for a rare HW setup * rename mesh_planXX_buffer_line back to mesh_plan_buffer_line * Remove active_extruder from remaining plan_buffer_line_destinationXYZE calls and one more fix of indentation --- Firmware/Marlin_main.cpp | 236 +++++++++++++++--------------- Firmware/cardreader.cpp | 16 +- Firmware/fsensor.cpp | 6 +- Firmware/mesh_bed_calibration.cpp | 4 +- Firmware/mmu.cpp | 32 ++-- Firmware/planner.cpp | 12 +- Firmware/planner.h | 6 +- Firmware/ultralcd.cpp | 76 +++++----- 8 files changed, 197 insertions(+), 191 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 651aeb812..36764b21f 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1338,8 +1338,7 @@ void setup() // Initialize current_position accounting for software endstops to // avoid unexpected initial shifts on the first move clamp_to_software_endstops(current_position); - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], - current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); #ifdef FILAMENT_SENSOR fsensor_init(); @@ -1954,7 +1953,7 @@ static void set_bed_level_equation_lsq(double *plane_equation_coefficients) // put the bed at 0 so we don't go below it. current_position[Z_AXIS] = cs.zprobe_zoffset; // in the lsq we reach here after raising the extruder due to the loop structure - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); } #else // not AUTO_BED_LEVELING_GRID @@ -1982,7 +1981,7 @@ static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float // put the bed at 0 so we don't go below it. current_position[Z_AXIS] = cs.zprobe_zoffset; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); } @@ -2014,7 +2013,7 @@ static void run_z_probe() { current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); // make sure the planner knows where we are as it may be a bit different than we last said to move to - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); } static void do_blocking_move_to(float x, float y, float z) { @@ -2135,7 +2134,7 @@ void raise_z_above(float target, bool plan) if (axis_known_position[Z_AXIS] || z_min_endstop) { // 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); + if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]); return; } @@ -2148,15 +2147,14 @@ void raise_z_above(float target, bool plan) #ifdef TMC2130 tmc2130_home_enter(Z_AXIS_MASK); #endif //TMC2130 - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60); 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]); + plan_set_position_curposXYZE(); } tmc2130_home_exit(); #endif //TMC2130 @@ -2174,22 +2172,22 @@ bool calibrate_z_auto() int axis_up_dir = -home_dir(Z_AXIS); tmc2130_home_enter(Z_AXIS_MASK); current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); set_destination_to_current(); destination[Z_AXIS] += (1.1 * max_length(Z_AXIS) * axis_up_dir); feedrate = homing_feedrate[Z_AXIS]; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate / 60); st_synchronize(); // current_position[axis] = 0; - // plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + // plan_set_position_curposXYZE(); tmc2130_home_exit(); enable_endstops(false); current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); set_destination_to_current(); destination[Z_AXIS] += 10 * axis_up_dir; //10mm up feedrate = homing_feedrate[Z_AXIS] / 2; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate / 60); st_synchronize(); enable_endstops(endstops_enabled); if (PRINTER_TYPE == PRINTER_MK3) { @@ -2198,7 +2196,7 @@ bool calibrate_z_auto() else { current_position[Z_AXIS] = Z_MAX_POS + 9.0; } - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); return true; } #endif //TMC2130 @@ -2209,9 +2207,9 @@ static void check_Z_crash(void) if (READ(Z_TMC2130_DIAG) != 0) { //Z crash FORCE_HIGH_POWER_END; current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]); st_synchronize(); kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW)); } @@ -2241,24 +2239,24 @@ void homeaxis(int axis, uint8_t cnt) // and the following movement to endstop has a chance to achieve the required velocity // for the stall guard to work. current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); set_destination_to_current(); // destination[axis] = 11.f; destination[axis] = -3.f * axis_home_dir; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); // Move away from the possible collision with opposite endstop with the collision detection disabled. endstops_hit_on_purpose(); enable_endstops(false); current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); destination[axis] = 1. * axis_home_dir; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); // Now continue to move up to the left end stop with the collision detection enabled. enable_endstops(true); destination[axis] = 1.1 * axis_home_dir * max_length(axis); - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); for (uint8_t i = 0; i < cnt; i++) { @@ -2266,9 +2264,9 @@ void homeaxis(int axis, uint8_t cnt) endstops_hit_on_purpose(); enable_endstops(false); current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); destination[axis] = -10.f * axis_home_dir; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); endstops_hit_on_purpose(); // Now move left up to the collision, this time with a repeatable velocity. @@ -2279,7 +2277,7 @@ void homeaxis(int axis, uint8_t cnt) #else //TMC2130 feedrate = homing_feedrate[axis] / 2; #endif //TMC2130 - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); #ifdef TMC2130 uint16_t mscnt = tmc2130_rd_MSCNT(axis); @@ -2313,10 +2311,10 @@ void homeaxis(int axis, uint8_t cnt) float dist = - axis_home_dir * 0.01f * 64; #endif //TMC2130 current_position[axis] -= dist; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); current_position[axis] += dist; destination[axis] = current_position[axis]; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], 0.5f*feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(0.5f*feedrate/60); st_synchronize(); feedrate = 0.0; @@ -2328,22 +2326,22 @@ void homeaxis(int axis, uint8_t cnt) #endif int axis_home_dir = home_dir(axis); current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); destination[axis] = 1.5 * max_length(axis) * axis_home_dir; feedrate = homing_feedrate[axis]; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); #ifdef TMC2130 check_Z_crash(); #endif //TMC2130 current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); destination[axis] = -home_retract_mm(axis) * axis_home_dir; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); destination[axis] = 2*home_retract_mm(axis) * axis_home_dir; feedrate = homing_feedrate[axis]/2 ; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); st_synchronize(); #ifdef TMC2130 check_Z_crash(); @@ -2366,7 +2364,7 @@ void home_xy() set_destination_to_current(); homeaxis(X_AXIS); homeaxis(Y_AXIS); - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); endstops_hit_on_purpose(); } @@ -2389,7 +2387,7 @@ void refresh_cmd_timeout(void) retracted[active_extruder]=true; prepare_move(); current_position[Z_AXIS]-=cs.retract_zlift; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); prepare_move(); feedrate = oldFeedrate; } else if(!retracting && retracted[active_extruder]) { @@ -2398,7 +2396,7 @@ void refresh_cmd_timeout(void) destination[Z_AXIS]=current_position[Z_AXIS]; destination[E_AXIS]=current_position[E_AXIS]; current_position[Z_AXIS]+=cs.retract_zlift; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); current_position[E_AXIS]-=(swapretract?(retract_length_swap+retract_recover_length_swap):(cs.retract_length+cs.retract_recover_length))*float(extrudemultiply)*0.01f; plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; @@ -2601,7 +2599,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon int x_axis_home_dir = home_dir(X_AXIS); - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); destination[X_AXIS] = 1.5 * max_length(X_AXIS) * x_axis_home_dir;destination[Y_AXIS] = 1.5 * max_length(Y_AXIS) * home_dir(Y_AXIS); feedrate = homing_feedrate[X_AXIS]; if(homing_feedrate[Y_AXIS]= 0) @@ -2990,7 +2988,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) clean_up_after_endstop_move(l_feedmultiply); // Print head up. current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40); st_synchronize(); // if (result >= 0) babystep_apply(); #endif //HEATBED_V2 @@ -3103,18 +3101,18 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float //Retract E current_position[E_AXIS] += e_shift; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_RFEED, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_RFEED); st_synchronize(); //Lift Z current_position[Z_AXIS] += z_shift; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED); st_synchronize(); //Move XY to side current_position[X_AXIS] = x_position; current_position[Y_AXIS] = y_position; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED); st_synchronize(); //Beep, manage nozzle heater and wait for user to start unload filament @@ -3139,7 +3137,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_PLEASE_WAIT)); current_position[X_AXIS] -= 100; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED); st_synchronize(); lcd_show_fullscreen_message_and_wait_P(_i("Please open idler and remove filament manually."));////MSG_CHECK_IDLER c=20 r=4 } @@ -3176,7 +3174,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float if (!automatic) { current_position[E_AXIS] += FILAMENTCHANGE_RECFEED; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_EXFEED, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_EXFEED); } //Move XY back @@ -3234,12 +3232,12 @@ void gcode_M701() lcd_setstatuspgm(_T(MSG_LOADING_FILAMENT)); current_position[E_AXIS] += 40; - plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence + plan_buffer_line_curposXYZE(400 / 60); //fast sequence st_synchronize(); raise_z_above(MIN_Z_FOR_LOAD, false); current_position[E_AXIS] += 30; - plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence + plan_buffer_line_curposXYZE(400 / 60); //fast sequence load_filament_final_feed(); //slow sequence st_synchronize(); @@ -3405,8 +3403,7 @@ static void gcode_G92() 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]); + plan_set_position_curposXYZE(); } } @@ -4359,7 +4356,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) current_position[X_AXIS] = uncorrected_position.x; current_position[Y_AXIS] = uncorrected_position.y; current_position[Z_AXIS] = uncorrected_position.z; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); int l_feedmultiply = setup_for_endstop_move(); feedrate = homing_feedrate[Z_AXIS]; @@ -4473,7 +4470,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); //Apply the correction sending the probe offset current_position[Z_AXIS] = z_tmp - real_z + current_position[Z_AXIS]; //The difference is added to current position and sent to planner. - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); } break; #ifndef Z_PROBE_SLED @@ -4605,15 +4602,15 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if (result) { current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[Z_AXIS] = 50; current_position[Y_AXIS] = 180; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET)); current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); gcode_G28(false, false, true); @@ -4621,7 +4618,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if ((current_temperature_pinda > 35) && (farm_mode == false)) { //waiting for PIDNA probe to cool down in case that we are not in farm mode current_position[Z_AXIS] = 100; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); if (lcd_wait_for_pinda(35) == false) { //waiting for PINDA probe to cool, if this takes more then time expected, temp. cal. fails lcd_temp_cal_show_result(false); break; @@ -4645,12 +4642,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) custom_message_state = 1; lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION)); current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); while (current_temperature_pinda < start_temp) @@ -4662,10 +4659,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); bool find_z_result = find_bed_induction_sensor_point_z(-1.f); @@ -4693,12 +4690,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) setTargetBed(50 + 10 * (temp - 30) / 5); // setTargetHotend(255, 0); current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); while (current_temperature_pinda < temp) { @@ -4706,10 +4703,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) serialecho_temperatures(); } current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); find_z_result = find_bed_induction_sensor_point_z(-1.f); if (find_z_result == false) { @@ -4749,7 +4746,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); while (abs(degBed() - PINDA_MIN_T) > 1) { @@ -4765,11 +4762,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process current_position[Z_AXIS] = 5; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = BED_X0; current_position[Y_AXIS] = BED_Y0; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); find_bed_induction_sensor_point_z(-1.f); @@ -4786,7 +4783,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); while (degBed() < t_c) { delay_keep_alive(1000); @@ -4797,10 +4794,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) serialecho_temperatures(); } current_position[Z_AXIS] = 5; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); current_position[X_AXIS] = BED_X0; current_position[Y_AXIS] = BED_Y0; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); + plan_buffer_line_curposXYZE(3000 / 60); st_synchronize(); find_bed_induction_sensor_point_z(-1.f); z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]); @@ -4943,7 +4940,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // Cycle through all points and probe them // First move up. During this first movement, the babystepping will be reverted. current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60); // The move to the first calibration point. current_position[X_AXIS] = BED_X0; current_position[Y_AXIS] = BED_Y0; @@ -4958,7 +4955,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); #endif //SUPPORT_VERBOSITY - plan_buffer_line_curposXYZE(homing_feedrate[X_AXIS] / 30, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[X_AXIS] / 30); // Wait until the move is finished. st_synchronize(); @@ -5010,7 +5007,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if((ix == 0) && (iy == 0)) current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; else current_position[Z_AXIS] += 2.f / nMeasPoints; //use relative movement from Z coordinate where PINDa triggered on previous point. This makes calibration faster. float init_z_bckp = current_position[Z_AXIS]; - plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE); st_synchronize(); // Move to XY position of the sensor point. @@ -5031,7 +5028,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif // SUPPORT_VERBOSITY //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); + plan_buffer_line_curposXYZE(XY_AXIS_FEEDRATE); st_synchronize(); // Go down until endstop is hit @@ -5043,7 +5040,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) 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]); current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE); st_synchronize(); if (!find_bed_induction_sensor_point_z((has_z && mesh_point > 0) ? z0 - Z_CALIBRATION_THRESHOLD : -10.f, nProbeRetry)) { //if we have data from z calibration max allowed difference is 1mm for each point, if we dont have data max difference is 10mm from initial point @@ -5098,7 +5095,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) MYSERIAL.print(current_position[Z_AXIS], 5); } #endif // SUPPORT_VERBOSITY - plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE); st_synchronize(); if (mesh_point != nMeasPoints * nMeasPoints) { Sound_MakeSound(e_SOUND_TYPE_StandardAlert); @@ -5115,14 +5112,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // ~ Z-homing (can not be used "G28", because X & Y-homing would have been done before (Z-homing)) bState=enable_z_endstop(false); current_position[Z_AXIS] -= 1; - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40); st_synchronize(); enable_z_endstop(true); #ifdef TMC2130 tmc2130_home_enter(Z_AXIS_MASK); #endif // TMC2130 current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40); st_synchronize(); #ifdef TMC2130 tmc2130_home_exit(); @@ -5252,7 +5249,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) //unretract (after PINDA preheat retraction) if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { current_position[E_AXIS] += default_retraction; - plan_buffer_line_curposXYZE(400, active_extruder); + plan_buffer_line_curposXYZE(400); } KEEPALIVE_STATE(NOT_BUSY); // Restore custom message state @@ -5274,7 +5271,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if (mbl.active) { SERIAL_PROTOCOLPGM("Num X,Y: "); SERIAL_PROTOCOL(MESH_NUM_X_POINTS); - SERIAL_PROTOCOLPGM(","); + SERIAL_PROTOCOL(','); SERIAL_PROTOCOL(MESH_NUM_Y_POINTS); SERIAL_PROTOCOLPGM("\nZ search height: "); SERIAL_PROTOCOL(MESH_HOME_Z_SEARCH); @@ -5284,7 +5281,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLPGM(" "); SERIAL_PROTOCOL_F(mbl.z_values[y][x], 5); } - SERIAL_PROTOCOLPGM("\n"); + SERIAL_PROTOCOLLN(); } } else @@ -6292,7 +6289,7 @@ Sigma_Exit: for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) { SERIAL_PROTOCOLPGM(" T"); SERIAL_PROTOCOL(cur_extruder); - SERIAL_PROTOCOLPGM(":"); + SERIAL_PROTOCOL(':'); SERIAL_PROTOCOL_F(degHotend(cur_extruder),1); SERIAL_PROTOCOLPGM(" /"); SERIAL_PROTOCOL_F(degTargetHotend(cur_extruder),1); @@ -7977,9 +7974,8 @@ Sigma_Exit: { SERIAL_PROTOCOLPGM("P:"); SERIAL_PROTOCOL_F(current_temperature_pinda, 1); - SERIAL_PROTOCOLPGM("/"); - SERIAL_PROTOCOL(set_target_pinda); - SERIAL_PROTOCOLLN(""); + SERIAL_PROTOCOL('/'); + SERIAL_PROTOCOLLN(set_target_pinda); codenum = _millis(); } manage_heater(); @@ -8728,7 +8724,7 @@ Sigma_Exit: #else //SNMM if (tmp_extruder >= EXTRUDERS) { SERIAL_ECHO_START; - SERIAL_ECHOPGM("T"); + SERIAL_ECHO('T'); SERIAL_PROTOCOLLN((int)tmp_extruder); SERIAL_ECHOLNRPGM(_n("Invalid extruder"));////MSG_INVALID_EXTRUDER } @@ -8758,7 +8754,7 @@ Sigma_Exit: } // Set the new active extruder and position active_extruder = tmp_extruder; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); // Move to the old position if 'F' was in the parameters if (make_move && Stopped == false) { prepare_move(); @@ -9308,13 +9304,13 @@ void prepare_move() // Do not use feedmultiply for E or Z only moves if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) { - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + plan_buffer_line_destinationXYZE(feedrate/60); } else { #ifdef MESH_BED_LEVELING mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder); #else - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder); + plan_buffer_line_destinationXYZE(feedrate*feedmultiply*(1./(60.f*100.f))); #endif } @@ -9946,7 +9942,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) { } else { - SERIAL_PROTOCOLLN("?"); + SERIAL_PROTOCOLLN('?'); } } #else @@ -10077,16 +10073,16 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi card.openFile(filename_wldsd, false); /*destination[Z_AXIS] = mesh_home_z_search; - //plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); + //plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE); - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE); for(int8_t i=0; i < NUM_AXIS; i++) { current_position[i] = destination[i]; } st_synchronize(); */ destination[Z_AXIS] = measure_z_height; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE); for(int8_t i=0; i < NUM_AXIS; i++) { current_position[i] = destination[i]; } @@ -10111,9 +10107,9 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi if (iy & 1) ix = (x_points_num - 1) - ix; // Zig zag float z0 = 0.f; /*destination[Z_AXIS] = mesh_home_z_search; - //plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); + //plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE); - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder); + plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE); for(int8_t i=0; i < NUM_AXIS; i++) { current_position[i] = destination[i]; } @@ -10126,8 +10122,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); - set_current_to_destination(); + mesh_plan_buffer_line_destinationXYZE(XY_AXIS_FEEDRATE/6); + set_current_to_destination(); st_synchronize(); // printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]); @@ -10550,12 +10546,12 @@ void long_pause() //long pause print //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); + plan_buffer_line_curposXYZE(15); //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); + plan_buffer_line_curposXYZE(50); // Turn off the print fan fanSpeed = 0; @@ -10665,7 +10661,7 @@ void uvlo_() // Retract current_position[E_AXIS] -= default_retraction; - plan_buffer_line_curposXYZE(95, active_extruder); + plan_buffer_line_curposXYZE(95); st_synchronize(); disable_e0(); @@ -10678,7 +10674,7 @@ void uvlo_() 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); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60); st_synchronize(); poweroff_z(); @@ -10741,7 +10737,7 @@ void uvlo_() // All is set: with all the juice left, try to move extruder away to detach the nozzle completely from the print 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); + plan_buffer_line_curposXYZE(500); st_synchronize(); wdt_enable(WDTO_1S); @@ -10792,7 +10788,7 @@ void uvlo_tiny() 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); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60); st_synchronize(); poweroff_z(); @@ -10971,7 +10967,7 @@ bool recover_machine_state_after_power_panic() // 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]); + plan_set_position_curposXYZE(); // 6) Power up the Z motors, mark their positions as known. axis_known_position[Z_AXIS] = true; @@ -11395,9 +11391,9 @@ void print_mesh_bed_leveling_table() for (int8_t y = 0; y < MESH_NUM_Y_POINTS; ++ y) for (int8_t x = 0; x < MESH_NUM_Y_POINTS; ++ x) { MYSERIAL.print(mbl.z_values[y][x], 3); - SERIAL_ECHOPGM(" "); + SERIAL_ECHO(' '); } - SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLN(); } uint16_t print_time_remaining() { @@ -11445,7 +11441,7 @@ static void print_time_remaining_init() void load_filament_final_feed() { current_position[E_AXIS]+= FILAMENTCHANGE_FINALFEED; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FINAL, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FINAL); } //! @brief Wait for user to check the state @@ -11590,7 +11586,7 @@ void M600_load_filament_movements() plan_buffer_line_curposXYZE(50, active_extruder); #else current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED ; - plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST, active_extruder); + plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST); #endif load_filament_final_feed(); lcd_loading_filament(); diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index fb25ff6cf..a49cd6d68 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -331,7 +331,7 @@ void CardReader::diveSubfolder (const char *fileName, SdFile& dir) { SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL); SERIAL_PROTOCOL(subdirname); - SERIAL_PROTOCOLLNPGM("."); + SERIAL_PROTOCOLLN('.'); return; } else @@ -430,7 +430,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru { SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL); SERIAL_PROTOCOL(fname); - SERIAL_PROTOCOLLNPGM("."); + SERIAL_PROTOCOLLN('.'); } } else @@ -439,7 +439,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru { SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL); SERIAL_PROTOCOL(fname); - SERIAL_PROTOCOLLNPGM("."); + SERIAL_PROTOCOLLN('.'); } else { @@ -496,17 +496,15 @@ void CardReader::getStatus() SERIAL_PROTOCOLLNPGM("Print saved"); } else { - SERIAL_PROTOCOL(longFilename); - SERIAL_PROTOCOLPGM("\n"); + SERIAL_PROTOCOLLN(longFilename); SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE SERIAL_PROTOCOL(sdpos); - SERIAL_PROTOCOLPGM("/"); + SERIAL_PROTOCOL('/'); SERIAL_PROTOCOLLN(filesize); - uint16_t time = _millis()/60000 - starttime/60000; + uint16_t time = ( _millis() - starttime ) / 60000U; SERIAL_PROTOCOL(itostr2(time/60)); SERIAL_PROTOCOL(':'); - SERIAL_PROTOCOL(itostr2(time%60)); - SERIAL_PROTOCOLPGM("\n"); + SERIAL_PROTOCOLLN(itostr2(time%60)); } } else { diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index edb2fa894..f5fc768a4 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -624,7 +624,7 @@ void fsensor_update(void) // 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); + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]); st_synchronize(); // check the filament in isolation @@ -632,9 +632,9 @@ void fsensor_update(void) fsensor_oq_meassure_start(0); float e_tmp = current_position[E_AXIS]; current_position[E_AXIS] -= 3; - plan_buffer_line_curposXYZE(250/60, active_extruder); + plan_buffer_line_curposXYZE(250/60); current_position[E_AXIS] = e_tmp; - plan_buffer_line_curposXYZE(200/60, active_extruder); + plan_buffer_line_curposXYZE(200/60); st_synchronize(); fsensor_oq_meassure_stop(); diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 88cbc671a..12fca582e 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -920,7 +920,7 @@ static inline void go_xy(float x, float y, float fr) static inline void go_to_current(float fr) { - plan_buffer_line_curposXYZE(fr, active_extruder); + plan_buffer_line_curposXYZE(fr); st_synchronize(); } @@ -929,7 +929,7 @@ static inline void update_current_position_xyz() current_position[X_AXIS] = st_get_position_mm(X_AXIS); current_position[Y_AXIS] = st_get_position_mm(Y_AXIS); current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); } static inline void update_current_position_z() diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index ebf8c0131..c5981894c 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -540,7 +540,7 @@ void mmu_command(MmuCmd cmd) void mmu_load_step(bool synchronize) { current_position[E_AXIS] = current_position[E_AXIS] + MMU_LOAD_FEEDRATE * 0.1; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); if (synchronize) st_synchronize(); } @@ -605,7 +605,7 @@ bool mmu_get_response(uint8_t move) { printf_P(PSTR("Unload 1\n")); current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); st_synchronize(); } } @@ -623,7 +623,7 @@ bool mmu_get_response(uint8_t move) { printf_P(PSTR("Unload 2\n")); current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); st_synchronize(); } } @@ -701,13 +701,13 @@ void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move) //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); + plan_buffer_line_curposXYZE(15); 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); + plan_buffer_line_curposXYZE(50); st_synchronize(); } if (turn_off_nozzle) { @@ -758,17 +758,17 @@ void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move) lcd_display_message_fullscreen_P(_i("MMU OK. Resuming temperature...")); delay_keep_alive(3000); } - mmu_wait_for_heater_blocking(); + mmu_wait_for_heater_blocking(); } if (move_axes) { lcd_clear(); lcd_display_message_fullscreen_P(_i("MMU OK. Resuming position...")); current_position[X_AXIS] = x_position_bckp; current_position[Y_AXIS] = y_position_bckp; - plan_buffer_line_curposXYZE(50, active_extruder); + plan_buffer_line_curposXYZE(50); st_synchronize(); current_position[Z_AXIS] = z_position_bckp; - plan_buffer_line_curposXYZE(15, active_extruder); + plan_buffer_line_curposXYZE(15); st_synchronize(); } else { @@ -807,19 +807,19 @@ void mmu_load_to_nozzle() current_position[E_AXIS] += 7.2f; } float feedrate = 562; - plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); + plan_buffer_line_curposXYZE(feedrate / 60); st_synchronize(); current_position[E_AXIS] += 14.4f; feedrate = 871; - plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); + plan_buffer_line_curposXYZE(feedrate / 60); st_synchronize(); current_position[E_AXIS] += 36.0f; feedrate = 1393; - plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); + plan_buffer_line_curposXYZE(feedrate / 60); st_synchronize(); current_position[E_AXIS] += 14.4f; feedrate = 871; - plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); + plan_buffer_line_curposXYZE(feedrate / 60); st_synchronize(); if (!saved_e_relative_mode) axis_relative_modes &= ~E_AXIS_MASK; } @@ -1072,7 +1072,7 @@ void mmu_filament_ramming() for(uint8_t i = 0; i < (sizeof(ramming_sequence)/sizeof(E_step));++i) { current_position[E_AXIS] += pgm_read_float(&(ramming_sequence[i].extrude)); - plan_buffer_line_curposXYZE(pgm_read_float(&(ramming_sequence[i].feed_rate)), active_extruder); + plan_buffer_line_curposXYZE(pgm_read_float(&(ramming_sequence[i].feed_rate))); st_synchronize(); } } @@ -1446,9 +1446,9 @@ bFilamentAction=false; // NOT in "mmu_fil_eject_menu( static bool can_load() { current_position[E_AXIS] += 60; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); current_position[E_AXIS] -= 52; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); st_synchronize(); uint_least8_t filament_detected_count = 0; @@ -1458,7 +1458,7 @@ static bool can_load() for(uint_least8_t i = 0; i < steps; ++i) { current_position[E_AXIS] -= e_increment; - plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder); + plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE); st_synchronize(); if(0 == PIN_GET(IR_SENSOR_PIN)) { diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index fcebfa58f..c0f465c2a 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -671,8 +671,16 @@ void planner_abort_hard() waiting_inside_plan_buffer_line_print_aborted = true; } -void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder) { - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feed_rate, extruder ); +void plan_buffer_line_curposXYZE(float feed_rate) { + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feed_rate, active_extruder ); +} + +void plan_buffer_line_destinationXYZE(float feed_rate) { + plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feed_rate, active_extruder); +} + +void plan_set_position_curposXYZE(){ + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } float junction_deviation = 0.1; diff --git a/Firmware/planner.h b/Firmware/planner.h index 2adcf94e7..2096111ea 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -154,7 +154,11 @@ vector_3 plan_get_position(); /// plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], ... /// saves almost 5KB. /// 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_curposXYZE(float feed_rate); + +void plan_buffer_line_destinationXYZE(float feed_rate); + +void plan_set_position_curposXYZE(); 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); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9537d9df6..a9fa50d1d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2919,7 +2919,7 @@ static void _lcd_move(const char *name, int axis, int min, int max) if (max_software_endstops && current_position[axis] > max) current_position[axis] = max; lcd_encoder = 0; world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); - plan_buffer_line_curposXYZE(manual_feedrate[axis] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[axis] / 60); lcd_draw_update = 1; } } @@ -2944,7 +2944,7 @@ static void lcd_move_e() { current_position[E_AXIS] += float((int)lcd_encoder) * move_menu_scale; lcd_encoder = 0; - plan_buffer_line_curposXYZE(manual_feedrate[E_AXIS] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[E_AXIS] / 60); lcd_draw_update = 1; } } @@ -3462,7 +3462,7 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z) { // Don't know where we are. Let's claim we are Z=0, so the soft end stops will not be triggered when moving up. current_position[Z_AXIS] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); // Until confirmed by the confirmation dialog. for (;;) { @@ -3484,7 +3484,7 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z) // Only move up, whatever direction the user rotates the encoder. current_position[Z_AXIS] += fabs(lcd_encoder); lcd_encoder = 0; - plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); } } if (lcd_clicked()) { @@ -3520,7 +3520,7 @@ calibrated: else { current_position[Z_AXIS] = Z_MAX_POS+4.f; } - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); return true; canceled: @@ -4038,7 +4038,7 @@ void prusa_statistics_err(char c){ } static void prusa_statistics_case0(uint8_t statnr){ - SERIAL_ECHO("{"); + SERIAL_ECHO('{'); prusa_stat_printerstatus(statnr); prusa_stat_farm_number(); prusa_stat_printinfo(); @@ -4066,7 +4066,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) { } else { - SERIAL_ECHO("{"); + SERIAL_ECHO('{'); prusa_stat_printerstatus(1); prusa_stat_farm_number(); prusa_stat_diameter(); @@ -4899,7 +4899,7 @@ void lcd_language() static void wait_preheat() { current_position[Z_AXIS] = 100; //move in z axis to make space for loading filament - plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder); + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60); delay_keep_alive(2000); lcd_display_message_fullscreen_P(_T(MSG_WIZARD_HEATING)); lcd_set_custom_characters(); @@ -6387,13 +6387,13 @@ void unload_filament() // extr_unload2(); current_position[E_AXIS] -= 45; - plan_buffer_line_curposXYZE(5200 / 60, active_extruder); + plan_buffer_line_curposXYZE(5200 / 60); st_synchronize(); current_position[E_AXIS] -= 15; - plan_buffer_line_curposXYZE(1000 / 60, active_extruder); + plan_buffer_line_curposXYZE(1000 / 60); st_synchronize(); current_position[E_AXIS] -= 20; - plan_buffer_line_curposXYZE(1000 / 60, active_extruder); + plan_buffer_line_curposXYZE(1000 / 60); st_synchronize(); lcd_display_message_fullscreen_P(_T(MSG_PULL_OUT_FILAMENT)); @@ -7353,13 +7353,13 @@ void lcd_print_stop() 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); + plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); 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); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); } st_synchronize(); @@ -7713,7 +7713,7 @@ bool lcd_selftest() current_position[Y_AXIS] += 4; #endif //TMC2130 current_position[Z_AXIS] = current_position[Z_AXIS] + 10; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); set_destination_to_current(); _progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500); @@ -7725,7 +7725,7 @@ bool lcd_selftest() //raise Z to not damage the bed during and hotend testing current_position[Z_AXIS] += 20; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); } @@ -7733,7 +7733,7 @@ bool lcd_selftest() if (_result) { current_position[Z_AXIS] = current_position[Z_AXIS] + 10; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); _progress = lcd_selftest_screen(TestScreen::Home, 0, 2, true, 0); bool bres = tmc2130_home_calibrate(X_AXIS); @@ -7829,7 +7829,7 @@ bool lcd_selftest() static void reset_crash_det(unsigned char axis) { current_position[axis] += 10; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_DET)) tmc2130_sg_stop_on_crash = true; } @@ -7858,7 +7858,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { // first axis length measurement begin current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); @@ -7868,11 +7868,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position_init = st_get_position_mm(axis); current_position[axis] += 2 * margin; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); current_position[axis] += axis_length; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); @@ -7888,11 +7888,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { current_position[axis] -= margin; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); current_position[axis] -= (axis_length + margin); - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); @@ -7917,7 +7917,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { lcd_selftest_error(TestError::Axis, _error_1, ""); current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); reset_crash_det(axis); enable_endstops(true); endstops_hit_on_purpose(); @@ -7937,13 +7937,13 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { lcd_selftest_error(TestError::Pulley, _error_1, ""); current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); reset_crash_det(axis); endstops_hit_on_purpose(); return false; } current_position[axis] = 0; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); reset_crash_det(axis); endstops_hit_on_purpose(); return true; @@ -7965,13 +7965,13 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) if (_axis == X_AXIS) { current_position[Z_AXIS] += 17; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); } do { current_position[_axis] = current_position[_axis] - 1; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); #ifdef TMC2130 if ((READ(Z_MIN_PIN) ^ (bool)Z_MIN_ENDSTOP_INVERTING)) @@ -8051,7 +8051,7 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) } } current_position[_axis] = 0; //simulate axis home to avoid negative numbers for axis position, especially Z. - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + plan_set_position_curposXYZE(); return _stepresult; } @@ -8074,17 +8074,17 @@ static bool lcd_selfcheck_pulleys(int axis) current_position_init = current_position[axis]; current_position[axis] += 2; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); for (i = 0; i < 5; i++) { refresh_cmd_timeout(); current_position[axis] = current_position[axis] + move; st_current_set(0, 850); //set motor current higher - plan_buffer_line_curposXYZE(200, active_extruder); + plan_buffer_line_curposXYZE(200); st_synchronize(); if (SilentModeMenu != SILENT_MODE_OFF) st_current_set(0, tmp_motor[0]); //set back to normal operation currents else st_current_set(0, tmp_motor_loud[0]); //set motor current back current_position[axis] = current_position[axis] - move; - plan_buffer_line_curposXYZE(50, active_extruder); + plan_buffer_line_curposXYZE(50); st_synchronize(); if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) { @@ -8101,7 +8101,7 @@ static bool lcd_selfcheck_pulleys(int axis) endstop_triggered = true; if (current_position_init - 1 <= current_position[axis] && current_position_init + 1 >= current_position[axis]) { current_position[axis] += 10; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); return(true); } @@ -8112,7 +8112,7 @@ static bool lcd_selfcheck_pulleys(int axis) } else { current_position[axis] -= 1; - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); if (_millis() > timeout_counter) { lcd_selftest_error(TestError::Pulley, (axis == 0) ? "X" : "Y", ""); @@ -8142,7 +8142,7 @@ static bool lcd_selfcheck_endstops() #endif //!TMC2130 if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) current_position[2] += 10; } - plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); st_synchronize(); if ( @@ -8653,7 +8653,7 @@ static FanCheck lcd_selftest_fan_auto(int _fan) static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_scale, bool _clear, int _delay) { - lcd_update_enable(false); + lcd_update_enable(false); const char *_indicator = (_progress >= _progress_scale) ? "-" : "|"; @@ -8701,7 +8701,7 @@ static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_s { //SERIAL_ECHOLNPGM("Other tests"); - TestScreen _step_block = TestScreen::AxisX; + TestScreen _step_block = TestScreen::AxisX; lcd_selftest_screen_step(2, 2, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "X", _indicator); _step_block = TestScreen::AxisY; @@ -8713,8 +8713,8 @@ static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_s _step_block = TestScreen::Bed; lcd_selftest_screen_step(3, 0, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Bed", _indicator); - _step_block = TestScreen::Hotend; - lcd_selftest_screen_step(3, 9, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Hotend", _indicator); + _step_block = TestScreen::Hotend; + lcd_selftest_screen_step(3, 9, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Hotend", _indicator); } if (_delay > 0) delay_keep_alive(_delay); From 751f810dd787c10964ea4ec3c9832b565f89d07f Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 1 Jun 2020 18:58:15 +0300 Subject: [PATCH 297/361] ALTFAN implementation (#2692) * ALTFAN implementation * Use CRITICAL_SECTION macros * Use uint16_t instead of unsigned int * Add forgotten CRITICAL_SECTION * Documentation --- Firmware/Marlin_main.cpp | 7 + Firmware/system_timer.h | 5 +- Firmware/temperature.cpp | 160 +++++++++--------- Firmware/temperature.h | 8 +- Firmware/tone04.c | 126 ++++++++++++++ Firmware/tone04.h | 25 +++ Firmware/ultralcd.cpp | 32 +--- .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 2 + 8 files changed, 256 insertions(+), 109 deletions(-) create mode 100644 Firmware/tone04.c create mode 100644 Firmware/tone04.h diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 36764b21f..799e5e9d5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1252,6 +1252,13 @@ void setup() w25x20cl_err_msg(); printf_P(_n("W25X20CL not responding.\n")); } +#ifdef EXTRUDER_ALTFAN_DETECT + SERIAL_ECHORPGM(_n("Extruder fan type: ")); + if (extruder_altfan_detect()) + SERIAL_ECHOLNRPGM(PSTR("ALTFAN")); + else + SERIAL_ECHOLNRPGM(PSTR("NOCTUA")); +#endif //EXTRUDER_ALTFAN_DETECT plan_init(); // Initialize planner; diff --git a/Firmware/system_timer.h b/Firmware/system_timer.h index 626e82348..9906460ae 100644 --- a/Firmware/system_timer.h +++ b/Firmware/system_timer.h @@ -8,11 +8,12 @@ #ifdef SYSTEM_TIMER_2 #include "timer02.h" +#include "tone04.h" #define _millis millis2 #define _micros micros2 #define _delay delay2 -#define _tone tone -#define _noTone noTone +#define _tone tone4 +#define _noTone noTone4 #define timer02_set_pwm0(pwm0) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index f6f8f3206..c019514c5 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -143,14 +143,18 @@ static volatile bool temp_meas_ready = false; #ifdef FAN_SOFT_PWM static unsigned char soft_pwm_fan; #endif -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - unsigned long extruder_autofan_last_check = _millis(); - uint8_t fanSpeedBckp = 255; - bool fan_measuring = false; -#endif +uint8_t fanSpeedBckp = 255; + +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) + unsigned long extruder_autofan_last_check = _millis(); + + bool fan_measuring = false; + uint8_t fanState = 0; +#ifdef EXTRUDER_ALTFAN_DETECT + bool extruderFanIsAltfan = false; //set to Noctua +#endif //EXTRUDER_ALTFAN_DETECT +#endif #if EXTRUDERS > 3 @@ -210,6 +214,35 @@ static void temp_runaway_check(int _heater_id, float _target_temperature, float static void temp_runaway_stop(bool isPreheat, bool isBed); #endif +#ifdef EXTRUDER_ALTFAN_DETECT +ISR(INT6_vect) { + fan_edge_counter[0]++; +} + +bool extruder_altfan_detect() +{ + setExtruderAutoFanState(3); + + SET_INPUT(TACH_0); + CRITICAL_SECTION_START; + EICRB &= ~(1 << ISC61); + EICRB |= (1 << ISC60); + EIMSK |= (1 << INT6); + fan_edge_counter[0] = 0; + CRITICAL_SECTION_END; + extruder_autofan_last_check = _millis(); + + _delay(1000); + + EIMSK &= ~(1 << INT6); + + countFanSpeed(); + extruderFanIsAltfan = fan_speed[0] > 100; + setExtruderAutoFanState(1); + return extruderFanIsAltfan; +} +#endif //EXTRUDER_ALTFAN_DETECT + // return "false", if all extruder-heaters are 'off' (ie. "true", if any heater is 'on') bool checkAllHotends(void) { @@ -239,9 +272,7 @@ bool checkAllHotends(void) const uint8_t safety_check_cycles_count = (extruder < 0) ? 45 : 10; //10 cycles / 20s delay for extruder and 45 cycles / 90s for heatbed float temp_ambient; -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) unsigned long extruder_autofan_last_check = _millis(); #endif @@ -289,9 +320,7 @@ bool checkAllHotends(void) max=max(max,input); min=min(min,input); - #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) if(_millis() - extruder_autofan_last_check > 2500) { checkExtruderAutoFans(); extruder_autofan_last_check = _millis(); @@ -447,29 +476,31 @@ int getHeaterPower(int heater) { return soft_pwm[heater]; } -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) #if defined(FAN_PIN) && FAN_PIN > -1 #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN" #endif - #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN - #error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN" - #endif - #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN - #error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN" - #endif - #endif + #endif -void setExtruderAutoFanState(int pin, bool state) +void setExtruderAutoFanState(uint8_t state) { - unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0; - // this idiom allows both digital and PWM fan outputs (see M42 handling). - pinMode(pin, OUTPUT); - digitalWrite(pin, newFanSpeed); - //analogWrite(pin, newFanSpeed); + //If bit 1 is set (0x02), then the extruder fan speed won't be adjusted according to temperature. Useful for forcing + //the fan to either On or Off during certain tests/errors. + + fanState = state; + uint8_t newFanSpeed = 0; + if (fanState & 0x01) + { +#ifdef EXTRUDER_ALTFAN_DETECT + if (extruderFanIsAltfan) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; + else newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; +#else //EXTRUDER_ALTFAN_DETECT + newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; +#endif //EXTRUDER_ALTFAN_DETECT + } + timer4_set_fan0(newFanSpeed); } #if (defined(FANCHECK) && (((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1))))) @@ -503,7 +534,7 @@ void checkFanSpeed() fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0); static unsigned char fan_speed_errors[2] = { 0,0 }; #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1)) - if ((fan_speed[0] == 0) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;} + if ((fan_speed[0] < 20) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;} else{ fan_speed_errors[0] = 0; host_keepalive(); @@ -577,47 +608,14 @@ void fanSpeedError(unsigned char _fan) { void checkExtruderAutoFans() { - uint8_t fanState = 0; - - // which fan pins need to be turned on? - #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 - if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) - fanState |= 1; - #endif - #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 - if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) - { - if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else - fanState |= 2; - } - #endif - #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 - if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) - { - if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) - fanState |= 2; - else - fanState |= 4; - } - #endif - - // update extruder auto fan states - #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 - setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0); - #endif - #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 - if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0); - #endif - #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 - if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN - && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0); - #endif +#if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 + if (!(fanState & 0x02)) + { + fanState &= ~1; + fanState |= current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE; + } + setExtruderAutoFanState(fanState); +#endif } #endif // any extruder auto fan pins set @@ -737,9 +735,7 @@ void manage_heater() #define FAN_CHECK_DURATION 100 //100ms #ifndef DEBUG_DISABLE_FANCHECK - #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) #ifdef FAN_SOFT_PWM #ifdef FANCHECK @@ -1098,7 +1094,9 @@ void tp_init() timer0_init(); OCR2B = 128; - TIMSK2 |= (1< +#include +#include "pins.h" + +#ifndef CRITICAL_SECTION_START + #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); + #define CRITICAL_SECTION_END SREG = _sreg; +#endif //CRITICAL_SECTION_START + + +#include "fastio.h" + +void timer4_init(void) +{ + CRITICAL_SECTION_START; + + SET_OUTPUT(BEEPER); + WRITE(BEEPER, LOW); + + SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); + + // Set timer mode 9 (PWM,Phase and Frequency Correct) + // Prescaler is CLK/1024 + // Output compare is disabled on all timer pins + // Input capture is disabled + // All interrupts are disabled + TCCR4A = (1 << WGM40); + TCCR4B = (1 << WGM43) | (1 << CS42) | (1 << CS40); + OCR4A = 255; + OCR4B = 255; + OCR4C = 255; + TIMSK4 = 0; + + CRITICAL_SECTION_END; +} + +#ifdef EXTRUDER_0_AUTO_FAN_PIN +void timer4_set_fan0(uint8_t duty) +{ + if (duty == 0 || duty == 255) + { + // We use digital logic if the duty cycle is 0% or 100% + TCCR4A &= ~(1 << COM4C1); + OCR4C = 0; + WRITE(EXTRUDER_0_AUTO_FAN_PIN, duty); + } + else + { + // Use the timer for fan speed. Enable the timer compare output and set the duty cycle. + // This function also handles the impossible scenario of a fan speed change during a Tone. + // Better be safe than sorry. + CRITICAL_SECTION_START; + // Enable the PWM output on the fan pin. + TCCR4A |= (1 << COM4C1); + OCR4C = (((uint32_t)duty) * ((uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255))) / ((uint32_t)255); + CRITICAL_SECTION_END; + } +} +#endif //EXTRUDER_0_AUTO_FAN_PIN + +// Because of the timer mode change, we need two interrupts. We could also try to assume that the frequency is x2 +// and use a TOGGLE(), but this seems to work well enough so I left it as it is now. +ISR(TIMER4_COMPA_vect) +{ + WRITE(BEEPER, 1); +} + +ISR(TIMER4_OVF_vect) +{ + WRITE(BEEPER, 0); +} + +void tone4(__attribute__((unused)) uint8_t _pin, uint16_t frequency) +{ + //this ocr and prescalarbits calculation is taken from the Arduino core and simplified for one type of timer only + uint8_t prescalarbits = 0b001; + uint32_t ocr = F_CPU / frequency / 2 - 1; + + if (ocr > 0xffff) + { + ocr = F_CPU / frequency / 2 / 64 - 1; + prescalarbits = 0b011; + } + + CRITICAL_SECTION_START; + // Set calcualted prescaler + TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; +#ifdef EXTRUDER_0_AUTO_FAN_PIN + // Scale the fan PWM duty cycle so that it remains constant, but at the tone frequency + OCR4C = (((uint32_t)OCR4C) * ocr) / (uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255); +#endif //EXTRUDER_0_AUTO_FAN_PIN + // Set calcualted ocr + OCR4A = ocr; + // Enable Output compare A interrupt and timer overflow interrupt + TIMSK4 |= (1 << OCIE4A) | (1 << TOIE4); + CRITICAL_SECTION_END; +} + +void noTone4(__attribute__((unused)) uint8_t _pin) +{ + CRITICAL_SECTION_START; + // Revert prescaler to CLK/1024 + TCCR4B = (TCCR4B & 0b11111000) | (1 << CS42) | (1 << CS40); +#ifdef EXTRUDER_0_AUTO_FAN_PIN + // Scale the fan OCR back to the original value. + OCR4C = (((uint32_t)OCR4C) * (uint32_t)255) / (uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255); +#endif //EXTRUDER_0_AUTO_FAN_PIN + OCR4A = 255; + // Disable Output compare A interrupt and timer overflow interrupt + TIMSK4 &= ~((1 << OCIE4A) | (1 << TOIE4)); + CRITICAL_SECTION_END; + // Turn beeper off if it was on when noTone was called + WRITE(BEEPER, 0); +} + + +#endif //SYSTEM_TIMER_2 diff --git a/Firmware/tone04.h b/Firmware/tone04.h new file mode 100644 index 000000000..f11eeb6c6 --- /dev/null +++ b/Firmware/tone04.h @@ -0,0 +1,25 @@ +//tone04.h +// use atmega timer4 as main tone timer instead of timer2 +// timer2 is used for System timer. +#ifndef TIMER04_H +#define TIMER04_H + +#include + +#if defined(__cplusplus) +extern "C" { +#endif //defined(__cplusplus) + +extern void timer4_init(void); + +extern void timer4_set_fan0(uint8_t duty); + +extern void tone4(uint8_t _pin, uint16_t frequency); + +extern void noTone4(uint8_t _pin); + +#if defined(__cplusplus) +} +#endif //defined(__cplusplus) + +#endif //TIMER02_H diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a9fa50d1d..e32b6ad1c 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6673,7 +6673,7 @@ static bool fan_error_selftest() fanSpeedSoftPwm = 255; #endif //FAN_SOFT_PWM manage_heater(); //enables print fan - setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, 1); //force enables the extruder fan untill the first manage_heater() call. + setExtruderAutoFanState(3); //force enables the extruder fan #ifdef FAN_SOFT_PWM extruder_autofan_last_check = _millis(); fan_measuring = true; @@ -6681,6 +6681,7 @@ static bool fan_error_selftest() _delay(1000); //delay_keep_alive would turn off extruder fan, because temerature is too low (maybe) manage_heater(); fanSpeed = 0; + setExtruderAutoFanState(1); //releases lock on the extruder fan #ifdef FAN_SOFT_PWM fanSpeedSoftPwm = 0; #endif //FAN_SOFT_PWM @@ -8468,8 +8469,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite, lcd_set_cursor(0, 1); if(check_opposite == true) lcd_puts_P(_T(MSG_SELFTEST_COOLING_FAN)); else lcd_puts_P(_T(MSG_SELFTEST_EXTRUDER_FAN)); - SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); - WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); + setExtruderAutoFanState(3); break; case 1: // object cooling fan @@ -8498,23 +8498,6 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite, lcd_button_pressed = false; do { - switch (_fan) - { - case 0: - // extruder cooling fan - SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); - WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); - break; - case 1: - // object cooling fan - SET_OUTPUT(FAN_PIN); -#ifdef FAN_SOFT_PWM - fanSpeedSoftPwm = 255; -#else //FAN_SOFT_PWM - analogWrite(FAN_PIN, 255); -#endif //FAN_SOFT_PWM - break; - } if (abs((enc_dif - lcd_encoder_diff)) > 2) { if (enc_dif > lcd_encoder_diff) { _result = !check_opposite; @@ -8541,8 +8524,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite, } while (!lcd_clicked()); KEEPALIVE_STATE(IN_HANDLER); - SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); - WRITE(EXTRUDER_0_AUTO_FAN_PIN, 0); + setExtruderAutoFanState(0); SET_OUTPUT(FAN_PIN); #ifdef FAN_SOFT_PWM fanSpeedSoftPwm = 0; @@ -8562,13 +8544,13 @@ static FanCheck lcd_selftest_fan_auto(int _fan) case 0: fanSpeed = 0; manage_heater(); //turn off fan - setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, 1); //extruder fan + setExtruderAutoFanState(3); //extruder fan #ifdef FAN_SOFT_PWM extruder_autofan_last_check = _millis(); fan_measuring = true; #endif //FAN_SOFT_PWM - _delay(2000); //delay_keep_alive would turn off extruder fan, because temerature is too low - + _delay(2000); + setExtruderAutoFanState(0); //extruder fan manage_heater(); //count average fan speed from 2s delay and turn off fans printf_P(PSTR("Test 1:\n")); diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index ad714c235..1179ae6be 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -331,6 +331,8 @@ #define EXTRUDER_2_AUTO_FAN_PIN -1 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +#define EXTRUDER_ALTFAN_DETECT +#define EXTRUDER_ALTFAN_SPEED_SILENT 128 From d1865fc59ac0abde12d961ac4331ca8b0d783a27 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 3 Jun 2020 16:14:56 +0200 Subject: [PATCH 298/361] MK3s IR sensor improvement (#2698) * Update EEPROM_FSENSOR_PCB documentation * Update IR sensor check * Rename IR messags and add UNKNOWN state * Update code to use new messages * To be continued * Move fsensor related things from ultralcd.h to fsensor.h * Use defined Thresholds * IR sensor auto detection "0.3 or older" and "0.4 or newer" when trigger status changes. Typo fixes Doxygen documentation * Cleanup spaces * Revert PF-build.sh changes * re-add space in messages * revert doxygen snytax * Remove double _Undef * Fix indentation and doxygen syntax * Fix indentation * Better message handling * Fix indentation * Fix indentation * More indentation fixwa * Extract common code into manage_inactivity_IR_ANALOG_Check Saves ~60B of code * Revert indentation changes on fsensor.cpp * Keep the selftest IR sensor part disabled Everything shall happen at runtime * Fix indentation fsensor_update * Fix another misleading indentation in fsensor_update Co-authored-by: Alex Voinea Co-authored-by: D.R.racer --- Firmware/Marlin_main.cpp | 115 ++++++++++++---------- Firmware/eeprom.h | 5 +- Firmware/fsensor.cpp | 206 ++++++++++++++++++++++----------------- Firmware/fsensor.h | 14 +++ Firmware/messages.c | 5 +- Firmware/messages.h | 5 +- Firmware/ultralcd.cpp | 69 +++++++------ Firmware/ultralcd.h | 19 +--- 8 files changed, 241 insertions(+), 197 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 799e5e9d5..c8558b8ad 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9451,7 +9451,32 @@ static void handleSafetyTimer() } #endif //SAFETYTIMER -#define FS_CHECK_COUNT 250 +#ifdef IR_SENSOR_ANALOG +#define FS_CHECK_COUNT 16 +/// Switching mechanism of the fsensor type. +/// Called from 2 spots which have a very similar behavior +/// 1: ClFsensorPCB::_Old -> ClFsensorPCB::_Rev04 and print _i("FS v0.4 or newer") +/// 2: ClFsensorPCB::_Rev04 -> oFsensorPCB=ClFsensorPCB::_Old and print _i("FS v0.3 or older") +void manage_inactivity_IR_ANALOG_Check(uint16_t &nFSCheckCount, ClFsensorPCB isVersion, ClFsensorPCB switchTo, const char *statusLineTxt_P) { + bool bTemp = (!CHECK_ALL_HEATERS); + bTemp = bTemp && (menu_menu == lcd_status_screen); + bTemp = bTemp && ((oFsensorPCB == isVersion) || (oFsensorPCB == ClFsensorPCB::_Undef)); + bTemp = bTemp && fsensor_enabled; + if (bTemp) { + nFSCheckCount++; + if (nFSCheckCount > FS_CHECK_COUNT) { + nFSCheckCount = 0; // not necessary + oFsensorPCB = switchTo; + eeprom_update_byte((uint8_t *)EEPROM_FSENSOR_PCB, (uint8_t)oFsensorPCB); + printf_IRSensorAnalogBoardChange(); + lcd_setstatuspgm(statusLineTxt_P); + } + } else { + nFSCheckCount = 0; + } +} +#endif + void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h { #ifdef FILAMENT_SENSOR @@ -9464,15 +9489,15 @@ static uint16_t nFSCheckCount=0; { //-// if (mcode_in_progress != 600) //M600 not in progress #ifdef PAT9125 - bInhibitFlag=(menu_menu==lcd_menu_extruder_info); // Support::ExtruderInfo menu active + bInhibitFlag=(menu_menu==lcd_menu_extruder_info); // Support::ExtruderInfo menu active #endif // PAT9125 #ifdef IR_SENSOR - bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active + bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active #ifdef IR_SENSOR_ANALOG - bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active + bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active #endif // IR_SENSOR_ANALOG #endif // IR_SENSOR - if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active + if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active { if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) { @@ -9483,7 +9508,7 @@ static uint16_t nFSCheckCount=0; if( current_voltage_raw_IR > maxVolt )maxVolt = current_voltage_raw_IR; if( current_voltage_raw_IR < minVolt )minVolt = current_voltage_raw_IR; -#if 0 +#if 0 // Start: IR Sensor debug info { // debug print static uint16_t lastVolt = ~0U; if( current_voltage_raw_IR != lastVolt ){ @@ -9491,38 +9516,29 @@ static uint16_t nFSCheckCount=0; lastVolt = current_voltage_raw_IR; } } -#endif - // the trouble is, I can hold the filament in the hole in such a way, that it creates the exact voltage - // to be detected as the new fsensor - // We can either fake it by extending the detection window to a looooong time - // or do some other countermeasures +#endif // End: IR Sensor debug info + //! The trouble is, I can hold the filament in the hole in such a way, that it creates the exact voltage + //! to be detected as the new fsensor + //! We can either fake it by extending the detection window to a looooong time + //! or do some other countermeasures - // what we want to detect: - // if minvolt gets below ~0.6V, it means there is an old fsensor - // if maxvolt gets above 4.6V, it means we either have an old fsensor or broken cables/fsensor - // So I'm waiting for a situation, when minVolt gets to range <0, 0.7> and maxVolt gets into range <4.4, 5> - // If and only if minVolt is in range <0.6, 0.7> and maxVolt is in range <4.4, 4.5>, I'm considering a situation with the new fsensor - // otherwise, I don't care - - if( minVolt >= Voltage2Raw(0.3F) && minVolt <= Voltage2Raw(0.5F) - && maxVolt >= Voltage2Raw(4.2F) && maxVolt <= Voltage2Raw(4.6F) + //! what we want to detect: + //! if minvolt gets below ~0.3V, it means there is an old fsensor + //! if maxvolt gets above 4.6V, it means we either have an old fsensor or broken cables/fsensor + //! So I'm waiting for a situation, when minVolt gets to range <0, 1.5> and maxVolt gets into range <3.0, 5> + //! If and only if minVolt is in range <0.3, 1.5> and maxVolt is in range <3.0, 4.6>, I'm considering a situation with the new fsensor + if( minVolt >= IRsensor_Ldiode_TRESHOLD && minVolt <= IRsensor_Lmax_TRESHOLD + && maxVolt >= IRsensor_Hmin_TRESHOLD && maxVolt <= IRsensor_Hopen_TRESHOLD ){ - bool bTemp = (!CHECK_ALL_HEATERS); - bTemp = bTemp && (menu_menu==lcd_status_screen); - bTemp = bTemp && ((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef)); - bTemp = bTemp && fsensor_enabled; - if(bTemp){ - nFSCheckCount++; - if(nFSCheckCount>FS_CHECK_COUNT){ - nFSCheckCount=0; // not necessary - oFsensorPCB=ClFsensorPCB::_Rev04; - eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); - printf_IRSensorAnalogBoardChange(true); - lcd_setstatuspgm(_i("FS v0.4 or newer"));////c=18 - } - } else { - nFSCheckCount=0; - } + manage_inactivity_IR_ANALOG_Check(nFSCheckCount, ClFsensorPCB::_Old, ClFsensorPCB::_Rev04, _i("FS v0.4 or newer") ); ////c=18 + } + //! If and only if minVolt is in range <0.0, 0.3> and maxVolt is in range <4.6, 5.0V>, I'm considering a situation with the old fsensor + //! Note, we are not relying on one voltage here - getting just +5V can mean an old fsensor or a broken new sensor - that's why + //! we need to have both voltages detected correctly to allow switching back to the old fsensor. + else if( minVolt < IRsensor_Ldiode_TRESHOLD + && maxVolt > IRsensor_Hopen_TRESHOLD && maxVolt <= IRsensor_VMax_TRESHOLD + ){ + manage_inactivity_IR_ANALOG_Check(nFSCheckCount, ClFsensorPCB::_Rev04, oFsensorPCB=ClFsensorPCB::_Old, _i("FS v0.3 or older")); ////c=18 } #endif // IR_SENSOR_ANALOG if (fsensor_check_autoload()) @@ -9533,7 +9549,7 @@ static uint16_t nFSCheckCount=0; //-// if (degHotend0() > EXTRUDE_MINTEMP) if(0) { - Sound_MakeCustom(50,1000,false); + Sound_MakeCustom(50,1000,false); loading_flag = true; enquecommand_front_P((PSTR("M701"))); } @@ -9544,20 +9560,17 @@ if(0) show_preheat_nozzle_warning(); lcd_update_enable(true); */ - eFilamentAction=FilamentAction::AutoLoad; - bFilamentFirstRun=false; - if(target_temperature[0]>=EXTRUDE_MINTEMP) - { - bFilamentPreheatState=true; -// mFilamentItem(target_temperature[0],target_temperature_bed); - menu_submenu(mFilamentItemForce); - } - else - { - menu_submenu(lcd_generic_preheat_menu); - lcd_timeoutToStatus.start(); - } - } + eFilamentAction=FilamentAction::AutoLoad; + bFilamentFirstRun=false; + if(target_temperature[0]>=EXTRUDE_MINTEMP){ + bFilamentPreheatState=true; +// mFilamentItem(target_temperature[0],target_temperature_bed); + menu_submenu(mFilamentItemForce); + } else { + menu_submenu(lcd_generic_preheat_menu); + lcd_timeoutToStatus.start(); + } + } } } else diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 61e078fc0..89d7e7f99 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -341,8 +341,9 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0D9F 3487 | uint8 | ^ | 00h 0 | ffh 255 | 8th sheet - bed temp | ^ | D3 Ax0d9f C1 | 0x0DA0 3488 | uint8 | ^ | 00h 0 | ffh 255 | 8th sheet - PINDA temp | ^ | D3 Ax0da0 C1 | 0x0DA1 3489 | uint8 | ??? | 00h 0 | ffh 255 | ??? | ??? | D3 Ax0da1 C1 -| 0x0D48 3400 | uint8 | EEPROM_FSENSOR_PCB | ??? | ffh 255 | Filament Sensor type old vs new | ??? | D3 Ax0d48 C1 -| ^ | ^ | ^ | ??? | ^ | Filament Sensor type ??? | ^ | ^ +| 0x0D48 3400 | uint8 | EEPROM_FSENSOR_PCB | ffh 255 | ffh 255 | Filament Sensor type IR unknown | LCD Support | D3 Ax0d48 C1 +| ^ | ^ | ^ | 00h 0 | ^ | Filament Sensor type IR 0.3 or older | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | Filament Sensor type IR 0.4 or newer | ^ | ^ | 0x0D47 3399 | uint8 | EEPROM_FSENSOR_ACTION_NA | 00h 0 | ffh 255 | Filament Sensor action: __Continue__ | LCD menu | D3 Ax0d47 C1 | ^ | ^ | ^ | 01h 1 | ^ | Filament Sensor action: __Pause__ | ^ | ^ | 0x0D37 3383 | float | EEPROM_UVLO_SAVED_TARGET | ??? | ff ff ff ffh | Power panic saved target all-axis | ??? | D3 Ax0d37 C16 diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index f5fc768a4..2753ede00 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -170,6 +170,21 @@ void fsensor_checkpoint_print(void) restore_print_from_ram_and_continue(0); } +#ifdef IR_SENSOR_ANALOG +const char* FsensorIRVersionText() +{ + switch(oFsensorPCB) + { + case ClFsensorPCB::_Old: + return _T(MSG_IR_03_OR_OLDER); + case ClFsensorPCB::_Rev04: + return _T(MSG_IR_04_OR_NEWER); + default: + return _T(MSG_IR_UNKNOWN); + } +} +#endif //IR_SENSOR_ANALOG + void fsensor_init(void) { #ifdef PAT9125 @@ -207,9 +222,9 @@ void fsensor_init(void) } printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED"))); #ifdef IR_SENSOR_ANALOG - printf_P(PSTR(" (sensor board revision:%S)\n"), (oFsensorPCB==ClFsensorPCB::_Rev04) ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER)); + printf_P(PSTR(" (sensor board revision:%S)\n"), FsensorIRVersionText()); #else //IR_SENSOR_ANALOG - printf_P(PSTR("\n")); + MYSERIAL.println(); #endif //IR_SENSOR_ANALOG if (check_for_ir_sensor()){ ir_sensor_detected = true; @@ -611,15 +626,15 @@ void fsensor_enque_M600(){ void fsensor_update(void) { #ifdef PAT9125 - if (fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) - { - fsensor_stop_and_save_print(); + if (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; - bool oq_meassure_enabled_tmp = fsensor_oq_meassure_enabled; - fsensor_oq_meassure_enabled = true; + 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; // move the nozzle away while checking the filament current_position[Z_AXIS] += 0.8; @@ -629,24 +644,23 @@ void fsensor_update(void) // check the filament in isolation fsensor_reset_err_cnt(); - fsensor_oq_meassure_start(0); + fsensor_oq_meassure_start(0); float e_tmp = current_position[E_AXIS]; current_position[E_AXIS] -= 3; plan_buffer_line_curposXYZE(250/60); current_position[E_AXIS] = e_tmp; plan_buffer_line_curposXYZE(200/60); st_synchronize(); - fsensor_oq_meassure_stop(); + fsensor_oq_meassure_stop(); - bool err = false; - err |= (fsensor_err_cnt > 0); // final error count is non-zero - err |= (fsensor_oq_er_sum > FSENSOR_OQ_MAX_ES); // total error count is above limit - err |= (fsensor_oq_yd_sum < FSENSOR_OQ_MIN_YD); // total measured distance is below limit + bool err = false; + err |= (fsensor_err_cnt > 0); // final error count is non-zero + err |= (fsensor_oq_er_sum > FSENSOR_OQ_MAX_ES); // total error count is above limit + err |= (fsensor_oq_yd_sum < FSENSOR_OQ_MIN_YD); // total measured distance is below limit fsensor_restore_print_and_continue(); fsensor_autoload_enabled = autoload_enabled_tmp; fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; - unsigned long now = _millis(); if (!err && (now - fsensor_softfail_last) > FSENSOR_SOFTERR_DELTA) fsensor_softfail_ccnt = 0; @@ -663,70 +677,70 @@ void fsensor_update(void) fsensor_softfail_last = 0; fsensor_enque_M600(); } - } + } #else //PAT9125 - if (CHECK_FSENSOR && ir_sensor_detected) + if (CHECK_FSENSOR && ir_sensor_detected) { - if(digitalRead(IR_SENSOR_PIN)) - { // IR_SENSOR_PIN ~ H + if(digitalRead(IR_SENSOR_PIN)) + { // IR_SENSOR_PIN ~ H #ifdef IR_SENSOR_ANALOG - if(!bIRsensorStateFlag) + if(!bIRsensorStateFlag) + { + bIRsensorStateFlag=true; + nIRsensorLastTime=_millis(); + } + else + { + if((_millis()-nIRsensorLastTime)>IR_SENSOR_STEADY) { - 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<4.6V - // If it does, it means a disconnected cables or faulty board - if( (oFsensorPCB == ClFsensorPCB::_Rev04) && ( (nADC*OVERSAMPLENR) > 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) + 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<4.6V + // If it does, it means a disconnected cables or faulty board + if( (oFsensorPCB == ClFsensorPCB::_Rev04) && ( (nADC*OVERSAMPLENR) > 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 we are printing and FS action is set to "Pause", force pause the print - if(oFsensorActionNA==ClFsensorActionNA::_Pause) - lcd_pause_print(); - } - else - { + // if we are printing and FS action is set to "Pause", force pause the print + if(oFsensorActionNA==ClFsensorActionNA::_Pause) + lcd_pause_print(); + } + else + { #endif //IR_SENSOR_ANALOG - fsensor_checkpoint_print(); - fsensor_enque_M600(); + fsensor_checkpoint_print(); + fsensor_enque_M600(); #ifdef IR_SENSOR_ANALOG - } - } + } } - } - else - { // IR_SENSOR_PIN ~ L - bIRsensorStateFlag=false; + } + } + else + { // IR_SENSOR_PIN ~ L + bIRsensorStateFlag=false; #endif //IR_SENSOR_ANALOG - } - } + } + } #endif //PAT9125 } @@ -734,24 +748,36 @@ void fsensor_update(void) /// This is called only upon start of the printer or when switching the fsensor ON in the menu /// We cannot do temporal window checks here (aka the voltage has been in some range for a period of time) bool fsensor_IR_check(){ - if( IRsensor_Lmax_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_Hmin_TRESHOLD ){ - // If the voltage is in forbidden range, the fsensor is ok, but the lever is mounted improperly. - // Or the user is so creative so that he can hold a piece of fillament in the hole in such a genius way, - // that the IR fsensor reading is within 1.5 and 3V ... this would have been highly unusual - // and would have been considered more like a sabotage than normal printer operation - printf_P(PSTR("fsensor in forbidden range 1.5-3V - bad lever\n")); - return false; - } - - if( oFsensorPCB == ClFsensorPCB::_Rev04 ){ - // newer IR sensor cannot normally produce 4.6-5V, this is considered a failure/bad mount - if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){ - printf_P(PSTR("fsensor v0.4 in fault range 4.6-5V - unconnected\n")); - return false; - } - } - - // otherwise the IR fsensor is considered working correctly - return true; + if( IRsensor_Lmax_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_Hmin_TRESHOLD ){ + /// If the voltage is in forbidden range, the fsensor is ok, but the lever is mounted improperly. + /// Or the user is so creative so that he can hold a piece of fillament in the hole in such a genius way, + /// that the IR fsensor reading is within 1.5 and 3V ... this would have been highly unusual + /// and would have been considered more like a sabotage than normal printer operation + printf_P(PSTR("fsensor in forbidden range 1.5-3V - check sensor\n")); + return false; + } + if( oFsensorPCB == ClFsensorPCB::_Rev04 ){ + /// newer IR sensor cannot normally produce 4.6-5V, this is considered a failure/bad mount + if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){ + printf_P(PSTR("fsensor v0.4 in fault range 4.6-5V - unconnected\n")); + return false; + } + /// newer IR sensor cannot normally produce 0-0.3V, this is considered a failure +#if 0 //Disabled as it has to be decided if we gonna use this or not. + if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){ + printf_P(PSTR("fsensor v0.4 in fault range 0.0-0.3V - wrong IR sensor\n")); + return false; + } +#endif + } + /// If IR sensor is "uknown state" and filament is not loaded > 1.5V return false +#if 0 + if( (oFsensorPCB == ClFsensorPCB::_Undef) && ( current_voltage_raw_IR > IRsensor_Lmax_TRESHOLD ) ){ + printf_P(PSTR("Unknown IR sensor version and no filament loaded detected.\n")); + return false; + } +#endif + // otherwise the IR fsensor is considered working correctly + return true; } #endif //IR_SENSOR_ANALOG diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 4038d6b61..7eb09ab8b 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -83,6 +83,7 @@ extern uint8_t fsensor_log; //! @} #endif //PAT9125 +#define VOLT_DIV_REF 5 #ifdef IR_SENSOR_ANALOG #define IR_SENSOR_STEADY 10 // [ms] @@ -103,8 +104,21 @@ enum class ClFsensorActionNA:uint_least8_t extern ClFsensorPCB oFsensorPCB; extern ClFsensorActionNA oFsensorActionNA; +extern const char* FsensorIRVersionText(); extern bool fsensor_IR_check(); +constexpr uint16_t Voltage2Raw(float V){ + return ( V * 1023 * OVERSAMPLENR / VOLT_DIV_REF ) + 0.5F; +} +constexpr float Raw2Voltage(uint16_t raw){ + return VOLT_DIV_REF*(raw / (1023.F * OVERSAMPLENR) ); +} +constexpr uint16_t IRsensor_Ldiode_TRESHOLD = Voltage2Raw(0.3F); // ~0.3V, raw value=982 +constexpr uint16_t IRsensor_Lmax_TRESHOLD = Voltage2Raw(1.5F); // ~1.5V (0.3*Vcc), raw value=4910 +constexpr uint16_t IRsensor_Hmin_TRESHOLD = Voltage2Raw(3.0F); // ~3.0V (0.6*Vcc), raw value=9821 +constexpr uint16_t IRsensor_Hopen_TRESHOLD = Voltage2Raw(4.6F); // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k), raw value=15059 +constexpr uint16_t IRsensor_VMax_TRESHOLD = Voltage2Raw(5.F); // ~5V, raw value=16368 + #endif //IR_SENSOR_ANALOG #endif //FSENSOR_H diff --git a/Firmware/messages.c b/Firmware/messages.c index 9c31c1266..be613cab1 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -140,8 +140,9 @@ const char MSG_DIM[] PROGMEM_I1 = ISTR("Dim"); ////c=6 const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); ////c=6 #ifdef IR_SENSOR_ANALOG // Beware - the space at the beginning is necessary since it is reused in LCD menu items which are to be with a space -const char MSG_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer");////c=18 -const char MSG_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older");////c=18 +const char MSG_IR_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer");////c=18 +const char MSG_IR_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older");////c=18 +const char MSG_IR_UNKNOWN[] PROGMEM_I1 = ISTR("unknown state");////c=18 #endif //not internationalized messages diff --git a/Firmware/messages.h b/Firmware/messages.h index 599f1d1fa..4653c869e 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -139,8 +139,9 @@ extern const char MSG_BRIGHT[]; extern const char MSG_DIM[]; extern const char MSG_AUTO[]; #ifdef IR_SENSOR_ANALOG -extern const char MSG_04_OR_NEWER[]; -extern const char MSG_03_OR_OLDER[]; +extern const char MSG_IR_04_OR_NEWER[]; +extern const char MSG_IR_03_OR_OLDER[]; +extern const char MSG_IR_UNKNOWN[]; #endif //not internationalized messages diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e32b6ad1c..ce312389a 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2166,18 +2166,7 @@ static void lcd_support_menu() #ifdef IR_SENSOR_ANALOG MENU_ITEM_BACK_P(STR_SEPARATOR); MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:")); - switch(oFsensorPCB) - { - case ClFsensorPCB::_Old: - MENU_ITEM_BACK_P(_T(MSG_03_OR_OLDER)); - break; - case ClFsensorPCB::_Rev04: - MENU_ITEM_BACK_P(_T(MSG_04_OR_NEWER)); - break; - case ClFsensorPCB::_Undef: - default: - MENU_ITEM_BACK_P(PSTR(" unknown state")); - } + MENU_ITEM_BACK_P(FsensorIRVersionText()); #endif // IR_SENSOR_ANALOG MENU_ITEM_BACK_P(STR_SEPARATOR); @@ -5725,7 +5714,9 @@ void lcd_hw_setup_menu(void) // can not be "static" #ifdef IR_SENSOR_ANALOG FSENSOR_ACTION_NA; - MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor); + //! Fsensor Detection isn't ready for mmu yet it is temporarily disabled. + //! @todo Don't forget to remove this as soon Fsensor Detection works with mmu + if(!mmu_enabled) MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor); #endif //IR_SENSOR_ANALOG MENU_END(); } @@ -7508,8 +7499,8 @@ void lcd_belttest() #ifdef IR_SENSOR_ANALOG // called also from marlin_main.cpp -void printf_IRSensorAnalogBoardChange(bool bPCBrev04){ - printf_P(PSTR("Filament sensor board change detected: revision%S\n"), bPCBrev04 ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER)); +void printf_IRSensorAnalogBoardChange(){ + printf_P(PSTR("Filament sensor board change detected: revision%S\n"), FsensorIRVersionText()); } static bool lcd_selftest_IRsensor(bool bStandalone) @@ -7534,8 +7525,8 @@ static bool lcd_selftest_IRsensor(bool bStandalone) return(false); } if((bPCBrev04 ? 1 : 0) != (uint8_t)oFsensorPCB){ // safer then "(uint8_t)bPCBrev04" - printf_IRSensorAnalogBoardChange(bPCBrev04); oFsensorPCB=bPCBrev04 ? ClFsensorPCB::_Rev04 : ClFsensorPCB::_Old; + printf_IRSensorAnalogBoardChange(); eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); } return(true); @@ -7543,22 +7534,26 @@ static bool lcd_selftest_IRsensor(bool bStandalone) static void lcd_detect_IRsensor(){ bool bAction; - + bool loaded; bMenuFSDetect = true; // inhibits some code inside "manage_inactivity()" - bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament loaded?"), false, false); - if(bAction){ - lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action."));////c=20 r=4 + /// Check if filament is loaded. If it is loaded stop detection. + /// @todo Add autodetection with MMU2s + loaded = ! READ(IR_SENSOR_PIN); + if(loaded ){ + lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action.")); return; + } else { + lcd_show_fullscreen_message_and_wait_P(_i("Please check the IR sensor connections and filament is unloaded.")); + bAction = lcd_selftest_IRsensor(true); } - bAction = lcd_selftest_IRsensor(true); - if(bAction){ + if(bAction){ lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now."));////c=20 r=3 - // the fsensor board has been successfully identified, any previous "not responding" may be cleared now - fsensor_not_responding = false; + // the fsensor board has been successfully identified, any previous "not responding" may be cleared now + fsensor_not_responding = false; } else { lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again."));////c=20 r=5 - // here it is unclear what to to with the fsensor_not_responding flag - } + // here it is unclear what to to with the fsensor_not_responding flag + } bMenuFSDetect=false; // de-inhibits some code inside "manage_inactivity()" } #endif //IR_SENSOR_ANALOG @@ -7574,9 +7569,17 @@ bool lcd_selftest() bool _result = true; bool _swapped_fan = false; #ifdef IR_SENSOR_ANALOG - //! Check if IR sensor is in unknown state, set it temporarily to 0.3 or older - //! @todo This has to be improved - if( oFsensorPCB == ClFsensorPCB::_Undef) eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,0); + //! Check if IR sensor is in unknown state, if so run Fsensor Detection + //! As the Fsensor Detection isn't yet ready for the mmu2s we set temporarily the IR sensor 0.3 or older for mmu2s + //! @todo Don't forget to remove this as soon Fsensor Detection works with mmu + if( oFsensorPCB == ClFsensorPCB::_Undef) { + if (!mmu_enabled) { + lcd_detect_IRsensor(); + } + else { + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,0); + } + } #endif //IR_SENSOR_ANALOG lcd_wait_for_cool_down(); lcd_clear(); @@ -7784,10 +7787,12 @@ bool lcd_selftest() _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK } #endif //PAT9125 -//#ifdef IR_SENSOR_ANALOG -#if (0) +#if 0 + // Intentionally disabled - that's why we moved the detection to runtime by just checking the two voltages. + // The idea is not to force the user to remove and insert the filament on an assembled printer. +//def IR_SENSOR_ANALOG _progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor - _result = lcd_selftest_IRsensor(); + _result = lcd_selftest_IRsensor(); if (_result) { _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //filament sensor OK diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index d68ab14b2..844c7c7d3 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -142,7 +142,7 @@ extern uint8_t farm_status; #ifdef IR_SENSOR_ANALOG extern bool bMenuFSDetect; -void printf_IRSensorAnalogBoardChange(bool bPCBrev04); +void printf_IRSensorAnalogBoardChange(); #endif //IR_SENSOR_ANALOG extern int8_t SilentModeMenu; @@ -257,21 +257,4 @@ enum class WizState : uint8_t void lcd_wizard(WizState state); -#define VOLT_DIV_REF 5 -#ifdef IR_SENSOR_ANALOG -constexpr uint16_t Voltage2Raw(float V){ - return ( V * 1023 * OVERSAMPLENR / VOLT_DIV_REF ) + 0.5F; -} -constexpr float Raw2Voltage(uint16_t raw){ - return VOLT_DIV_REF*(raw / (1023.F * OVERSAMPLENR) ); -} -constexpr uint16_t IRsensor_Hmin_TRESHOLD = Voltage2Raw(3.0F); // ~3.0V (0.6*Vcc), raw value=9821 -constexpr uint16_t IRsensor_Lmax_TRESHOLD = Voltage2Raw(1.5F); // ~1.5V (0.3*Vcc), raw value=4910 -constexpr uint16_t IRsensor_Hopen_TRESHOLD = Voltage2Raw(4.6F); // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k), raw value=15059 -constexpr uint16_t IRsensor_Ldiode_TRESHOLD = Voltage2Raw(0.3F); // ~0.3V, raw value=982 -constexpr uint16_t IRsensor_VMax_TRESHOLD = Voltage2Raw(5.F); // ~5V, raw value=16368 - - -#endif //IR_SENSOR_ANALOG - #endif //ULTRALCD_H From fe72ba7a9d322f552c2bf37aa7b257f2a4025364 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Wed, 3 Jun 2020 17:45:55 +0200 Subject: [PATCH 299/361] Add PC-blend preheat preset --- Firmware/ultralcd.cpp | 7 +++++++ Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h | 4 ++++ Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 3 +++ Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 3 +++ 9 files changed, 32 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ce312389a..ef22bda30 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2496,6 +2496,12 @@ static void mFilamentItem_ASA() mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP); } +static void mFilamentItem_PC() +{ + bFilamentPreheatState = false; + mFilamentItem(PC_PREHEAT_HOTEND_TEMP, PC_PREHEAT_HPB_TEMP); +} + static void mFilamentItem_ABS() { bFilamentPreheatState = false; @@ -2555,6 +2561,7 @@ void lcd_generic_preheat_menu() 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("PC - " STRINGIFY(PCB_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PCB_PREHEAT_HPB_TEMP)),mFilamentItem_PC); 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); diff --git a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h index 45b88c7ba..887a90a6f 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h @@ -330,6 +330,10 @@ PREHEAT SETTINGS #define ASA_PREHEAT_HPB_TEMP 105 #define ASA_PREHEAT_FAN_SPEED 0 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_FAN_SPEED 0 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 0 diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index 7b3e24458..c9c4ed6cd 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -326,6 +326,9 @@ PREHEAT SETTINGS #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index 36a9b5214..f2ef69e99 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -384,6 +384,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index ff13a7c61..7eaba3d6c 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -385,6 +385,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index 71a23a1a6..ee245bd4b 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -384,6 +384,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index 8d22a6cc9..6bf30f192 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -385,6 +385,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 105 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index b80217ee3..8215c48f3 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -496,6 +496,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 110 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 1179ae6be..f7d408a45 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -500,6 +500,9 @@ #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 +#define PC_PREHEAT_HOTEND_TEMP 275 +#define PC_PREHEAT_HPB_TEMP 110 + #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 From 7e41524101580a8c3461b1df5cf3d6f9423f6830 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Wed, 3 Jun 2020 18:05:37 +0200 Subject: [PATCH 300/361] PC-blend preheat temperatures #define typo A typo slipped through in PR#2711, not even the compiler caught it (obviously, it is #define to be stringized): PCB_PREHEAT... -> PC_PREHEAT --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ef22bda30..5b8d6099a 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2561,7 +2561,7 @@ void lcd_generic_preheat_menu() 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("PC - " STRINGIFY(PCB_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PCB_PREHEAT_HPB_TEMP)),mFilamentItem_PC); + MENU_ITEM_SUBMENU_P(PSTR("PC - " STRINGIFY(PC_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PC_PREHEAT_HPB_TEMP)),mFilamentItem_PC); 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); From 1bf563545954069ea60469558ea23cfd90353469 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 5 Jun 2020 17:17:33 +0300 Subject: [PATCH 301/361] Trigger fan error during selftest for altfan --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5b8d6099a..ab2fe4d05 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8569,7 +8569,7 @@ static FanCheck lcd_selftest_fan_auto(int _fan) printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]); printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]); - if (!fan_speed[0]) { + if (fan_speed[0] < 20) { return FanCheck::ExtruderFan; } #ifdef FAN_SOFT_PWM From 183b102b6cfb6fb1e6a3ad7ef01f54267c04b4e1 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 5 Jun 2020 16:37:21 +0200 Subject: [PATCH 302/361] Document the RPM condition --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ab2fe4d05..d702e222d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8569,7 +8569,7 @@ static FanCheck lcd_selftest_fan_auto(int _fan) printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]); printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]); - if (fan_speed[0] < 20) { + if (fan_speed[0] < 20) { // < 1200 RPM would mean either a faulty Noctua or Altfan return FanCheck::ExtruderFan; } #ifdef FAN_SOFT_PWM From 5648f3fef0f3703964a21168bd7d5ba5a60bdeb3 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 8 Jun 2020 13:07:19 +0200 Subject: [PATCH 303/361] Fix compiler warning enumeration value 'ONE_TO_FALL' not handled in switch. --- Firmware/heatbed_pwm.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index 4cd0bf5e5..8121df3ee 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -59,7 +59,6 @@ enum class States : uint8_t { RISE, ///< 16 fast PWM cycles with increasing duty up to steady ON RISE_TO_ONE, ///< metastate allowing the timer change its state atomically without artefacts on the output pin ONE, ///< steady 1 (ON), no change for the whole period - ONE_TO_FALL, ///< metastate allowing the timer change its state atomically without artefacts on the output pin FALL, ///< 16 fast PWM cycles with decreasing duty down to steady OFF FALL_TO_ZERO ///< metastate allowing the timer change its state atomically without artefacts on the output pin }; @@ -155,12 +154,7 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine 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; -// TCCR0B = (1 << CS00); // change prescaler to 1, i.e. 62.5kHz -// break; -// case States::ONE_TO_FALL: -// OCR0B = 255; // zero duty state=States::FALL; fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE TCNT0 = 255; // force overflow on the next clock cycle From 200696c764c8d7f462d5f21ed3b3e6e27c86c755 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 8 Jun 2020 14:27:58 +0200 Subject: [PATCH 304/361] Fix compiler warning unused variable kill_message. (cherry picked from commit 54e2b6a829a221cc3abbff3a39ca7d3cafed3a09) Pick only unused kill_message. --- Firmware/Marlin_main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c8558b8ad..91594edc2 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4977,7 +4977,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } #endif // SUPPORT_VERBOSITY int l_feedmultiply = setup_for_endstop_move(false); //save feedrate and feedmultiply, sets feedmultiply to 100 - const char *kill_message = NULL; while (mesh_point != nMeasPoints * nMeasPoints) { // Get coords of a measuring point. uint8_t ix = mesh_point % nMeasPoints; // from 0 to MESH_NUM_X_POINTS - 1 From f6df3f2394ab9aa3896136235e7ff20d588d0712 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 8 Jun 2020 13:45:29 +0200 Subject: [PATCH 305/361] Unused function warning fix. (cherry picked from commit 54e2b6a829a221cc3abbff3a39ca7d3cafed3a09) Pick only unused function warning fix. --- Firmware/ultralcd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d702e222d..fda0d1196 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5602,6 +5602,7 @@ do\ }\ while (0) +#if 0 // temporarily unused static void lcd_check_gcode_set(void) { switch(oCheckGcode) @@ -5620,6 +5621,7 @@ switch(oCheckGcode) } eeprom_update_byte((uint8_t*)EEPROM_CHECK_GCODE,(uint8_t)oCheckGcode); } +#endif #define SETTINGS_GCODE \ do\ From 4c5fe053337dc111e5cde9a3563ccaecd8b1e14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20B=C4=9Bl?= <35807926+mkbel@users.noreply.github.com> Date: Thu, 11 Jun 2020 18:32:36 +0200 Subject: [PATCH 306/361] Update README.md Mention gawk dependency for multi language. --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fb1c79689..79ab9b74a 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,28 @@ The firmware for the Original Prusa i3 printers is proudly based on [Marlin 1.0. 1. Clone this repository and checkout the correct branch for your desired release version. -2. Set your printer model. +1. Set your printer model. - For MK3 --> skip to step 3. - If you have a different printer model, follow step [2.b](#2b) from Windows build +1. Install GNU AWK `sudo apt-get install gawk` +If you use mawk instead of gawk you get strange errors when multi language support is generated like: +`awk: line 2: function strtonum never defined +sed: couldn't write 4 items to stdout: Broken pipe +./lang-build.sh: 121: ./lang-build.sh: arithmetic expression: expecting EOF: "0x"awk: line 2: function strtonum never defined +sed: couldn't write 4 items to stdout: Broken pipe +tr: write error: Broken pipe +./lang-build.sh: 121: ./lang-build.sh: arithmetic expression: expecting EOF: "0x"awk: line 2: function strtonum never defined +sed: couldn't write 4 items to stdout: Broken pipe +tr: write error: Broken pipe +tr: write error +cut: write error: Broken pipeNG! - some texts not found in lang_en.txt! updating binary: + primary language ids...awk: line 2: function strtonum never defined +sed: couldn't flush stdout: Broken pipe` -3. Run `./build.sh` +1. Run `./build.sh` - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well. -4. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE. +1. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE. - If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first. From fca40156677c54a544d612b196d31dafce5006bb Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 11 Jun 2020 19:38:40 +0200 Subject: [PATCH 307/361] Remove st_current_init() call from lcd_temp_calibration_set(). There is no known purpose of this call. lcd_temp_calibration_set() is switching on/off pinda temperature compensation from LCD settings menu (this is called "Temp. cal." on LCD). st_current_init() does nothing on Einsy board, it enables and sets motor current selecting outputs on Rambo board (it used to be called digipot in history) --- Firmware/ultralcd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index fda0d1196..1c2660827 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4637,7 +4637,6 @@ void lcd_pinda_calibration_menu() void lcd_temp_calibration_set() { temp_cal_active = !temp_cal_active; eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, temp_cal_active); - st_current_init(); } #ifdef HAS_SECOND_SERIAL_PORT From bbe9e3b4eaebb6ba4f95a4d6fa4ac9e143bd4cf0 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 11 Jun 2020 20:00:55 +0200 Subject: [PATCH 308/361] Remove temp_cal_active variable. This saves 18B of FLASH and 1B of RAM memory. This variable was duplicate to EEPROM variable of the same name. --- Firmware/Marlin.h | 1 - Firmware/Marlin_main.cpp | 13 ++++--------- Firmware/ultralcd.cpp | 5 ++--- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 52444337a..5c03552bf 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -334,7 +334,6 @@ extern unsigned long stoptime; extern int bowden_length[4]; extern bool is_usb_printing; extern bool homing_flag; -extern bool temp_cal_active; extern bool loading_flag; extern unsigned int usb_printing_counter; diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 91594edc2..80bdd90f4 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -202,8 +202,6 @@ int bowden_length[4] = {385, 385, 385, 385}; bool is_usb_printing = false; bool homing_flag = false; -bool temp_cal_active = false; - unsigned long kicktime = _millis()+100000; unsigned int usb_printing_counter; @@ -1465,8 +1463,7 @@ void setup() if (eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE) == 255) { eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0); - temp_cal_active = false; - } else temp_cal_active = eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE); + } if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) { //eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); @@ -1474,7 +1471,6 @@ void setup() int16_t z_shift = 0; for (uint8_t i = 0; i < 5; i++) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0); - temp_cal_active = false; } if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 255) { eeprom_write_byte((uint8_t*)EEPROM_UVLO, 0); @@ -1547,7 +1543,7 @@ void setup() lcd_show_fullscreen_message_and_wait_P(_T(MSG_BABYSTEP_Z_NOT_SET)); lcd_update_enable(true); } - else if (calibration_status() == CALIBRATION_STATUS_CALIBRATED && temp_cal_active == true && calibration_status_pinda() == false) { + else if (calibration_status() == CALIBRATION_STATUS_CALIBRATED && eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) && calibration_status_pinda() == false) { //lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration has not been run yet"));////MSG_PINDA_NOT_CALIBRATED c=20 r=4 lcd_update_enable(true); } @@ -4827,7 +4823,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) disable_e2(); setTargetBed(0); //set bed target temperature back to 0 lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE)); - temp_cal_active = true; eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1); lcd_update_enable(true); lcd_update(2); @@ -5253,7 +5248,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) go_home_with_z_lift(); // SERIAL_ECHOLNPGM("Go home finished"); //unretract (after PINDA preheat retraction) - if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { + if ((degHotend(active_extruder) > EXTRUDE_MINTEMP) && eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) && calibration_status_pinda() && (target_temperature_bed >= 50)) { current_position[E_AXIS] += default_retraction; plan_buffer_line_curposXYZE(400); } @@ -10548,7 +10543,7 @@ float temp_comp_interpolation(float inp_temperature) { #ifdef PINDA_THERMISTOR float temp_compensation_pinda_thermistor_offset(float temperature_pinda) { - if (!temp_cal_active) return 0; + if (!eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE)) return 0; if (!calibration_status_pinda()) return 0; return temp_comp_interpolation(temperature_pinda) / cs.axis_steps_per_unit[Z_AXIS]; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index fda0d1196..a4d2fd54e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -3920,14 +3920,12 @@ void lcd_temp_cal_show_result(bool result) { eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1); SERIAL_ECHOLNPGM("Temperature calibration done. Continue with pressing the knob."); lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE)); - temp_cal_active = true; eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1); } else { eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); SERIAL_ECHOLNPGM("Temperature calibration failed. Continue with pressing the knob."); lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration failed"));////MSG_TEMP_CAL_FAILED c=20 r=8 - temp_cal_active = false; eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 0); } lcd_update_enable(true); @@ -4635,6 +4633,7 @@ void lcd_pinda_calibration_menu() } void lcd_temp_calibration_set() { + bool temp_cal_active = eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE); temp_cal_active = !temp_cal_active; eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, temp_cal_active); st_current_init(); @@ -5766,7 +5765,7 @@ static void lcd_settings_menu() MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu); #endif //LINEARITY_CORRECTION && TMC2130 - MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), temp_cal_active ? _T(MSG_ON) : _T(MSG_OFF), lcd_temp_calibration_set); + MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), eeprom_read_byte((unsigned char *)EEPROM_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); From bdf53387b1ef00c4b15707f08c4f1f1eddc5d661 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 00:15:13 +0200 Subject: [PATCH 309/361] Disable temperature compensation and temperature calibration menu if superPINDA is detected. Even though functionality was added, 20B of flash memory has been saved. --- Firmware/ultralcd.cpp | 20 ++++++++++++++++--- .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 2 ++ .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a4d2fd54e..13d8a1fb2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -334,6 +334,15 @@ bool bSettings; // flag (i.e. 'fake parameter' const char STR_SEPARATOR[] PROGMEM = "------------"; +static bool has_temperature_compensation() +{ +#ifdef DETECT_SUPERPINDA + return (current_temperature_pinda >= PINDA_MINTEMP) ? true : false; +#else + return true; +#endif +} + static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* filename, char* longFilename) { @@ -5764,8 +5773,10 @@ static void lcd_settings_menu() #if defined (TMC2130) && defined (LINEARITY_CORRECTION) MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu); #endif //LINEARITY_CORRECTION && TMC2130 - - MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) ? _T(MSG_ON) : _T(MSG_OFF), lcd_temp_calibration_set); + if(has_temperature_compensation()) + { + MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), eeprom_read_byte((unsigned char *)EEPROM_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); @@ -5869,7 +5880,10 @@ static void lcd_calibration_menu() //MENU_ITEM_FUNCTION_P(MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset); #endif #ifndef MK1BP - MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 r=1 + if(has_temperature_compensation()) + { + MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 r=1 + } #endif //MK1BP } diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 8215c48f3..b135d8d13 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -294,6 +294,8 @@ #if BED_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)" #endif +#define DETECT_SUPERPINDA +#define PINDA_MINTEMP BED_MINTEMP // Maxtemps #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index f7d408a45..e618c54ef 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -296,6 +296,8 @@ #if BED_MINTEMP_DELAY>USHRT_MAX #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)" #endif +#define DETECT_SUPERPINDA +#define PINDA_MINTEMP BED_MINTEMP // Maxtemps #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) From 23cc22bc229801fbcdd5db8480f9eb38dc8f7fdb Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 00:41:21 +0200 Subject: [PATCH 310/361] Move has_temperature_compensation() into temperature.cpp. No change in FLASH usage. --- Firmware/temperature.cpp | 11 +++++++++++ Firmware/temperature.h | 1 + Firmware/ultralcd.cpp | 9 --------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index c019514c5..bd232cf57 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2196,4 +2196,15 @@ float unscalePID_d(float d) #endif //PIDTEMP +#ifdef PINDA_THERMISTOR +bool has_temperature_compensation() +{ +#ifdef DETECT_SUPERPINDA + return (current_temperature_pinda >= PINDA_MINTEMP) ? true : false; +#else + return true; +#endif +} +#endif //PINDA_THERMISTOR + diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 617b9cb6b..32ff6961a 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -63,6 +63,7 @@ extern float current_temperature_bed; #ifdef PINDA_THERMISTOR extern uint16_t current_temperature_raw_pinda; extern float current_temperature_pinda; +bool has_temperature_compensation(); #endif #ifdef AMBIENT_THERMISTOR diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 13d8a1fb2..682a3b2ba 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -334,15 +334,6 @@ bool bSettings; // flag (i.e. 'fake parameter' const char STR_SEPARATOR[] PROGMEM = "------------"; -static bool has_temperature_compensation() -{ -#ifdef DETECT_SUPERPINDA - return (current_temperature_pinda >= PINDA_MINTEMP) ? true : false; -#else - return true; -#endif -} - static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* filename, char* longFilename) { From d398aa1e3fac215bf18ffad4b0591fef179d7d28 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 00:44:59 +0200 Subject: [PATCH 311/361] Skip PINDA_THERMISTOR block in PINDA probe temperature calibration if PINDA_THERMISTOR is not detected. Costs 1328B of FLASH, something must be wrong. --- 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 80bdd90f4..c18da74c5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4580,7 +4580,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) case 76: { #ifdef PINDA_THERMISTOR - if (true) + if (has_temperature_compensation()) { if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) { From 40ffea64ab5a98d0c2594e626562d302c1903bc7 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 01:09:40 +0200 Subject: [PATCH 312/361] Do not compile temperature compensation code for PINDAv1 if PINDA_THERMISTOR macro is defined. This saves nearly all of additional FLASH usage of previous commit. It is only 70B worse than if no skipping is done in temperature compensation gcode G76. --- Firmware/Marlin_main.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c18da74c5..48636adaf 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4562,6 +4562,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) ### 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). + superPINDA 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. @@ -4580,8 +4582,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) case 76: { #ifdef PINDA_THERMISTOR - if (has_temperature_compensation()) + if (true) { + if (!has_temperature_compensation()) + { + SERIAL_ECHOLNPGM("No PINDA thermistor"); + break; + } if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) { //we need to know accurate position of first calibration point @@ -4727,7 +4734,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; } -#endif //PINDA_THERMISTOR +#else //PINDA_THERMISTOR setTargetBed(PINDA_MIN_T); float zero_z; @@ -4828,7 +4835,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) lcd_update(2); - +#endif //PINDA_THERMISTOR } break; From d5feed1f6a7f38f21dca0be340e6f456ed74e4ea Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 01:20:17 +0200 Subject: [PATCH 313/361] Refactor: Remove if(true) condition, redundant break statement and decrease indentation. --- Firmware/Marlin_main.cpp | 264 +++++++++++++++++++-------------------- 1 file changed, 130 insertions(+), 134 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 48636adaf..501b37d94 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4582,158 +4582,154 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) case 76: { #ifdef PINDA_THERMISTOR - if (true) - { - if (!has_temperature_compensation()) - { - SERIAL_ECHOLNPGM("No PINDA thermistor"); - break; - } + if (!has_temperature_compensation()) + { + SERIAL_ECHOLNPGM("No PINDA thermistor"); + break; + } - if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) { - //we need to know accurate position of first calibration point - //if xyz calibration was not performed yet, interrupt temperature calibration and inform user that xyz cal. is needed - lcd_show_fullscreen_message_and_wait_P(_i("Please run XYZ calibration first.")); - break; - } - - if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS])) - { - // 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. - repeatcommand_front(); // repeat G76 with all its parameters - enquecommand_front_P((PSTR("G28 W0"))); - break; - } - lcd_show_fullscreen_message_and_wait_P(_i("Stable ambient temperature 21-26C is needed a rigid stand is required."));////MSG_TEMP_CAL_WARNING c=20 r=4 - bool result = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false, false); - - if (result) - { - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[Z_AXIS] = 50; - current_position[Y_AXIS] = 180; - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); - lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET)); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); - current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); - gcode_G28(false, false, true); + if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) { + //we need to know accurate position of first calibration point + //if xyz calibration was not performed yet, interrupt temperature calibration and inform user that xyz cal. is needed + lcd_show_fullscreen_message_and_wait_P(_i("Please run XYZ calibration first.")); + break; + } - } - if ((current_temperature_pinda > 35) && (farm_mode == false)) { - //waiting for PIDNA probe to cool down in case that we are not in farm mode - current_position[Z_AXIS] = 100; - plan_buffer_line_curposXYZE(3000 / 60); - if (lcd_wait_for_pinda(35) == false) { //waiting for PINDA probe to cool, if this takes more then time expected, temp. cal. fails - lcd_temp_cal_show_result(false); - break; - } - } - lcd_update_enable(true); - KEEPALIVE_STATE(NOT_BUSY); //no need to print busy messages as we print current temperatures periodicaly - SERIAL_ECHOLNPGM("PINDA probe calibration start"); + if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS])) + { + // 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. + repeatcommand_front(); // repeat G76 with all its parameters + enquecommand_front_P((PSTR("G28 W0"))); + break; + } + lcd_show_fullscreen_message_and_wait_P(_i("Stable ambient temperature 21-26C is needed a rigid stand is required."));////MSG_TEMP_CAL_WARNING c=20 r=4 + bool result = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false, false); - float zero_z; - int z_shift = 0; //unit: steps - float start_temp = 5 * (int)(current_temperature_pinda / 5); - if (start_temp < 35) start_temp = 35; - if (start_temp < current_temperature_pinda) start_temp += 5; - printf_P(_N("start temperature: %.1f\n"), start_temp); + if (result) + { + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[Z_AXIS] = 50; + current_position[Y_AXIS] = 180; + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); + lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET)); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); + current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); + gcode_G28(false, false, true); + + } + if ((current_temperature_pinda > 35) && (farm_mode == false)) { + //waiting for PIDNA probe to cool down in case that we are not in farm mode + current_position[Z_AXIS] = 100; + plan_buffer_line_curposXYZE(3000 / 60); + if (lcd_wait_for_pinda(35) == false) { //waiting for PINDA probe to cool, if this takes more then time expected, temp. cal. fails + lcd_temp_cal_show_result(false); + break; + } + } + lcd_update_enable(true); + KEEPALIVE_STATE(NOT_BUSY); //no need to print busy messages as we print current temperatures periodicaly + SERIAL_ECHOLNPGM("PINDA probe calibration start"); + + float zero_z; + int z_shift = 0; //unit: steps + float start_temp = 5 * (int)(current_temperature_pinda / 5); + if (start_temp < 35) start_temp = 35; + if (start_temp < current_temperature_pinda) start_temp += 5; + printf_P(_N("start temperature: %.1f\n"), start_temp); // setTargetHotend(200, 0); - setTargetBed(70 + (start_temp - 30)); + setTargetBed(70 + (start_temp - 30)); - custom_message_type = CustomMsg::TempCal; - custom_message_state = 1; - lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION)); - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[X_AXIS] = PINDA_PREHEAT_X; - current_position[Y_AXIS] = PINDA_PREHEAT_Y; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); + custom_message_type = CustomMsg::TempCal; + custom_message_state = 1; + lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION)); + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[X_AXIS] = PINDA_PREHEAT_X; + current_position[Y_AXIS] = PINDA_PREHEAT_Y; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[Z_AXIS] = PINDA_PREHEAT_Z; + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); - while (current_temperature_pinda < start_temp) - { - delay_keep_alive(1000); - serialecho_temperatures(); - } + while (current_temperature_pinda < start_temp) + { + delay_keep_alive(1000); + serialecho_temperatures(); + } - eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process + eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); - bool find_z_result = find_bed_induction_sensor_point_z(-1.f); - if (find_z_result == false) { - lcd_temp_cal_show_result(find_z_result); - break; - } - zero_z = current_position[Z_AXIS]; + bool find_z_result = find_bed_induction_sensor_point_z(-1.f); + if (find_z_result == false) { + lcd_temp_cal_show_result(find_z_result); + break; + } + zero_z = current_position[Z_AXIS]; - printf_P(_N("\nZERO: %.3f\n"), current_position[Z_AXIS]); + printf_P(_N("\nZERO: %.3f\n"), current_position[Z_AXIS]); - int i = -1; for (; i < 5; i++) - { - float temp = (40 + i * 5); - printf_P(_N("\nStep: %d/6 (skipped)\nPINDA temperature: %d Z shift (mm):0\n"), i + 2, (40 + i*5)); - if (i >= 0) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); - if (start_temp <= temp) break; - } + int i = -1; for (; i < 5; i++) + { + float temp = (40 + i * 5); + printf_P(_N("\nStep: %d/6 (skipped)\nPINDA temperature: %d Z shift (mm):0\n"), i + 2, (40 + i*5)); + if (i >= 0) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + if (start_temp <= temp) break; + } - for (i++; i < 5; i++) - { - float temp = (40 + i * 5); - printf_P(_N("\nStep: %d/6\n"), i + 2); - custom_message_state = i + 2; - setTargetBed(50 + 10 * (temp - 30) / 5); + for (i++; i < 5; i++) + { + float temp = (40 + i * 5); + printf_P(_N("\nStep: %d/6\n"), i + 2); + custom_message_state = i + 2; + setTargetBed(50 + 10 * (temp - 30) / 5); // setTargetHotend(255, 0); - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[X_AXIS] = PINDA_PREHEAT_X; - current_position[Y_AXIS] = PINDA_PREHEAT_Y; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[Z_AXIS] = PINDA_PREHEAT_Z; - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); - while (current_temperature_pinda < temp) - { - delay_keep_alive(1000); - serialecho_temperatures(); - } - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - plan_buffer_line_curposXYZE(3000 / 60); - current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); - plan_buffer_line_curposXYZE(3000 / 60); - st_synchronize(); - find_z_result = find_bed_induction_sensor_point_z(-1.f); - if (find_z_result == false) { - lcd_temp_cal_show_result(find_z_result); - break; - } - z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]); + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[X_AXIS] = PINDA_PREHEAT_X; + current_position[Y_AXIS] = PINDA_PREHEAT_Y; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[Z_AXIS] = PINDA_PREHEAT_Z; + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); + while (current_temperature_pinda < temp) + { + delay_keep_alive(1000); + serialecho_temperatures(); + } + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + plan_buffer_line_curposXYZE(3000 / 60); + current_position[X_AXIS] = pgm_read_float(bed_ref_points_4); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1); + plan_buffer_line_curposXYZE(3000 / 60); + st_synchronize(); + find_z_result = find_bed_induction_sensor_point_z(-1.f); + if (find_z_result == false) { + lcd_temp_cal_show_result(find_z_result); + break; + } + z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]); - printf_P(_N("\nPINDA temperature: %.1f Z shift (mm): %.3f"), current_temperature_pinda, current_position[Z_AXIS] - zero_z); + printf_P(_N("\nPINDA temperature: %.1f Z shift (mm): %.3f"), current_temperature_pinda, current_position[Z_AXIS] - zero_z); - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); - } - lcd_temp_cal_show_result(true); + } + lcd_temp_cal_show_result(true); - break; - } #else //PINDA_THERMISTOR setTargetBed(PINDA_MIN_T); From 9838be851200769d79b1b56b3685845e51b0ec2e Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 16 Jun 2020 02:02:12 +0200 Subject: [PATCH 314/361] Do not compile, if PINDA temperature compensation start point is lower than PINDA_MINTEMP. Document. --- Firmware/Marlin_main.cpp | 12 +++++++++--- Firmware/temperature.cpp | 5 +++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 501b37d94..8dbc0d840 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4561,13 +4561,15 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### 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). - - superPINDA 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. + superPINDA sensor has internal temperature compensation and no thermistor output. There is no point of doing temperature calibration in such case. + If PINDA_THERMISTOR and DETECT_SUPERPINDA is defined during compilation, calibration is skipped with serial message "No PINDA thermistor". + This can be caused also if PINDA thermistor connection is broken or PINDA temperature is lower than PINDA_MINTEMP. + #### Example ``` @@ -10493,7 +10495,11 @@ float temp_comp_interpolation(float inp_temperature) { if (i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i-1) * 2, &shift[i]); //read shift in steps from EEPROM temp_C[i] = 50 + i * 10; //temperature in C #ifdef PINDA_THERMISTOR - temp_C[i] = 35 + i * 5; //temperature in C + constexpr int start_compensating_temp = 35; + temp_C[i] = start_compensating_temp + i * 5; //temperature in degrees C +#ifdef DETECT_SUPERPINDA + static_assert(start_compensating_temp >= PINDA_MINTEMP, "Temperature compensation start point is lower than PINDA_MINTEMP."); +#endif //DETECT_SUPERPINDA #else temp_C[i] = 50 + i * 10; //temperature in C #endif diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index bd232cf57..6e9b6985a 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2197,6 +2197,11 @@ float unscalePID_d(float d) #endif //PIDTEMP #ifdef PINDA_THERMISTOR +//! @brief PINDA thermistor detected +//! +//! @retval true firmware should do temperature compensation and allow calibration +//! @retval false PINDA thermistor is not detected, disable temperature compensation and calibration +//! bool has_temperature_compensation() { #ifdef DETECT_SUPERPINDA From a0cf5714ceca7d60c5874c376898ecd8badd7d13 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 19 Jun 2020 15:39:16 +0300 Subject: [PATCH 315/361] M220 M221 --- Firmware/Marlin_main.cpp | 58 ++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8dbc0d840..d4ed0c51b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7300,17 +7300,26 @@ Sigma_Exit: */ case 220: // M220 S- set speed factor override percentage { - if (code_seen('B')) //backup current speed factor - { - saved_feedmultiply_mm = feedmultiply; - } - if(code_seen('S')) - { - feedmultiply = code_value() ; - } - if (code_seen('R')) { //restore previous feedmultiply - feedmultiply = saved_feedmultiply_mm; - } + bool codesWereSeen = false; + if (code_seen('B')) //backup current speed factor + { + saved_feedmultiply_mm = feedmultiply; + codesWereSeen = true; + } + if (code_seen('S')) + { + feedmultiply = code_value(); + codesWereSeen = true; + } + if (code_seen('R')) //restore previous feedmultiply + { + feedmultiply = saved_feedmultiply_mm; + codesWereSeen = true; + } + if (!codesWereSeen) + { + printf_P(PSTR("%i%%\n"), feedmultiply); + } } break; @@ -7326,23 +7335,26 @@ Sigma_Exit: */ case 221: // M221 S- set extrude factor override percentage { - if(code_seen('S')) - { - int tmp_code = code_value(); - if (code_seen('T')) + if (code_seen('S')) { - uint8_t extruder; - if(setTargetedHotend(221, extruder)){ - break; - } - extruder_multiply[extruder] = tmp_code; + int tmp_code = code_value(); + if (code_seen('T')) + { + uint8_t extruder; + if (setTargetedHotend(221, extruder)) + break; + extruder_multiply[extruder] = tmp_code; + } + else + { + extrudemultiply = tmp_code ; + } } else { - extrudemultiply = tmp_code ; + printf_P(PSTR("%i%%\n"), extrudemultiply); } - } - calculate_extruder_multipliers(); + calculate_extruder_multipliers(); } break; From 15548958e98ddae4de263d77aa68aa025226e2d2 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 21 Jun 2020 15:19:31 +0200 Subject: [PATCH 316/361] Remove cumulative error in segments without cruising (take 1) PR #2591 made LA compression always account for retractions instead of discarding the current compression steps. While this fixed overextrusion in short segments followed by wipes, it uncovered another issue in how the compression steps are spread during the trapezoid calculations leading to gaps in segments followed by retractions (as highlighted by /some/ prints in #2693). LA1.5 always computes the required target compression steps for a segment at nominal speed. Because of how the extra steps are allocated using multiples of the accelerating frequency, if the segment is truncated before cruising is reached, an additional cycle of steps can be inserted before deceleration starts. Deceleration is also not guaranteed to be symmetric where up to _two_ cycles can be skipped depending on the stepping cycle, leading to a situation where a symmetric acceleration/deceleration block will lead up to a cycle of accumulated compression. While forcing an the extra step during deceleration is possible by tweaking the error term (eISR_Err), this doesn't guarantee balance in all cases. The underlying issue is that the function is aiming a compression which cannot be reached (nominal speed), and not at the effective max speed reached in the trapezoid, thus moving the average result higher over time. We fix this by calculating the effective maximum speed (and compression) reached during the trapezoid, which stops compression on the required cycle irregardless of the error term, balancing the result. This is the first unoptimized POC: this is not for production: a lot of calculations are redundand and could work directly in steps/s^2. --- Firmware/planner.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index c0f465c2a..049dd2022 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -225,12 +225,15 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit uint32_t accel_decel_steps = accelerate_steps + decelerate_steps; // Size of Plateau of Nominal Rate. uint32_t plateau_steps = 0; + // Maximum effective speed reached in the trapezoid (mm/s) + float max_speed; // Is the Plateau of Nominal Rate smaller than nothing? That means no cruising, and we will // have to use intersection_distance() to calculate when to abort acceleration and start braking // in order to reach the final_rate exactly at the end of this block. if (accel_decel_steps < block->step_event_count.wide) { plateau_steps = block->step_event_count.wide - accel_decel_steps; + max_speed = block->nominal_speed; } else { uint32_t acceleration_x4 = acceleration << 2; // Avoid negative numbers @@ -263,12 +266,18 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit decelerate_steps = block->step_event_count.wide; accelerate_steps = block->step_event_count.wide - decelerate_steps; } + + // TODO: not for production + float dist = intersection_distance(entry_speed, exit_speed, block->acceleration, block->millimeters); + max_speed = sqrt(2 * block->acceleration * dist + entry_speed*entry_speed); } #ifdef LIN_ADVANCE uint16_t final_adv_steps = 0; + uint16_t max_adv_steps = 0; if (block->use_advance_lead) { final_adv_steps = exit_speed * block->adv_comp; + max_adv_steps = max_speed * block->adv_comp; } #endif @@ -284,6 +293,7 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit block->final_rate = final_rate; #ifdef LIN_ADVANCE block->final_adv_steps = final_adv_steps; + block->max_adv_steps = max_adv_steps; #endif } CRITICAL_SECTION_END; @@ -1137,9 +1147,8 @@ Having the real displacement of the head, we can calculate the total movement le #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 + // segment (the required advance steps are computed during trapezoid planning) 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; float advance_speed; if (e_D_ratio > 0) From 753e651af3026fba344169e45f677476741cf485 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 21 Jun 2020 16:01:13 +0200 Subject: [PATCH 317/361] Remove cumulative error in segments without cruising (take 2) Reduce per-trapezoid calculations --- Firmware/planner.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 049dd2022..8687055b1 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -267,9 +267,7 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit accelerate_steps = block->step_event_count.wide - decelerate_steps; } - // TODO: not for production - float dist = intersection_distance(entry_speed, exit_speed, block->acceleration, block->millimeters); - max_speed = sqrt(2 * block->acceleration * dist + entry_speed*entry_speed); + max_speed = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr) / block->speed_factor; } #ifdef LIN_ADVANCE From 7c140bc497d50d1ebda861d79c7fb5fe64d5c673 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 21 Jun 2020 16:19:46 +0200 Subject: [PATCH 318/361] Remove cumulative error in segments without cruising (take 3) Remove another division by precomputing the division directly in adv_comp. --- Firmware/planner.cpp | 104 ++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 51 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 8687055b1..54bc692d8 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -225,15 +225,15 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit uint32_t accel_decel_steps = accelerate_steps + decelerate_steps; // Size of Plateau of Nominal Rate. uint32_t plateau_steps = 0; - // Maximum effective speed reached in the trapezoid (mm/s) - float max_speed; + // Maximum effective speed reached in the trapezoid (step/min) + float max_rate; // Is the Plateau of Nominal Rate smaller than nothing? That means no cruising, and we will // have to use intersection_distance() to calculate when to abort acceleration and start braking // in order to reach the final_rate exactly at the end of this block. if (accel_decel_steps < block->step_event_count.wide) { plateau_steps = block->step_event_count.wide - accel_decel_steps; - max_speed = block->nominal_speed; + max_rate = block->nominal_rate; } else { uint32_t acceleration_x4 = acceleration << 2; // Avoid negative numbers @@ -267,15 +267,15 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit accelerate_steps = block->step_event_count.wide - decelerate_steps; } - max_speed = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr) / block->speed_factor; + max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr); } #ifdef LIN_ADVANCE uint16_t final_adv_steps = 0; uint16_t max_adv_steps = 0; if (block->use_advance_lead) { - final_adv_steps = exit_speed * block->adv_comp; - max_adv_steps = max_speed * block->adv_comp; + final_adv_steps = final_rate * block->adv_comp; + max_adv_steps = max_rate * block->adv_comp; } #endif @@ -1142,51 +1142,6 @@ 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) { - // the nominal speed doesn't change past this point: calculate the compression ratio for the - // segment (the required advance steps are computed during trapezoid planning) - block->adv_comp = extruder_advance_K * e_D_ratio * cs.axis_steps_per_unit[E_AXIS]; - - float advance_speed; - if (e_D_ratio > 0) - advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); - else - advance_speed = cs.max_jerk[E_AXIS] * cs.axis_steps_per_unit[E_AXIS]; - - // 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) - if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; - 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 (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) - // @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 - // 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; @@ -1312,6 +1267,53 @@ Having the real displacement of the head, we can calculate the total movement le // 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; + +#ifdef LIN_ADVANCE + if (block->use_advance_lead) { + // calculate the compression ratio for the segment (the required advance steps are computed + // during trapezoid planning) + float adv_comp = extruder_advance_K * e_D_ratio * cs.axis_steps_per_unit[E_AXIS]; // (step/(mm/s)) + block->adv_comp = adv_comp / block->speed_factor; // step/(step/min) + + float advance_speed; + if (e_D_ratio > 0) + advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); + else + advance_speed = cs.max_jerk[E_AXIS] * cs.axis_steps_per_unit[E_AXIS]; + + // 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) + if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; + 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 (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) + // @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 + calculate_trapezoid_for_block(block, block->entry_speed, safe_speed); if (block->step_event_count.wide <= 32767) From 51a539608cafafb41fe8ee248c41a91c70f7b145 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 22 Jun 2020 00:19:47 +0200 Subject: [PATCH 319/361] Reset LA_phase at each trapezoid stage There used to be a single stage where an extruder reversal could occur, but since PR #2591 reversals can happen up to two times per trapezoid. Reset LA_phase when ADV_INIT is set, since it is re-inizialized only when needed a few lines afterward. This improves performance by avoiding to check the phase continuosly to the end of the trapezoid. Likewise, always set ADV_INIT during the first cruising step, also to force a LA_phase reset. --- Firmware/stepper.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index de250ec97..57520070f 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -848,12 +848,10 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE if(current_block->use_advance_lead) { - if (!nextAdvanceISR) { - // Due to E-jerk, there can be discontinuities in pressure state where an - // acceleration or deceleration can be skipped or joined with the previous block. - // If LA was not previously active, re-check the pressure level - la_state = ADV_INIT; - } + // Due to E-jerk, there can be discontinuities in pressure state where an + // acceleration or deceleration can be skipped or joined with the previous block. + // If LA was not previously active, re-check the pressure level + la_state = ADV_INIT; } #endif } @@ -865,6 +863,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE // avoid multiple instances or function calls to advance_spread if (la_state & ADV_INIT) { + LA_phase = -1; if (current_adv_steps == target_adv_steps) { // nothing to be done in this phase la_state = 0; From 173aa2debad36da6590c53ad0a4114bfcda6a710 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 22 Jun 2020 00:54:50 +0200 Subject: [PATCH 320/361] Fix bogus timer check preventing fast LA steps to be scheduled Simplify and fix the broken timer check when scheduling advance ticks. This dates back to the original LA15 PR, an old bug... --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 57520070f..b1c3d2861 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -1016,7 +1016,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 + 40) < nextMainISR) + if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + 40) < nextMainISR) OCR1A = nextAdvanceISR; else OCR1A = nextMainISR; From a36efcb347bc3c1312f401ecaac383073d3856ba Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 22 Jun 2020 15:03:49 +0200 Subject: [PATCH 321/361] Remove cumulative error in segments without cruising (take 4) Avoid sqrt when possible --- Firmware/planner.cpp | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 54bc692d8..b5b251ec4 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -225,15 +225,24 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit uint32_t accel_decel_steps = accelerate_steps + decelerate_steps; // Size of Plateau of Nominal Rate. uint32_t plateau_steps = 0; - // Maximum effective speed reached in the trapezoid (step/min) - float max_rate; + +#ifdef LIN_ADVANCE + uint16_t final_adv_steps = 0; + uint16_t max_adv_steps = 0; + if (block->use_advance_lead) { + final_adv_steps = final_rate * block->adv_comp; + } +#endif // Is the Plateau of Nominal Rate smaller than nothing? That means no cruising, and we will // have to use intersection_distance() to calculate when to abort acceleration and start braking // in order to reach the final_rate exactly at the end of this block. if (accel_decel_steps < block->step_event_count.wide) { plateau_steps = block->step_event_count.wide - accel_decel_steps; - max_rate = block->nominal_rate; +#ifdef LIN_ADVANCE + if (block->use_advance_lead) + max_adv_steps = block->nominal_rate * block->adv_comp; +#endif } else { uint32_t acceleration_x4 = acceleration << 2; // Avoid negative numbers @@ -267,17 +276,19 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit accelerate_steps = block->step_event_count.wide - decelerate_steps; } - max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr); - } - #ifdef LIN_ADVANCE - uint16_t final_adv_steps = 0; - uint16_t max_adv_steps = 0; - if (block->use_advance_lead) { - final_adv_steps = final_rate * block->adv_comp; - max_adv_steps = max_rate * block->adv_comp; - } + if (block->use_advance_lead) { + if(!accelerate_steps || !decelerate_steps) { + // accelerate_steps=0: deceleration-only ramp, max_rate is effectively unused + // decelerate_steps=0: acceleration-only ramp, max_rate _is_ final_rate + max_adv_steps = final_adv_steps; + } else { + uint16_t max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr); + max_adv_steps = max_rate * 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, From 1206fc316402012c4607865d32cbc8ad470b71aa Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 22 Jun 2020 15:34:34 +0200 Subject: [PATCH 322/361] Avoid useless cast --- Firmware/planner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index b5b251ec4..bc991fdf8 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -283,7 +283,7 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit // decelerate_steps=0: acceleration-only ramp, max_rate _is_ final_rate max_adv_steps = final_adv_steps; } else { - uint16_t max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr); + float max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr); max_adv_steps = max_rate * block->adv_comp; } } From 50a09824fd8b3d33d62940b6836db350ea8670d5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 23 Jun 2020 15:20:46 +0200 Subject: [PATCH 323/361] Avoid scheduling useless eISR ticks When switching to a new trapezoid step with the right pressure, cancel any pending eISR right away. Similarly do not schedule another eISR if the pressure will be reached by the end of the eISR. This was done in the past to preserve the current LA_phase. This is not needed anymore, since it will be reset at each trapezoid step when LA is re-initialized. --- Firmware/stepper.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index b1c3d2861..0c7ecae5d 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -864,9 +864,11 @@ FORCE_INLINE void isr() { // avoid multiple instances or function calls to advance_spread if (la_state & ADV_INIT) { LA_phase = -1; + if (current_adv_steps == target_adv_steps) { - // nothing to be done in this phase + // nothing to be done in this phase, cancel any pending eisr la_state = 0; + nextAdvanceISR = ADV_NEVER; } else { eISR_Err = current_block->advance_rate / 4; @@ -933,20 +935,21 @@ FORCE_INLINE void advance_isr() { current_adv_steps -= e_step_loops; else current_adv_steps = 0; - nextAdvanceISR = eISR_Rate; } else if (current_adv_steps < target_adv_steps) { // compression e_steps += e_step_loops; 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; } - else { + + if (current_adv_steps == target_adv_steps) { // advance steps completed nextAdvanceISR = ADV_NEVER; - LA_phase = -1; - e_step_loops = 1; + } + else { + // schedule another tick + nextAdvanceISR = eISR_Rate; } } From f1efce7e525a651f0fcd08005e310ff7f21e6c8b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 23 Jun 2020 16:40:39 +0200 Subject: [PATCH 324/361] Handle LA termination with double/quad stepping properly Before PR #2591 LA was automatically capped during cruising or deceleration. However we now rely on reaching the current pressure state exactly to stop. When dual/quad stepping inside the eISR we might incur in oscillating behavior if we do not handle it correctly. This might be the cause behind #2757 This now changes e_step_loops to be a phase-local variable, so we now reset it each phase too (instead of per-segment). --- Firmware/stepper.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 0c7ecae5d..13724cc9e 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -348,10 +348,7 @@ FORCE_INLINE void stepper_next_block() #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - e_step_loops = current_block->advance_step_loops; target_adv_steps = current_block->max_adv_steps; - } else { - e_step_loops = 1; } e_steps = 0; nextAdvanceISR = ADV_NEVER; @@ -871,7 +868,10 @@ FORCE_INLINE void isr() { nextAdvanceISR = ADV_NEVER; } else { + // reset error and iterations per loop for this phase eISR_Err = current_block->advance_rate / 4; + e_step_loops = current_block->advance_step_loops; + if ((la_state & ADV_ACC_VARY) && e_extruding && (current_adv_steps > target_adv_steps)) { // LA could reverse the direction of extrusion in this phase LA_phase = 0; @@ -929,15 +929,22 @@ FORCE_INLINE void isr() { FORCE_INLINE void advance_isr() { if (current_adv_steps > target_adv_steps) { // decompression + if (e_step_loops != 1) { + uint16_t d_steps = current_adv_steps - target_adv_steps; + if (d_steps < e_step_loops) + e_step_loops = d_steps; + } e_steps -= e_step_loops; 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 - current_adv_steps = 0; + current_adv_steps -= e_step_loops; } else if (current_adv_steps < target_adv_steps) { // compression + if (e_step_loops != 1) { + uint16_t d_steps = target_adv_steps - current_adv_steps; + if (d_steps < e_step_loops) + e_step_loops = d_steps; + } e_steps += e_step_loops; if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); current_adv_steps += e_step_loops; From c08f37da9661feb946a6602dae49bab3a76071cb Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 24 Jun 2020 16:56:25 +0200 Subject: [PATCH 325/361] Use nominal rate for phase calculations The local interval calculated by advance_spread() might oscillate too much in narrow intervals. --- Firmware/stepper.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 13724cc9e..80c5be294 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -883,11 +883,13 @@ FORCE_INLINE void isr() { advance_spread(main_Rate); if (LA_phase >= 0) { if (step_loops == e_step_loops) - LA_phase = (eISR_Rate > main_Rate); + LA_phase = (current_block->advance_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)); + auto adv_rate_n = fastdiv(current_block->advance_rate, step_loops); + auto main_rate_n = fastdiv(main_Rate, e_step_loops); + LA_phase = (adv_rate_n > main_rate_n); } } } From fb5f09da6d365cb03db7abc01b18532740db3e6b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 16 Jul 2020 17:47:48 +0200 Subject: [PATCH 326/361] Fix incorrect precedence for retraction phase The logic was inverted, causing the fastest isr to always retract instead of counter-balance the acceleration properly. --- Firmware/stepper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 80c5be294..c5a6b69c9 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -883,13 +883,13 @@ FORCE_INLINE void isr() { advance_spread(main_Rate); if (LA_phase >= 0) { if (step_loops == e_step_loops) - LA_phase = (current_block->advance_rate > main_Rate); + LA_phase = (current_block->advance_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 auto adv_rate_n = fastdiv(current_block->advance_rate, step_loops); auto main_rate_n = fastdiv(main_Rate, e_step_loops); - LA_phase = (adv_rate_n > main_rate_n); + LA_phase = (adv_rate_n < main_rate_n); } } } From c54474f2db5cf9f04e0308c3c6694fff671a7d65 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 16 Jul 2020 13:26:15 +0200 Subject: [PATCH 327/361] Guard against planning/numerical errors in short segments Turns out for high-res curved models the numerical error and the SLOWDOWN handling in the planner can cause enough variance in the calculated pressure to trigger LA to continuosly, making matters worse. Clamp LA again, but only during extrusion, so that the runaway error is limited by the current segment length. --- Firmware/stepper.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index c5a6b69c9..949ffd587 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -809,8 +809,11 @@ 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) + if (step_events_completed.wide <= (unsigned long int)step_loops) { la_state = ADV_INIT | ADV_ACC_VARY; + if (e_extruding && current_adv_steps > target_adv_steps) + target_adv_steps = current_adv_steps; + } } #endif } @@ -832,6 +835,8 @@ FORCE_INLINE void isr() { if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) { target_adv_steps = current_block->final_adv_steps; la_state = ADV_INIT | ADV_ACC_VARY; + if (e_extruding && current_adv_steps < target_adv_steps) + target_adv_steps = current_adv_steps; } } #endif @@ -849,6 +854,8 @@ FORCE_INLINE void isr() { // acceleration or deceleration can be skipped or joined with the previous block. // If LA was not previously active, re-check the pressure level la_state = ADV_INIT; + if (e_extruding) + target_adv_steps = current_adv_steps; } #endif } From 9b8f642b28eb5441a8342c73043d1570c0544bd2 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 Jul 2020 17:41:38 +0200 Subject: [PATCH 328/361] Account for flow adjustments in LA The e/D ratio should be calculated using the extrusion length. As such, purify the e_D_ratio from the current extruder multiplier in order to account correctly for flow adjustments. --- Firmware/Marlin.h | 2 +- Firmware/planner.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 5c03552bf..697f2f72c 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -299,7 +299,7 @@ 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 -extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner +extern float extruder_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner extern float current_position[NUM_AXIS] ; extern float destination[NUM_AXIS] ; extern float min_pos[3]; diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index bc991fdf8..a994c74fd 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1098,7 +1098,7 @@ Having the real displacement of the head, we can calculate the total movement le if (block->use_advance_lead) { // all extrusion moves with LA require a compression which is proportional to the // extrusion_length to distance ratio (e/D) - e_D_ratio = (e - position_float[E_AXIS]) / + e_D_ratio = ((e - position_float[E_AXIS]) / extruder_multiplier[extruder]) / sqrt(sq(x - position_float[X_AXIS]) + sq(y - position_float[Y_AXIS]) + sq(z - position_float[Z_AXIS])); From a08ca19adeec3da70725e5b9555bf37bd3e276ba Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 20 Jul 2020 12:42:28 +0200 Subject: [PATCH 329/361] Make flow correction optional, disabled by default If you're using flow to correct for an incorrect source diameter, which is probably the main usage when using the LCD, then LA shouldn't be adjusted. It's still unclear what the effect of M221 in gcode should be regarding overall extrusion width. If M221 means "thicker lines", then LA should also be adjusted accordingly. This stems from the fact that the source diameter/length needs to be known in order to determine a compression factor which is independent of the extrusion width, but the FW only ever sees one value currently (the extrusion length) which combines both. This makes it impossible for the FW to adjust for one OR the other scenario, depending on what you expect for M221 to mean. --- Firmware/Configuration_adv.h | 1 + Firmware/planner.cpp | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 5386c2815..7deff3c12 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -288,6 +288,7 @@ #define LA_K_DEF 0 // Default K factor (Unit: mm compression per 1mm/s extruder speed) #define LA_K_MAX 10 // Maximum acceptable K factor (exclusive, see notes in planner.cpp:plan_buffer_line) #define LA_LA10_MIN LA_K_MAX // Lin. Advance 1.0 threshold value (inclusive) + //#define LA_FLOWADJ // Adjust LA along with flow/M221 for uniform width //#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. diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index a994c74fd..4789b0336 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1096,12 +1096,20 @@ 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) { +#ifdef LA_FLOWADJ + // M221/FLOW should change uniformly the extrusion thickness + float delta_e = (e - position_float[E_AXIS]) / extruder_multiplier[extruder]; +#else + // M221/FLOW only adjusts for an incorrect source diameter + float delta_e = (e - position_float[E_AXIS]); +#endif + float delta_D = sqrt(sq(x - position_float[X_AXIS]) + + sq(y - position_float[Y_AXIS]) + + sq(z - position_float[Z_AXIS])); + // all extrusion moves with LA require a compression which is proportional to the // extrusion_length to distance ratio (e/D) - e_D_ratio = ((e - position_float[E_AXIS]) / extruder_multiplier[extruder]) / - sqrt(sq(x - position_float[X_AXIS]) - + sq(y - position_float[Y_AXIS]) - + sq(z - position_float[Z_AXIS])); + e_D_ratio = delta_e / delta_D; // 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 From a95feb56d9cc9bccc185d989272c2c6e258fc553 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 20 Jul 2020 19:35:25 +0300 Subject: [PATCH 330/361] ALTFAN override --- Firmware/Marlin_main.cpp | 10 +++++++++- Firmware/eeprom.h | 4 +++- Firmware/temperature.cpp | 27 ++++++++++++++++++++++++--- Firmware/temperature.h | 2 ++ Firmware/ultralcd.cpp | 12 ++++++++++++ Firmware/ultralcd.h | 2 ++ 6 files changed, 52 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8dbc0d840..f3528ca9e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8570,7 +8570,15 @@ Sigma_Exit: break; /*! - ### M999 - Restart after being stopped M999: Restart after being stopped by error + ### M666 - Enter experimental menu + Only used by Prusa + */ + case 666: + menu_submenu(lcd_experimental_menu); + break; + + /*! + ### M999 - Restart after being stopped M999: Restart after being stopped by error @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: diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 89d7e7f99..bfc81d82d 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -561,8 +561,10 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_UVLO_LA_K (EEPROM_BACKLIGHT_TIMEOUT-4) // float +#define EEPROM_ALTFAN_OVERRIDE (EEPROM_UVLO_LA_K-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_UVLO_LA_K +#define EEPROM_LAST_ITEM EEPROM_ALTFAN_OVERRIDE // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 6e9b6985a..084ed2720 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -153,6 +153,7 @@ uint8_t fanSpeedBckp = 255; uint8_t fanState = 0; #ifdef EXTRUDER_ALTFAN_DETECT bool extruderFanIsAltfan = false; //set to Noctua + uint8_t altfanOverride = 0; #endif //EXTRUDER_ALTFAN_DETECT #endif @@ -224,6 +225,14 @@ bool extruder_altfan_detect() setExtruderAutoFanState(3); SET_INPUT(TACH_0); + + altfanOverride = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); + if (altfanOverride == EEPROM_EMPTY_VALUE) + { + altfanOverride = 0; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); + } + CRITICAL_SECTION_START; EICRB &= ~(1 << ISC61); EICRB |= (1 << ISC60); @@ -241,6 +250,18 @@ bool extruder_altfan_detect() setExtruderAutoFanState(1); return extruderFanIsAltfan; } + +void altfanOverride_toggle() +{ + altfanOverride = !altfanOverride; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); +} + +bool altfanOverride_get() +{ + return altfanOverride; +} + #endif //EXTRUDER_ALTFAN_DETECT // return "false", if all extruder-heaters are 'off' (ie. "true", if any heater is 'on') @@ -494,7 +515,7 @@ void setExtruderAutoFanState(uint8_t state) if (fanState & 0x01) { #ifdef EXTRUDER_ALTFAN_DETECT - if (extruderFanIsAltfan) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; + if (extruderFanIsAltfan && !altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; else newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; #else //EXTRUDER_ALTFAN_DETECT newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; @@ -1356,7 +1377,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed) SERIAL_ERROR_START; isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); #ifdef EXTRUDER_ALTFAN_DETECT - extruderFanIsAltfan = false; //full speed + altfanOverride = true; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); SET_OUTPUT(FAN_PIN); @@ -1446,7 +1467,7 @@ void max_temp_error(uint8_t e) { WRITE(FAN_PIN, 1); WRITE(BEEPER, 1); #ifdef EXTRUDER_ALTFAN_DETECT - extruderFanIsAltfan = false; //full speed + altfanOverride = true; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); // fanSpeed will consumed by the check_axes_activity() routine. diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 32ff6961a..da88a53c0 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -273,6 +273,8 @@ void check_max_temp(); #ifdef EXTRUDER_ALTFAN_DETECT extern bool extruder_altfan_detect(); + extern void altfanOverride_toggle(); + extern bool altfanOverride_get(); #endif //EXTRUDER_ALTFAN_DETECT extern unsigned long extruder_autofan_last_check; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 87266914f..bb1d2c716 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -9160,3 +9160,15 @@ void lcd_crash_detect_disable() eeprom_update_byte((uint8_t*)EEPROM_CRASH_DET, 0x00); } #endif + +void lcd_experimental_menu() +{ + MENU_BEGIN(); + MENU_ITEM_BACK_P(_T(MSG_BACK)); + +#ifdef EXTRUDER_ALTFAN_DETECT + MENU_ITEM_TOGGLE_P(_N("ALTFAN det."), altfanOverride_get()?_T(MSG_OFF):_T(MSG_ON), altfanOverride_toggle); +#endif //EXTRUDER_ALTFAN_DETECT + + MENU_END(); +} diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 844c7c7d3..971c07b6b 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -257,4 +257,6 @@ enum class WizState : uint8_t void lcd_wizard(WizState state); +extern void lcd_experimental_menu(); + #endif //ULTRALCD_H From e2856ba4f579c51c6aa58e8614f71a498e021a6c Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 21 Jul 2020 12:52:04 +0300 Subject: [PATCH 331/361] Make the serial number available to the user --- Firmware/Marlin_main.cpp | 45 +++++++++++++++------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8dbc0d840..49470ae12 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3286,37 +3286,26 @@ void gcode_M701() */ static void gcode_PRUSA_SN() { - if (farm_mode) { - selectedSerialPort = 0; - putchar(';'); - putchar('S'); - int numbersRead = 0; - ShortTimer timeout; - timeout.start(); + uint8_t selectedSerialPort_bak = selectedSerialPort; + selectedSerialPort = 0; + putchar(';'); + putchar('S'); + int numbersRead = 0; + ShortTimer timeout; + timeout.start(); - while (numbersRead < 19) { - while (MSerial.available() > 0) { - uint8_t serial_char = MSerial.read(); - selectedSerialPort = 1; - putchar(serial_char); - numbersRead++; - selectedSerialPort = 0; - } - if (timeout.expired(100u)) break; + while (numbersRead < 19) { + while (MSerial.available() > 0) { + uint8_t serial_char = MSerial.read(); + selectedSerialPort = selectedSerialPort_bak; + putchar(serial_char); + numbersRead++; + selectedSerialPort = 0; } - selectedSerialPort = 1; - putchar('\n'); -#if 0 - for (int b = 0; b < 3; b++) { - _tone(BEEPER, 110); - _delay(50); - _noTone(BEEPER); - _delay(50); - } -#endif - } else { - puts_P(_N("Not in farm mode.")); + if (timeout.expired(100u)) break; } + selectedSerialPort = selectedSerialPort_bak; + putchar('\n'); } //! Detection of faulty RAMBo 1.1b boards equipped with bigger capacitors //! at the TACH_1 pin, which causes bad detection of print fan speed. From ec6a20971e495ea4a97049434ac3e247c7391501 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jul 2020 11:23:24 +0300 Subject: [PATCH 332/361] Add experimental menu to HW_setup --- Firmware/Marlin_main.cpp | 8 -------- Firmware/eeprom.h | 5 ++++- Firmware/ultralcd.cpp | 32 ++++++++++++++++++++++++++++++++ Firmware/ultralcd.h | 1 + 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f3528ca9e..2a261db2a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8569,14 +8569,6 @@ Sigma_Exit: } break; - /*! - ### M666 - Enter experimental menu - Only used by Prusa - */ - case 666: - menu_submenu(lcd_experimental_menu); - break; - /*! ### M999 - Restart after being stopped M999: Restart after being stopped by error @todo Usually doesn't work. Should be fixed or removed. Most of the time, if `Stopped` it set, the print fails and is unrecoverable. diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index bfc81d82d..ee7fa39ef 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -359,6 +359,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ | 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 +| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | 0-1 | 00h | ALTFAN override | LCD menu | D3 Ax0d2b C1 +| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | 0-1 | 00h | Experimental menu visibility | LCD menu | D3 Ax0d2a C1 | Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code @@ -562,9 +564,10 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_UVLO_LA_K (EEPROM_BACKLIGHT_TIMEOUT-4) // float #define EEPROM_ALTFAN_OVERRIDE (EEPROM_UVLO_LA_K-1) //uint8 +#define EEPROM_EXPERIMENTAL_VISIBILITY (EEPROM_ALTFAN_OVERRIDE-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_ALTFAN_OVERRIDE +#define EEPROM_LAST_ITEM EEPROM_EXPERIMENTAL_VISIBILITY // !!!!! // !!!!! 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 bb1d2c716..24e331680 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2113,6 +2113,7 @@ static void lcd_support_menu() bool is_flash_air; // 1byte uint8_t ip[4]; // 4bytes char ip_str[3*4+3+1]; // 16bytes + uint8_t experimental_menu_visibility; } _menu_data_t; static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]); @@ -2126,6 +2127,14 @@ static void lcd_support_menu() sprintf_P(_md->ip_str, PSTR("%d.%d.%d.%d"), _md->ip[0], _md->ip[1], _md->ip[2], _md->ip[3]); + + _md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY); + if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE) + { + _md->experimental_menu_visibility = 0; + eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility); + } + } else if (_md->is_flash_air && _md->ip[0] == 0 && _md->ip[1] == 0 && _md->ip[2] == 0 && _md->ip[3] == 0 && @@ -2210,6 +2219,12 @@ static void lcd_support_menu() MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1 #endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN + if (_md->experimental_menu_visibility) + { + MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu); + } + + #ifdef DEBUG_BUILD MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1 #endif /* DEBUG_BUILD */ @@ -8997,6 +9012,13 @@ void menu_lcd_longpress_func(void) lcd_quick_feedback(); return; } + if (menu_menu == lcd_hw_setup_menu) + { + // only toggle the experimental menu visibility flag + lcd_quick_feedback(); + lcd_experimental_toggle(); + return; + } // explicitely listed menus which are allowed to rise the move-z or live-adj-z functions // The lists are not the same for both functions, so first decide which function is to be performed @@ -9161,6 +9183,16 @@ void lcd_crash_detect_disable() } #endif +void lcd_experimental_toggle() +{ + uint8_t oldVal = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY); + if (oldVal == EEPROM_EMPTY_VALUE) + oldVal = 0; + else + oldVal = !oldVal; + eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, oldVal); +} + void lcd_experimental_menu() { MENU_BEGIN(); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 971c07b6b..95a3cec1a 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -257,6 +257,7 @@ enum class WizState : uint8_t void lcd_wizard(WizState state); +extern void lcd_experimental_toggle(); extern void lcd_experimental_menu(); #endif //ULTRALCD_H From 773c6997efcbb947c5eeca5c3daf387c83ef4743 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jul 2020 17:36:03 +0300 Subject: [PATCH 333/361] Add comments --- Firmware/ultralcd.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 24e331680..c2a3a8907 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2096,6 +2096,9 @@ static void lcd_preheat_menu() //! @code{.unparsed} //! | Voltages | MSG_MENU_VOLTAGES //! @endcode +//! +//! +//! | Experimental | c=18 r=1 //! //! //! If DEBUG_BUILD is defined @@ -2108,12 +2111,12 @@ static void lcd_preheat_menu() static void lcd_support_menu() { typedef struct - { // 22bytes total + { // 23bytes total int8_t status; // 1byte bool is_flash_air; // 1byte uint8_t ip[4]; // 4bytes char ip_str[3*4+3+1]; // 16bytes - uint8_t experimental_menu_visibility; + uint8_t experimental_menu_visibility; //1byte } _menu_data_t; static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]); From feafc5e5abdc1acee8683411c83c4595885332f5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 27 Jul 2020 19:12:56 +0200 Subject: [PATCH 334/361] Alternative schedule for LA ticks Remove most of the original complexity from advance_spread. Instead of accumulating time to be scheduled, plan ahead of time each eISR tick using the next main interval + an accumulator (eISR_Err), which keeps everything much simpler. The distribution of the advance ticks is now using the real LA frequency, which leaves a bit more time between the last LA tick and the main stepper isr. We take advantage of the accumulator to force a LA tick right after the first main tick, which removes a +/- 1 scheduling error at higher step rates. When decompressing, we force 2 steps instead, so that the direction reversal happens immediately (first tick zeros esteps, second inverts the sign), removing another +/- 1 error at higher step rates. --- Firmware/stepper.cpp | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 949ffd587..8b21ee678 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -125,7 +125,7 @@ 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 uint32_t eISR_Err; static uint16_t current_adv_steps; static uint16_t target_adv_steps; @@ -733,38 +733,30 @@ FORCE_INLINE uint16_t fastdiv(uint16_t q, uint8_t d) FORCE_INLINE void advance_spread(uint16_t timer) { - if(eISR_Err > timer) + eISR_Err += timer; + + uint8_t ticks = 0; + while(eISR_Err >= current_block->advance_rate) + { + ++ticks; + eISR_Err -= current_block->advance_rate; + } + if(!ticks) { - // 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; - - if (ticks <= 4) - eISR_Rate = fastdiv(timer, ticks); + if (ticks <= 3) + eISR_Rate = fastdiv(timer, ticks + 1); else { // >4 ticks are still possible on slow moves - eISR_Rate = timer / ticks; + eISR_Rate = timer / (ticks + 1); } - nextAdvanceISR = eISR_Rate / 2; + nextAdvanceISR = eISR_Rate; } #endif @@ -876,11 +868,12 @@ FORCE_INLINE void isr() { } else { // reset error and iterations per loop for this phase - eISR_Err = current_block->advance_rate / 4; + eISR_Err = current_block->advance_rate; e_step_loops = current_block->advance_step_loops; if ((la_state & ADV_ACC_VARY) && e_extruding && (current_adv_steps > target_adv_steps)) { // LA could reverse the direction of extrusion in this phase + eISR_Err += current_block->advance_rate; LA_phase = 0; } } From 87bc5a78b6b787bc6415a49495aee40fa10f7175 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 1 Jun 2020 17:03:48 +0200 Subject: [PATCH 335/361] Remove bogus comment (BED_MINTEMP *is* implemented) --- Firmware/temperature.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 6e9b6985a..a7b9a3cdf 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1165,7 +1165,6 @@ void tp_init() #endif //MAXTEMP 2 #ifdef BED_MINTEMP - /* No bed MINTEMP error implemented?!? */ while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) { #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP bed_minttemp_raw += OVERSAMPLENR; @@ -1173,7 +1172,6 @@ void tp_init() bed_minttemp_raw -= OVERSAMPLENR; #endif } - #endif //BED_MINTEMP #ifdef BED_MAXTEMP while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) { From 942fca5b660bada0dfdea9d7b2945c8a0ce6ebf0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 7 Jun 2020 23:15:06 +0200 Subject: [PATCH 336/361] Remove useless assignment target_temperature_bed is already reset by disable_heaters() in Stop() --- Firmware/temperature.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index a7b9a3cdf..9ac97aec0 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2002,7 +2002,6 @@ void check_max_temp() #else if (current_temperature_bed_raw >= bed_maxttemp_raw) { #endif - target_temperature_bed = 0; bed_max_temp_error(); } #endif From 65f25b0d7e4260d06073af2aeea3f39ba6cb6990 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 8 Jun 2020 02:16:00 +0200 Subject: [PATCH 337/361] Remove redundant disable_heater() calls in max/min_temp handling In max/min_temp handlers remove the redundant disable_heater() call. Handlers already need to call Stop(), which will disable all heaters as the first step. Fix comments in order to mention that all heaters get disabled. Use "MAX/MINTEMP BED" correctly in both the LCD and serial. --- Firmware/temperature.cpp | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 9ac97aec0..c9e63def3 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1426,19 +1426,16 @@ enum { LCDALERT_NONE = 0, LCDALERT_HEATERMINTEMP, LCDALERT_BEDMINTEMP, LCDALERT_ uint8_t last_alert_sent_to_lcd = LCDALERT_NONE; void max_temp_error(uint8_t e) { - disable_heater(); if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !"); + SERIAL_ERRORLNPGM(": Heaters switched off. MAXTEMP triggered !"); LCD_ALERTMESSAGEPGM("Err: MAXTEMP"); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); - - - #endif + SET_OUTPUT(FAN_PIN); SET_OUTPUT(BEEPER); WRITE(FAN_PIN, 1); @@ -1457,12 +1454,11 @@ void min_temp_error(uint8_t e) { return; #endif //if (current_temperature_ambient < MINTEMP_MINAMBIENT) return; - disable_heater(); static const char err[] PROGMEM = "Err: MINTEMP"; if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !"); + SERIAL_ERRORLNPGM(": Heaters switched off. MINTEMP triggered !"); lcd_setalertstatuspgm(err); last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP; } else if( last_alert_sent_to_lcd != LCDALERT_HEATERMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time) @@ -1482,32 +1478,24 @@ void min_temp_error(uint8_t e) { } void bed_max_temp_error(void) { -#if HEATER_BED_PIN > -1 - //WRITE(HEATER_BED_PIN, 0); -#endif if(IsStopped() == false) { SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !"); + SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP BED triggered !"); LCD_ALERTMESSAGEPGM("Err: MAXTEMP BED"); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); #endif - } void bed_min_temp_error(void) { #ifdef DEBUG_DISABLE_MINTEMP return; -#endif -//if (current_temperature_ambient < MINTEMP_MINAMBIENT) return; -#if HEATER_BED_PIN > -1 - //WRITE(HEATER_BED_PIN, 0); #endif static const char err[] PROGMEM = "Err: MINTEMP BED"; if(IsStopped() == false) { SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Temperature heated bed switched off. MINTEMP triggered !"); + SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP BED triggered !"); lcd_setalertstatuspgm(err); last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP; } else if( last_alert_sent_to_lcd != LCDALERT_BEDMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time) From 3336db7954a7204dbf5ae859515dcc11e9dcba18 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 8 Jun 2020 02:56:11 +0200 Subject: [PATCH 338/361] Add some important notes about thermistor ADC handling --- Firmware/temperature.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index c9e63def3..7f293f2ed 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -639,6 +639,7 @@ void manage_heater() return; // more precisely - this condition partially stabilizes time interval for regulation values evaluation (@ ~ 230ms) + // ADC values need to be converted before checking: converted values are later used in MINTEMP updateTemperaturesFromRawValues(); check_max_temp(); From a60ed81a3507814c60354534e4c4f4f9230d2aa6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 8 Jun 2020 03:14:49 +0200 Subject: [PATCH 339/361] Implement MIN/MAX AMBIENT safety checks Take advantage of the NTC thermistor found on the Einsy as an additional safety measure, following the steps of the other MIN/MAXTEMP errors. Introduce two configurable params AMBIENT_MINTEMP and AMBIENT_MAXTEMP in the variant defines and set them for the MK3/MK3S to -30/+100 respectively. AMBIENT_MINTEMP is primarily intended to catch a defective board thermistor (to ensure MAXTEMP would be properly triggered) and thus the trigger temperature is set just above the sensing limit and well below the operating range. AMBIENT_MAXTEMP is set at 100C, which is instead 20C above the maximum recommended operating temperature of the Einsy. The NTC thermistor is located just above the main power connector on the bottom of the board, and could also help in detecting a faulty connection which can result in rapid overheating of the contacts. As for MAXTEMP, we cut power to the heaters, print fan and motors to reduce power draw. Resume is not possible except by resetting the printer, since the user is highly advised to inspect the board for problems before attempting to continue. --- Firmware/Configuration_adv.h | 4 + Firmware/temperature.cpp | 87 ++++++++++++++++++- Firmware/thermistortables.h | 2 + .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 2 + .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 2 + 5 files changed, 95 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 5386c2815..f206c43c2 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -436,6 +436,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st #undef BED_MINTEMP #undef BED_MAXTEMP #endif +#if TEMP_SENSOR_AMBIENT == 0 + #undef AMBIENT_MINTEMP + #undef AMBIENT_MAXTEMP +#endif #endif //__CONFIGURATION_ADV_H diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 7f293f2ed..75d52817e 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -180,6 +180,12 @@ static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; #ifdef BED_MAXTEMP static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; #endif +#ifdef AMBIENT_MINTEMP +static int ambient_minttemp_raw = AMBIENT_RAW_LO_TEMP; +#endif +#ifdef AMBIENT_MAXTEMP +static int ambient_maxttemp_raw = AMBIENT_RAW_HI_TEMP; +#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 ); @@ -1183,6 +1189,25 @@ void tp_init() #endif } #endif //BED_MAXTEMP + +#ifdef AMBIENT_MINTEMP + while(analog2tempAmbient(ambient_minttemp_raw) < AMBIENT_MINTEMP) { +#if HEATER_AMBIENT_RAW_LO_TEMP < HEATER_AMBIENT_RAW_HI_TEMP + ambient_minttemp_raw += OVERSAMPLENR; +#else + ambient_minttemp_raw -= OVERSAMPLENR; +#endif + } +#endif //AMBIENT_MINTEMP +#ifdef AMBIENT_MAXTEMP + while(analog2tempAmbient(ambient_maxttemp_raw) > AMBIENT_MAXTEMP) { +#if HEATER_AMBIENT_RAW_LO_TEMP < HEATER_AMBIENT_RAW_HI_TEMP + ambient_maxttemp_raw -= OVERSAMPLENR; +#else + ambient_maxttemp_raw += OVERSAMPLENR; +#endif + } +#endif //AMBIENT_MAXTEMP } #if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) @@ -1509,6 +1534,35 @@ void bed_min_temp_error(void) { #endif } + +#ifdef AMBIENT_THERMISTOR +void ambient_max_temp_error(void) { + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP AMBIENT triggered !"); + LCD_ALERTMESSAGEPGM("Err: MAXTEMP AMBIENT"); + } +#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); +#endif +} + +void ambient_min_temp_error(void) { +#ifdef DEBUG_DISABLE_MINTEMP + return; +#endif + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP AMBIENT triggered !"); + LCD_ALERTMESSAGEPGM("Err: MINTEMP AMBIENT"); + } +#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); +#endif +} +#endif + + #ifdef HEATER_0_USES_MAX6675 #define MAX6675_HEAT_INTERVAL 250 long max6675_previous_millis = MAX6675_HEAT_INTERVAL; @@ -1994,7 +2048,16 @@ void check_max_temp() bed_max_temp_error(); } #endif - +//ambient +#if defined(AMBIENT_MAXTEMP) && (TEMP_SENSOR_AMBIENT != 0) +#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP + if (current_temperature_raw_ambient <= ambient_maxttemp_raw) { +#else + if (current_temperature_raw_ambient >= ambient_maxttemp_raw) { +#endif + ambient_max_temp_error(); + } +#endif } //! number of repeating the same state with consecutive step() calls //! used to slow down text switching @@ -2089,12 +2152,32 @@ void check_min_temp_bed() } } +#ifdef AMBIENT_MINTEMP +void check_min_temp_ambient() +{ +#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP + if (current_temperature_raw_ambient >= ambient_minttemp_raw) { +#else + if (current_temperature_raw_ambient <= ambient_minttemp_raw) { +#endif + ambient_min_temp_error(); + } +} +#endif + void check_min_temp() { static bool bCheckingOnHeater=false; // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over heaterMintemp) static bool bCheckingOnBed=false; // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over bedMintemp) #ifdef AMBIENT_THERMISTOR -if(current_temperature_raw_ambient>(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) // thermistor is NTC type, so operator is ">" ;-) +#ifdef AMBIENT_MINTEMP +check_min_temp_ambient(); +#endif +#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP +if(current_temperature_raw_ambient>(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) // thermistor is NTC type +#else +if(current_temperature_raw_ambient=<(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) +#endif { // ambient temperature is low #endif //AMBIENT_THERMISTOR // *** 'common' part of code for MK2.5 & MK3 diff --git a/Firmware/thermistortables.h b/Firmware/thermistortables.h index dc934ccfd..721c6b359 100644 --- a/Firmware/thermistortables.h +++ b/Firmware/thermistortables.h @@ -1213,6 +1213,8 @@ const short temptable_1047[][2] PROGMEM = { #endif #if (THERMISTORAMBIENT == 2000) //100k thermistor NTCG104LH104JT1 +# define AMBIENT_RAW_HI_TEMP 0 +# define AMBIENT_RAW_LO_TEMP 16383 const short temptable_2000[][2] PROGMEM = { // Source: https://product.tdk.com/info/en/catalog/datasheets/503021/tpd_ntc-thermistor_ntcg_en.pdf // Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index b135d8d13..04b4c5266 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -296,6 +296,7 @@ #endif #define DETECT_SUPERPINDA #define PINDA_MINTEMP BED_MINTEMP +#define AMBIENT_MINTEMP -30 // Maxtemps #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) @@ -306,6 +307,7 @@ #define HEATER_1_MAXTEMP 305 #define HEATER_2_MAXTEMP 305 #define BED_MAXTEMP 125 +#define AMBIENT_MAXTEMP 100 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) // Define PID constants for extruder with PT100 diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index e618c54ef..c869ec517 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -298,6 +298,7 @@ #endif #define DETECT_SUPERPINDA #define PINDA_MINTEMP BED_MINTEMP +#define AMBIENT_MINTEMP -30 // Maxtemps #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) @@ -308,6 +309,7 @@ #define HEATER_1_MAXTEMP 305 #define HEATER_2_MAXTEMP 305 #define BED_MAXTEMP 125 +#define AMBIENT_MAXTEMP 100 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP) // Define PID constants for extruder with PT100 From e1c79c342d75191ea759bfbecba00d9a907df7e0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 30 Jul 2020 17:14:13 +0200 Subject: [PATCH 340/361] Re-introduce redundant disable_heaters() calls Partially revert 285b505c73a54e9af01816e3a614de73ad181851 so that we ensure heaters are disabled ASAP in case of potential bugs in the max_*_error functions. --- Firmware/temperature.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 75d52817e..f9fa48fff 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1452,6 +1452,7 @@ enum { LCDALERT_NONE = 0, LCDALERT_HEATERMINTEMP, LCDALERT_BEDMINTEMP, LCDALERT_ uint8_t last_alert_sent_to_lcd = LCDALERT_NONE; void max_temp_error(uint8_t e) { + disable_heater(); if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLN((int)e); @@ -1479,6 +1480,7 @@ void min_temp_error(uint8_t e) { #ifdef DEBUG_DISABLE_MINTEMP return; #endif + disable_heater(); //if (current_temperature_ambient < MINTEMP_MINAMBIENT) return; static const char err[] PROGMEM = "Err: MINTEMP"; if(IsStopped() == false) { @@ -1504,6 +1506,7 @@ void min_temp_error(uint8_t e) { } void bed_max_temp_error(void) { + disable_heater(); if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP BED triggered !"); @@ -1518,7 +1521,8 @@ void bed_min_temp_error(void) { #ifdef DEBUG_DISABLE_MINTEMP return; #endif - static const char err[] PROGMEM = "Err: MINTEMP BED"; + disable_heater(); + static const char err[] PROGMEM = "MINTEMP BED"; if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP BED triggered !"); @@ -1537,6 +1541,7 @@ void bed_min_temp_error(void) { #ifdef AMBIENT_THERMISTOR void ambient_max_temp_error(void) { + disable_heater(); if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP AMBIENT triggered !"); @@ -1551,6 +1556,7 @@ void ambient_min_temp_error(void) { #ifdef DEBUG_DISABLE_MINTEMP return; #endif + disable_heater(); if(IsStopped() == false) { SERIAL_ERROR_START; SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP AMBIENT triggered !"); From a8ce9358e55f509f7efde3905261fa702d0cbc5a Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 31 Jul 2020 20:19:51 +0200 Subject: [PATCH 341/361] Avoid redundant temperature error strings Factor-out MIN/MAXTEMP [BED/AMB] out of the error message, which is now built at runtime instead. Introduce two missing ultralcd functions lcd_setalertstatus and lcd_updatestatus to handle regular strings. 246272 -> 246084 = 188 bytes saved --- Firmware/temperature.cpp | 64 +++++++++++++++++++++++++--------------- Firmware/ultralcd.cpp | 22 ++++++++++++-- Firmware/ultralcd.h | 2 ++ 3 files changed, 63 insertions(+), 25 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index f9fa48fff..657b23fbc 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1451,13 +1451,42 @@ enum { LCDALERT_NONE = 0, LCDALERT_HEATERMINTEMP, LCDALERT_BEDMINTEMP, LCDALERT_ //! to prevent flicker and improve speed uint8_t last_alert_sent_to_lcd = LCDALERT_NONE; + +//! update the current temperature error message +//! @param type short error abbreviation (PROGMEM) +//! @param func optional lcd update function (lcd_setalertstatus when first setting the error) +void temp_update_messagepgm(const char* PROGMEM type, void (*func)(const char*) = lcd_updatestatus) +{ + char msg[LCD_WIDTH]; + strcpy_P(msg, PSTR("Err: ")); + strcat_P(msg, type); + (*func)(msg); +} + +//! signal a temperature error on both the lcd and serial +//! @param type short error abbreviation (PROGMEM) +//! @param e optional extruder index for hotend errors +void temp_error_messagepgm(const char* PROGMEM type, uint8_t e = EXTRUDERS) +{ + temp_update_messagepgm(type, lcd_setalertstatus); + + SERIAL_ERROR_START; + + if(e != EXTRUDERS) { + SERIAL_ERROR((int)e); + SERIAL_ERRORPGM(": "); + } + + SERIAL_ERRORPGM("Heaters switched off. "); + SERIAL_ERRORRPGM(type); + SERIAL_ERRORLNPGM(" triggered!"); +} + + void max_temp_error(uint8_t e) { disable_heater(); if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Heaters switched off. MAXTEMP triggered !"); - LCD_ALERTMESSAGEPGM("Err: MAXTEMP"); + temp_error_messagepgm(PSTR("MAXTEMP"), e); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); @@ -1482,16 +1511,13 @@ void min_temp_error(uint8_t e) { #endif disable_heater(); //if (current_temperature_ambient < MINTEMP_MINAMBIENT) return; - static const char err[] PROGMEM = "Err: MINTEMP"; + static const char err[] PROGMEM = "MINTEMP"; if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Heaters switched off. MINTEMP triggered !"); - lcd_setalertstatuspgm(err); + temp_error_messagepgm(err, e); last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP; } else if( last_alert_sent_to_lcd != LCDALERT_HEATERMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time) // we are already stopped due to some error, only update the status message without flickering - lcd_updatestatuspgm(err); + temp_update_messagepgm(err); last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP; } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE @@ -1508,9 +1534,7 @@ void min_temp_error(uint8_t e) { void bed_max_temp_error(void) { disable_heater(); if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP BED triggered !"); - LCD_ALERTMESSAGEPGM("Err: MAXTEMP BED"); + temp_error_messagepgm(PSTR("MAXTEMP BED")); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); @@ -1524,13 +1548,11 @@ void bed_min_temp_error(void) { disable_heater(); static const char err[] PROGMEM = "MINTEMP BED"; if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP BED triggered !"); - lcd_setalertstatuspgm(err); + temp_error_messagepgm(err); last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP; } else if( last_alert_sent_to_lcd != LCDALERT_BEDMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time) // we are already stopped due to some error, only update the status message without flickering - lcd_updatestatuspgm(err); + temp_update_messagepgm(err); last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP; } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE @@ -1543,9 +1565,7 @@ void bed_min_temp_error(void) { void ambient_max_temp_error(void) { disable_heater(); if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Heaters switched off. MAXTEMP AMBIENT triggered !"); - LCD_ALERTMESSAGEPGM("Err: MAXTEMP AMBIENT"); + temp_error_messagepgm(PSTR("MAXTEMP AMB")); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); @@ -1558,9 +1578,7 @@ void ambient_min_temp_error(void) { #endif disable_heater(); if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Heaters switched off. MINTEMP AMBIENT triggered !"); - LCD_ALERTMESSAGEPGM("Err: MINTEMP AMBIENT"); + temp_error_messagepgm(PSTR("MINTEMP AMB")); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE Stop(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 87266914f..a08f8a365 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8951,13 +8951,14 @@ void lcd_finishstatus() { lcd_draw_update = 2; } + void lcd_setstatus(const char* message) { if (lcd_status_message_level > 0) return; - strncpy(lcd_status_message, message, LCD_WIDTH); - lcd_finishstatus(); + lcd_updatestatus(message); } + void lcd_updatestatuspgm(const char *message){ strncpy_P(lcd_status_message, message, LCD_WIDTH); lcd_status_message[LCD_WIDTH] = 0; @@ -8972,12 +8973,29 @@ void lcd_setstatuspgm(const char* message) return; lcd_updatestatuspgm(message); } + +void lcd_updatestatus(const char *message){ + strncpy(lcd_status_message, message, LCD_WIDTH); + lcd_status_message[LCD_WIDTH] = 0; + lcd_finishstatus(); + // hack lcd_draw_update to 1, i.e. without clear + lcd_draw_update = 1; +} + void lcd_setalertstatuspgm(const char* message) { lcd_setstatuspgm(message); lcd_status_message_level = 1; lcd_return_to_status(); } + +void lcd_setalertstatus(const char* message) +{ + lcd_setstatus(message); + lcd_status_message_level = 1; + lcd_return_to_status(); +} + void lcd_reset_alert_level() { lcd_status_message_level = 0; diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 844c7c7d3..a5f07673f 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -23,9 +23,11 @@ void lcd_setstatuspgm(const char* message); //! - always returns the display to the main status screen //! - always makes lcd_reset (which is slow and causes flicker) //! - does not update the message if there is already one (i.e. lcd_status_message_level > 0) +void lcd_setalertstatus(const char* message); void lcd_setalertstatuspgm(const char* message); //! only update the alert message on the main status screen //! has no sideeffects, may be called multiple times +void lcd_updatestatus(const char *message); void lcd_updatestatuspgm(const char *message); void lcd_reset_alert_level(); From ae0d8082de01fe38dee9ebf3b7343c1e4a1a93a2 Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Mon, 3 Aug 2020 09:00:36 +0200 Subject: [PATCH 342/361] Update README.md Fix small typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fb1c79689..7aa50c4aa 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ Example: `ninja` -## Runing +## Running `./tests` # 4. Documentation From 12be141188c3511e13978d366164c3afcb0c04b8 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sat, 6 Jun 2020 19:32:48 +0300 Subject: [PATCH 343/361] Fix high speed deceleration --- Firmware/planner.h | 9 ++++----- Firmware/stepper.cpp | 13 ++++++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Firmware/planner.h b/Firmware/planner.h index 2096111ea..5978793be 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -77,8 +77,8 @@ typedef struct { unsigned char direction_bits; // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h) unsigned char active_extruder; // Selects the active extruder // accelerate_until and decelerate_after are set by calculate_trapezoid_for_block() and they need to be synchronized with the stepper interrupt controller. - long accelerate_until; // The index of the step event on which to stop acceleration - long decelerate_after; // The index of the step event on which to start decelerating + uint32_t accelerate_until; // The index of the step event on which to stop acceleration + uint32_t decelerate_after; // The index of the step event on which to start decelerating // Fields used by the motion planner to manage acceleration // float speed_x, speed_y, speed_z, speed_e; // Nominal mm/sec for each axis @@ -100,13 +100,12 @@ typedef struct { // Settings for the trapezoid generator (runs inside an interrupt handler). // Changing the following values in the planner needs to be synchronized with the interrupt handler by disabling the interrupts. - //FIXME nominal_rate, initial_rate and final_rate are limited to uint16_t by MultiU24X24toH16 in the stepper interrupt anyway! unsigned long nominal_rate; // The nominal step rate for this block in step_events/sec unsigned long initial_rate; // The jerk-adjusted step rate at start of block unsigned long final_rate; // The minimal rate at exit unsigned long acceleration_st; // acceleration steps/sec^2 - //FIXME does it have to be unsigned long? Probably uint8_t would be just fine. - unsigned long fan_speed; + //FIXME does it have to be int? Probably uint8_t would be just fine. Need to change in other places as well + int fan_speed; volatile char busy; diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index de250ec97..5f72b5bd2 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -71,8 +71,7 @@ static dda_isteps_t counter_z, counter_e; volatile dda_usteps_t step_events_completed; // The number of step events executed in the current block -static int32_t acceleration_time, deceleration_time; -//static unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate; +static uint32_t acceleration_time, deceleration_time; static uint16_t acc_step_rate; // needed for deccelaration start point static uint8_t step_loops; static uint16_t OCR1A_nominal; @@ -799,7 +798,7 @@ FORCE_INLINE void isr() { // 25.12us for acceleration / deceleration. { //WRITE_NC(LOGIC_ANALYZER_CH1, true); - if (step_events_completed.wide <= (unsigned long int)current_block->accelerate_until) { + if (step_events_completed.wide <= current_block->accelerate_until) { // v = t * a -> acc_step_rate = acceleration_time * current_block->acceleration_rate MultiU24X24toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate); acc_step_rate += uint16_t(current_block->initial_rate); @@ -817,12 +816,12 @@ FORCE_INLINE void isr() { } #endif } - else if (step_events_completed.wide > (unsigned long int)current_block->decelerate_after) { + else if (step_events_completed.wide > current_block->decelerate_after) { uint16_t step_rate; MultiU24X24toH16(step_rate, deceleration_time, current_block->acceleration_rate); step_rate = acc_step_rate - step_rate; // Decelerate from aceleration end point. - if ((step_rate & 0x8000) || step_rate < uint16_t(current_block->final_rate)) { - // Result is negative or too small. + if (step_rate < uint16_t(current_block->final_rate)) { + // Result is too small. step_rate = uint16_t(current_block->final_rate); } // Step_rate to timer interval. @@ -832,7 +831,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) { + if (step_events_completed.wide <= current_block->decelerate_after + step_loops) { target_adv_steps = current_block->final_adv_steps; la_state = ADV_INIT | ADV_ACC_VARY; } From 4654283f542f661a872c9d6d4fd6612a4db0e9f8 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Aug 2020 18:16:20 +0200 Subject: [PATCH 344/361] Restore indentation --- Firmware/planner.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/planner.h b/Firmware/planner.h index 5978793be..425ed9b54 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -77,8 +77,8 @@ typedef struct { unsigned char direction_bits; // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h) unsigned char active_extruder; // Selects the active extruder // accelerate_until and decelerate_after are set by calculate_trapezoid_for_block() and they need to be synchronized with the stepper interrupt controller. - uint32_t accelerate_until; // The index of the step event on which to stop acceleration - uint32_t decelerate_after; // The index of the step event on which to start decelerating + uint32_t accelerate_until; // The index of the step event on which to stop acceleration + uint32_t decelerate_after; // The index of the step event on which to start decelerating // Fields used by the motion planner to manage acceleration // float speed_x, speed_y, speed_z, speed_e; // Nominal mm/sec for each axis From 8108d50b59fc13c62b72cba065193928c5b67f33 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Aug 2020 18:42:40 +0200 Subject: [PATCH 345/361] Reintroduce/fix check for step_rate underflow during deceleration Check for negative results and results under the final_rate --- Firmware/stepper.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 5f72b5bd2..848cd3c66 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -819,11 +819,18 @@ FORCE_INLINE void isr() { else if (step_events_completed.wide > current_block->decelerate_after) { uint16_t step_rate; MultiU24X24toH16(step_rate, deceleration_time, current_block->acceleration_rate); - step_rate = acc_step_rate - step_rate; // Decelerate from aceleration end point. - if (step_rate < uint16_t(current_block->final_rate)) { - // Result is too small. - step_rate = uint16_t(current_block->final_rate); + + if (step_rate > acc_step_rate) { // Check step_rate stays positive + step_rate = uint16_t(current_block->final_rate); } + else { + step_rate = acc_step_rate - step_rate; // Decelerate from acceleration end point. + + // lower limit + if (step_rate < current_block->final_rate) + step_rate = uint16_t(current_block->final_rate); + } + // Step_rate to timer interval. uint16_t timer = calc_timer(step_rate, step_loops); _NEXT_ISR(timer); From aebaca5cdc35c129c9e41acb3a8f08ef483ba3f8 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Aug 2020 18:48:53 +0200 Subject: [PATCH 346/361] Correct comments regarding acceleration ramp Backport fixes from upstream Marlin --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 848cd3c66..ef57ec0db 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -233,7 +233,7 @@ void invert_z_endstop(bool endstop_invert) // The trapezoid is the shape the speed curve over time. It starts at block->initial_rate, accelerates // first block->accelerate_until step_events_completed, then keeps going at constant speed until // 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. +// The slope of acceleration is calculated using v = u + at where t is the accumulated timer values of the steps so far. // "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. From 30a806608fca111cab82f7ac07c2804abf8f8225 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Aug 2020 19:01:38 +0200 Subject: [PATCH 347/361] Also convert acceleration_rate to uint32_t acceleration_rate is also unsigned --- Firmware/planner.cpp | 2 +- Firmware/planner.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index c0f465c2a..9ff291a0c 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1132,7 +1132,7 @@ Having the real displacement of the head, we can calculate the total movement le block->acceleration_st = (block->acceleration_st + (bresenham_oversample >> 1)) / bresenham_oversample; #endif - block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); + block->acceleration_rate = ((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); #ifdef LIN_ADVANCE if (block->use_advance_lead) { diff --git a/Firmware/planner.h b/Firmware/planner.h index 425ed9b54..34899cac4 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -73,7 +73,7 @@ typedef struct { // steps_x.y,z, step_event_count, acceleration_rate, direction_bits and active_extruder are set by plan_buffer_line(). dda_isteps_t steps_x, steps_y, steps_z, steps_e; // Step count along each axis dda_usteps_t step_event_count; // The number of step events required to complete this block - long acceleration_rate; // The acceleration rate used for acceleration calculation + uint32_t acceleration_rate; // The acceleration rate used for acceleration calculation unsigned char direction_bits; // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h) unsigned char active_extruder; // Selects the active extruder // accelerate_until and decelerate_after are set by calculate_trapezoid_for_block() and they need to be synchronized with the stepper interrupt controller. From b8e8f182ca6ffba4b565e6b600df212381c808c5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Aug 2020 19:03:13 +0200 Subject: [PATCH 348/361] Add reference C implementations for MultiU16X8toH16/MultiU24X24toH16 Higher step counts might still overflow the ASM MultiU24X24toH16. https://github.com/MarlinFirmware/Marlin/commit/e4595fa24a2051e95df8a4ed044d2c94cca18e63 --- Firmware/speed_lookuptable.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Firmware/speed_lookuptable.h b/Firmware/speed_lookuptable.h index 2748dd71a..21c6c767f 100644 --- a/Firmware/speed_lookuptable.h +++ b/Firmware/speed_lookuptable.h @@ -80,15 +80,21 @@ asm volatile ( \ #else //_NO_ASM -// 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); +static inline void MultiU16X8toH16(uint16_t& intRes, uint8_t& charIn1, uint16_t& intIn2) +{ + intRes = ((uint32_t)charIn1 * (uint32_t)intIn2) >> 16; +} + +static inline void MultiU24X24toH16(uint16_t& intRes, uint32_t& longIn1, uint32_t& longIn2) +{ + intRes = ((uint64_t)longIn1 * (uint64_t)longIn2) >> 24; +} #endif //_NO_ASM FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops) { - unsigned short timer; + uint16_t timer; if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY; if(step_rate > 20000) { // If steprate > 20kHz >> step 4 times @@ -108,7 +114,7 @@ FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops) 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); + uint16_t gain = (uint16_t)pgm_read_word_near(table_address+2); MultiU16X8toH16(timer, tmp_step_rate, gain); timer = (unsigned short)pgm_read_word_near(table_address) - timer; } From e0bf92cd4e7b98fe0628c8584a8f263aadf0405b Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 4 Aug 2020 09:54:57 +0300 Subject: [PATCH 349/361] Change bool literal to int --- Firmware/temperature.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 084ed2720..854a884aa 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1377,7 +1377,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed) SERIAL_ERROR_START; isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = true; //full speed + altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); SET_OUTPUT(FAN_PIN); @@ -1467,7 +1467,7 @@ void max_temp_error(uint8_t e) { WRITE(FAN_PIN, 1); WRITE(BEEPER, 1); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = true; //full speed + altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); // fanSpeed will consumed by the check_axes_activity() routine. From 654a3a0d7942c03107f293fde033ef502d9601d4 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 4 Aug 2020 10:43:30 +0300 Subject: [PATCH 350/361] Other requested changes --- Firmware/temperature.cpp | 32 ++++++++++++++++++-------------- Firmware/ultralcd.cpp | 2 +- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 854a884aa..f08c682aa 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -152,8 +152,11 @@ uint8_t fanSpeedBckp = 255; bool fan_measuring = false; uint8_t fanState = 0; #ifdef EXTRUDER_ALTFAN_DETECT - bool extruderFanIsAltfan = false; //set to Noctua - uint8_t altfanOverride = 0; + struct + { + uint8_t isAltfan : 1; + uint8_t altfanOverride : 1; + } altfanStatus; #endif //EXTRUDER_ALTFAN_DETECT #endif @@ -226,12 +229,13 @@ bool extruder_altfan_detect() SET_INPUT(TACH_0); - altfanOverride = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); - if (altfanOverride == EEPROM_EMPTY_VALUE) + uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); + if (overrideVal == EEPROM_EMPTY_VALUE) { - altfanOverride = 0; - eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); + overrideVal = 0; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal); } + altfanStatus.altfanOverride = overrideVal; CRITICAL_SECTION_START; EICRB &= ~(1 << ISC61); @@ -246,20 +250,20 @@ bool extruder_altfan_detect() EIMSK &= ~(1 << INT6); countFanSpeed(); - extruderFanIsAltfan = fan_speed[0] > 100; + altfanStatus.isAltfan = fan_speed[0] > 100; setExtruderAutoFanState(1); - return extruderFanIsAltfan; + return altfanStatus.isAltfan; } void altfanOverride_toggle() { - altfanOverride = !altfanOverride; - eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); + altfanStatus.altfanOverride = !altfanStatus.altfanOverride; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanStatus.altfanOverride); } bool altfanOverride_get() { - return altfanOverride; + return altfanStatus.altfanOverride; } #endif //EXTRUDER_ALTFAN_DETECT @@ -515,7 +519,7 @@ void setExtruderAutoFanState(uint8_t state) if (fanState & 0x01) { #ifdef EXTRUDER_ALTFAN_DETECT - if (extruderFanIsAltfan && !altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; + if (altfanStatus.isAltfan && !altfanStatus.altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; else newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; #else //EXTRUDER_ALTFAN_DETECT newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; @@ -1377,7 +1381,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed) SERIAL_ERROR_START; isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = 1; //full speed + altfanStatus.altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); SET_OUTPUT(FAN_PIN); @@ -1467,7 +1471,7 @@ void max_temp_error(uint8_t e) { WRITE(FAN_PIN, 1); WRITE(BEEPER, 1); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = 1; //full speed + altfanStatus.altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); // fanSpeed will consumed by the check_axes_activity() routine. diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c2a3a8907..3207389d9 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2116,7 +2116,7 @@ static void lcd_support_menu() bool is_flash_air; // 1byte uint8_t ip[4]; // 4bytes char ip_str[3*4+3+1]; // 16bytes - uint8_t experimental_menu_visibility; //1byte + uint8_t experimental_menu_visibility; // 1byte } _menu_data_t; static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]); From a2c7dcbbf8484450614abf0c59c63b5494fa0442 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 4 Aug 2020 13:14:35 +0200 Subject: [PATCH 351/361] Fix indentation --- Firmware/temperature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 657b23fbc..2d09f8e0f 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1546,7 +1546,7 @@ void bed_min_temp_error(void) { return; #endif disable_heater(); - static const char err[] PROGMEM = "MINTEMP BED"; + static const char err[] PROGMEM = "MINTEMP BED"; if(IsStopped() == false) { temp_error_messagepgm(err); last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP; From b3af08d94ad77a2ae8912149f2875f7a136b452a Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Aug 2020 17:04:11 +0200 Subject: [PATCH 352/361] Fix stack smashing in temperature/fsensor ISR The temperature and fsensor ISR re-enable interrupts while executing. However, we still need to protect the epilogue of the ISR so that the saved return address is not altered while returning. We hoist the body of the function out of the isr in both cases for clarity (and to avoid a stray return bypassing the lock/cli), so that the re-entrant portion is clearly indicated. This should fix the "STATIC MEMORY OVERWRITTEN" error messages randomly happening when stepping at high frequency (where either isr is preempted more frequently). --- Firmware/fsensor.cpp | 40 +++++++++++++++++++++++----------------- Firmware/temperature.cpp | 30 ++++++++++++++++++------------ 2 files changed, 41 insertions(+), 29 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 2753ede00..7908c5dbc 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -478,22 +478,8 @@ bool fsensor_oq_result(void) } #endif //FSENSOR_QUALITY -ISR(FSENSOR_INT_PIN_VECT) +FORCE_INLINE static void fsensor_isr(int st_cnt) { - if (mmu_enabled || ir_sensor_detected) return; - if (!((fsensor_int_pin_old ^ FSENSOR_INT_PIN_PIN_REG) & FSENSOR_INT_PIN_MASK)) return; - fsensor_int_pin_old = FSENSOR_INT_PIN_PIN_REG; - - // prevent isr re-entry - static bool _lock = false; - if (_lock) return; - _lock = true; - - // fetch fsensor_st_cnt atomically - int st_cnt = fsensor_st_cnt; - fsensor_st_cnt = 0; - sei(); - uint8_t old_err_cnt = fsensor_err_cnt; uint8_t pat9125_res = fsensor_oq_meassure?pat9125_update():pat9125_update_y(); if (!pat9125_res) @@ -578,8 +564,28 @@ ISR(FSENSOR_INT_PIN_VECT) #endif //DEBUG_FSENSOR_LOG pat9125_y = 0; - _lock = false; - return; +} + +ISR(FSENSOR_INT_PIN_VECT) +{ + if (mmu_enabled || ir_sensor_detected) return; + if (!((fsensor_int_pin_old ^ FSENSOR_INT_PIN_PIN_REG) & FSENSOR_INT_PIN_MASK)) return; + fsensor_int_pin_old = FSENSOR_INT_PIN_PIN_REG; + + // prevent isr re-entry + static bool _lock = false; + if (!_lock) + { + // fetch fsensor_st_cnt atomically + int st_cnt = fsensor_st_cnt; + fsensor_st_cnt = 0; + + _lock = true; + sei(); + fsensor_isr(st_cnt); + cli(); + _lock = false; + } } void fsensor_setup_interrupt(void) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 6e9b6985a..d98a3c5ee 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1606,18 +1606,8 @@ void adc_ready(void) //callback from adc when sampling finished } // extern "C" -// Timer2 (originaly timer0) is shared with millies -#ifdef SYSTEM_TIMER_2 -ISR(TIMER2_COMPB_vect) -#else //SYSTEM_TIMER_2 -ISR(TIMER0_COMPB_vect) -#endif //SYSTEM_TIMER_2 +FORCE_INLINE static void temperature_isr() { - static bool _lock = false; - if (_lock) return; - _lock = true; - asm("sei"); - if (!temp_meas_ready) adc_cycle(); lcd_buttons_update(); @@ -1983,8 +1973,24 @@ ISR(TIMER0_COMPB_vect) #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 > -1)) check_fans(); #endif //(defined(TACH_0)) +} - _lock = false; +// Timer2 (originaly timer0) is shared with millies +#ifdef SYSTEM_TIMER_2 +ISR(TIMER2_COMPB_vect) +#else //SYSTEM_TIMER_2 +ISR(TIMER0_COMPB_vect) +#endif //SYSTEM_TIMER_2 +{ + static bool _lock = false; + if (!_lock) + { + _lock = true; + sei(); + temperature_isr(); + cli(); + _lock = false; + } } void check_max_temp() From f1a8657093f563be694c6fd832da577c7d51cb00 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 6 Aug 2020 12:20:38 +0300 Subject: [PATCH 353/361] Minor documentation fixes Add even more comments a --- Firmware/eeprom.h | 4 ++-- Firmware/ultralcd.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index ee7fa39ef..b8bec384c 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -359,8 +359,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ | 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 -| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | 0-1 | 00h | ALTFAN override | LCD menu | D3 Ax0d2b C1 -| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | 0-1 | 00h | Experimental menu visibility | LCD menu | D3 Ax0d2a C1 +| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | 0-1 | 00h 0 | ALTFAN override | LCD menu | D3 Ax0d2b C1 +| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | 0-1 | 00h 0 | Experimental menu visibility | LCD menu | D3 Ax0d2a C1 | Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 3207389d9..683786980 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2098,7 +2098,7 @@ static void lcd_preheat_menu() //! @endcode //! //! -//! | Experimental | c=18 r=1 +//! | Experimental | c=18 //! //! //! If DEBUG_BUILD is defined @@ -2224,7 +2224,7 @@ static void lcd_support_menu() if (_md->experimental_menu_visibility) { - MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu); + MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18 } @@ -9202,7 +9202,7 @@ void lcd_experimental_menu() MENU_ITEM_BACK_P(_T(MSG_BACK)); #ifdef EXTRUDER_ALTFAN_DETECT - MENU_ITEM_TOGGLE_P(_N("ALTFAN det."), altfanOverride_get()?_T(MSG_OFF):_T(MSG_ON), altfanOverride_toggle); + MENU_ITEM_TOGGLE_P(_N("ALTFAN det."), altfanOverride_get()?_T(MSG_OFF):_T(MSG_ON), altfanOverride_toggle);////MSG_MENU_ALTFAN c=18 #endif //EXTRUDER_ALTFAN_DETECT MENU_END(); From 96435ad0849cb44a632afb64f69de945e2c4e71e Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 12 Aug 2020 08:48:12 +0300 Subject: [PATCH 354/361] Move experimental menu to HW setup --- Firmware/ultralcd.cpp | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 683786980..c4b287368 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2096,9 +2096,6 @@ static void lcd_preheat_menu() //! @code{.unparsed} //! | Voltages | MSG_MENU_VOLTAGES //! @endcode -//! -//! -//! | Experimental | c=18 //! //! //! If DEBUG_BUILD is defined @@ -2111,12 +2108,11 @@ static void lcd_preheat_menu() static void lcd_support_menu() { typedef struct - { // 23bytes total + { // 22bytes total int8_t status; // 1byte bool is_flash_air; // 1byte uint8_t ip[4]; // 4bytes char ip_str[3*4+3+1]; // 16bytes - uint8_t experimental_menu_visibility; // 1byte } _menu_data_t; static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]); @@ -2131,13 +2127,6 @@ static void lcd_support_menu() _md->ip[0], _md->ip[1], _md->ip[2], _md->ip[3]); - _md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY); - if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE) - { - _md->experimental_menu_visibility = 0; - eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility); - } - } else if (_md->is_flash_air && _md->ip[0] == 0 && _md->ip[1] == 0 && _md->ip[2] == 0 && _md->ip[3] == 0 && @@ -2222,11 +2211,6 @@ static void lcd_support_menu() MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1 #endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN - if (_md->experimental_menu_visibility) - { - MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18 - } - #ifdef DEBUG_BUILD MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1 @@ -5730,6 +5714,25 @@ static void sheets_menu() void lcd_hw_setup_menu(void) // can not be "static" { + typedef struct + {// 2bytes total + int8_t status; + uint8_t experimental_menu_visibility; + } _menu_data_t; + static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); + _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]); + + if (_md->status == 0 || lcd_draw_update) + { + _md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY); + if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE) + { + _md->experimental_menu_visibility = 0; + eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility); + } + } + + MENU_BEGIN(); MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch @@ -5743,6 +5746,12 @@ void lcd_hw_setup_menu(void) // can not be "static" //! @todo Don't forget to remove this as soon Fsensor Detection works with mmu if(!mmu_enabled) MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor); #endif //IR_SENSOR_ANALOG + + if (_md->experimental_menu_visibility) + { + MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18 + } + MENU_END(); } From 6b853a4cc335d513a949b3530662e8fa5575bdf8 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 12 Aug 2020 12:19:08 +0300 Subject: [PATCH 355/361] Auto-detect ALTFAN after fw. update --- Firmware/temperature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index f08c682aa..f01fbab28 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -232,7 +232,7 @@ bool extruder_altfan_detect() uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); if (overrideVal == EEPROM_EMPTY_VALUE) { - overrideVal = 0; + overrideVal = (calibration_status() == CALIBRATION_STATUS_CALIBRATED) ? 1 : 0; eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal); } altfanStatus.altfanOverride = overrideVal; From 5530b99882c90bbc67b69eb18d64743abf4643ab Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 12 Aug 2020 12:46:35 +0300 Subject: [PATCH 356/361] Reboot after factory reset --- Firmware/Dcodes.cpp | 13 ++++--------- Firmware/Marlin.h | 2 ++ Firmware/Marlin_main.cpp | 11 ++++++++--- Firmware/bootapp.c | 8 ++++---- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 1f902c5ee..85d780011 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -226,9 +226,7 @@ void dcode_0() LOG("D0 - Reset\n"); if (code_seen('B')) //bootloader { - cli(); - wdt_enable(WDTO_15MS); - while(1); + softReset(); } else //reset { @@ -252,8 +250,7 @@ void dcode_1() cli(); for (int i = 0; i < 8192; i++) eeprom_write_byte((unsigned char*)i, (unsigned char)0xff); - wdt_enable(WDTO_15MS); - while(1); + softReset(); } /*! @@ -420,8 +417,7 @@ void dcode_5() boot_dst_addr = (uint32_t)address; boot_src_addr = (uint32_t)(&data); bootapp_print_vars(); - wdt_enable(WDTO_15MS); - while(1); + softReset(); } while (count) { @@ -467,8 +463,7 @@ void dcode_7() boot_copy_size = (uint16_t)0xc00; boot_src_addr = (uint32_t)0x0003e400; boot_dst_addr = (uint32_t)0x0003f400; - wdt_enable(WDTO_15MS); - while(1); + softReset(); */ } diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 5c03552bf..2585d0c86 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -512,4 +512,6 @@ void load_filament_final_feed(); void marlin_wait_for_click(); void raise_z_above(float target, bool plan=true); +void softReset(); + #endif diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 2a261db2a..fa02a9568 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -762,6 +762,7 @@ static void factory_reset(char level) } } + softReset(); break; @@ -3813,9 +3814,7 @@ void process_commands() #if (defined(WATCHDOG) && (MOTHERBOARD == BOARD_EINSY_1_0a)) boot_app_magic = BOOT_APP_MAGIC; boot_app_flags = BOOT_APP_FLG_RUN; - wdt_enable(WDTO_15MS); - cli(); - while(1); + softReset(); #else //WATCHDOG asm volatile("jmp 0x3E000"); #endif //WATCHDOG @@ -11716,6 +11715,12 @@ void disable_force_z() #endif // TMC2130 } +void softReset() +{ + cli(); + wdt_enable(WDTO_15MS); + while(1); +} void enable_force_z() { diff --git a/Firmware/bootapp.c b/Firmware/bootapp.c index 4fd67db2b..c4585af5c 100644 --- a/Firmware/bootapp.c +++ b/Firmware/bootapp.c @@ -9,6 +9,8 @@ extern FILE _uartout; #define uartout (&_uartout) +extern void softReset(); + void bootapp_print_vars(void) { fprintf_P(uartout, PSTR("boot_src_addr =0x%08lx\n"), boot_src_addr); @@ -39,8 +41,7 @@ void bootapp_ram2flash(uint16_t rptr, uint16_t fptr, uint16_t size) boot_src_addr = (uint32_t)rptr; boot_dst_addr = (uint32_t)fptr; bootapp_print_vars(); - wdt_enable(WDTO_15MS); - while(1); + softReset(); } void bootapp_reboot_user0(uint8_t reserved) @@ -50,6 +51,5 @@ void bootapp_reboot_user0(uint8_t reserved) boot_app_flags = BOOT_APP_FLG_USER0; boot_reserved = reserved; bootapp_print_vars(); - wdt_enable(WDTO_15MS); - while(1); + softReset(); } From 8d9dc73d1b8c06a7c7c4f308203227c6ee112bd1 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 12 Aug 2020 17:25:49 +0300 Subject: [PATCH 357/361] Fix compile error fix compile Fix compile error --- Firmware/Dcodes.cpp | 2 +- Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 13 ++++++------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 85d780011..c77cd96e1 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -1,5 +1,5 @@ #include "Dcodes.h" -//#include "Marlin.h" +#include "Marlin.h" #include "Configuration.h" #include "language.h" #include "cmdqueue.h" diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 2585d0c86..3a4b42599 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -512,6 +512,6 @@ void load_filament_final_feed(); void marlin_wait_for_click(); void raise_z_above(float target, bool plan=true); -void softReset(); +extern "C" void softReset(); #endif diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fa02a9568..a83d64b82 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -648,6 +648,12 @@ void failstats_reset_print() #endif } +void softReset() +{ + cli(); + wdt_enable(WDTO_15MS); + while(1); +} #ifdef MESH_BED_LEVELING @@ -11715,13 +11721,6 @@ void disable_force_z() #endif // TMC2130 } -void softReset() -{ - cli(); - wdt_enable(WDTO_15MS); - while(1); -} - void enable_force_z() { if(bEnableForce_z) From 2c2926882a924d1deabaf046f8a9a82eae9f3594 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 18 Aug 2020 19:29:18 +0300 Subject: [PATCH 358/361] Don't switch unnecessarily. Also "\n" the ";S" request --- Firmware/Marlin_main.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 49470ae12..70a8f7e57 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3287,25 +3287,23 @@ void gcode_M701() static void gcode_PRUSA_SN() { uint8_t selectedSerialPort_bak = selectedSerialPort; + char SN[20]; selectedSerialPort = 0; - putchar(';'); - putchar('S'); - int numbersRead = 0; + SERIAL_ECHOLNRPGM(PSTR(";S")); + uint8_t numbersRead = 0; ShortTimer timeout; timeout.start(); - while (numbersRead < 19) { - while (MSerial.available() > 0) { - uint8_t serial_char = MSerial.read(); - selectedSerialPort = selectedSerialPort_bak; - putchar(serial_char); + while (numbersRead < (sizeof(SN) - 1)) { + if (MSerial.available() > 0) { + SN[numbersRead] = MSerial.read(); numbersRead++; - selectedSerialPort = 0; } if (timeout.expired(100u)) break; } + SN[numbersRead] = 0; selectedSerialPort = selectedSerialPort_bak; - putchar('\n'); + SERIAL_ECHOLN(SN); } //! Detection of faulty RAMBo 1.1b boards equipped with bigger capacitors //! at the TACH_1 pin, which causes bad detection of print fan speed. From 90c36a588746e2d53c9d41acc6a8de08ecb57c27 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 20 Aug 2020 15:14:39 +0200 Subject: [PATCH 359/361] Update ALTFAN eeprom documentation EEPROM_ALTFAN_OVERRIDE and EEPROM_EXPERIMENTAL_VISIBILITY are compared to 0xFF in the code that's why I keep the uint8. --- Firmware/eeprom.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index b8bec384c..5cb7ddb85 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -359,8 +359,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^ | 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2 | 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4 -| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | 0-1 | 00h 0 | ALTFAN override | LCD menu | D3 Ax0d2b C1 -| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | 0-1 | 00h 0 | Experimental menu visibility | LCD menu | D3 Ax0d2a C1 +| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | ffh 255 | ffh 255 | ALTFAN override unknown state | LCD menu | D3 Ax0d2b C1 +| ^ | ^ | ^ | 00h 0 | ^ | ALTFAN override deactivated | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | ALTFAN override activated | ^ | ^ +| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | ffh 255 | ffh 255 | Experimental menu visibility unknown state | LCD menu | D3 Ax0d2a C1 +| ^ | ^ | ^ | 00h 0 | ^ | Experimental menu visibility hidden | ^ | ^ +| ^ | ^ | ^ | 01h 1 | ^ | Experimental menu visibility visible | ^ | ^ | Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code From 1659f61dd52ed0be9bc4e825fb10df4414176c2a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 21 Aug 2020 10:51:46 +0300 Subject: [PATCH 360/361] Fix fastio extra parenthesis --- Firmware/fastio.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/fastio.h b/Firmware/fastio.h index e4f25ed8b..acded8cb6 100644 --- a/Firmware/fastio.h +++ b/Firmware/fastio.h @@ -58,7 +58,7 @@ #define _GET_OUTPUT(IO) ((DIO ## IO ## _DDR & MASK(DIO ## IO ## _PIN)) != 0) /// check if pin is an timer -#define _GET_TIMER(IO) ((DIO ## IO ## _PWM) +#define _GET_TIMER(IO) (DIO ## IO ## _PWM) // why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html From 7ac16d5f045aef836a1cf7d36b9f9cfeee45192d Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 7 Sep 2020 19:42:53 +0300 Subject: [PATCH 361/361] Menu view return patch --- Firmware/menu.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index d31dce7ee..3c4e89260 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -48,6 +48,7 @@ void menu_goto(menu_func_t menu, const uint32_t encoder, const bool feedback, bo { menu_menu = menu; lcd_encoder = encoder; + menu_top = 0; //reset menu view. Needed if menu_back() is called from deep inside a menu, such as Support asm("sei"); if (reset_menu_state) {