From 6c28ed6349692f4b35ea358ff7253ef13a621da4 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 21 Mar 2019 22:48:57 +0100 Subject: [PATCH 01/14] Convert lcd_selftest_error() first parameter to enum class. --- Firmware/ultralcd.cpp | 68 ++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index bee46ca21..79f56b705 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -165,7 +165,7 @@ static bool lcd_selfcheck_pulleys(int axis); #endif //TMC2130 static bool lcd_selfcheck_check_heater(bool _isbed); -enum class testScreen +enum class testScreen : uint_least8_t { extruderFan, printFan, @@ -184,6 +184,22 @@ enum class testScreen home, }; +enum class TestError : uint_least8_t +{ + unused, + heater, + bed, + endstops, + motor, + endstop, + printFan, + extruderFan, + pulley, + axis, + swappedFan, + wiringFsensor, +}; + static int lcd_selftest_screen(testScreen screen, int _progress, int _progress_scale, bool _clear, int _delay); static void lcd_selftest_screen_step(int _row, int _col, int _state, const char *_name, const char *_indicator); static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite); @@ -194,7 +210,7 @@ static bool lcd_selftest_fan_dialog(int _fan); static bool lcd_selftest_fsensor(); #endif //PAT9125 static bool selftest_irsensor(); -static void lcd_selftest_error(int _error_no, const char *_error_1, const char *_error_2); +static void lcd_selftest_error(TestError error, const char *_error_1, const char *_error_2); static void lcd_colorprint_change(); #ifdef SNMM static int get_ext_nr(); @@ -7184,7 +7200,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { if (axis == Y_AXIS) _error_1 = "Y"; if (axis == Z_AXIS) _error_1 = "Z"; - lcd_selftest_error(9, _error_1, NULL); + lcd_selftest_error(TestError::axis, _error_1, NULL); 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); @@ -7202,7 +7218,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { if (axis == Y_AXIS) _error_1 = "Y"; if (axis == Z_AXIS) _error_1 = "Z"; - lcd_selftest_error(8, _error_1, NULL); + lcd_selftest_error(TestError::pulley, _error_1, NULL); 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); @@ -7309,11 +7325,11 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) if (_travel_done >= _travel) { - lcd_selftest_error(5, _error_1, _error_2); + lcd_selftest_error(TestError::endstop, _error_1, _error_2); } else { - lcd_selftest_error(4, _error_1, _error_2); + lcd_selftest_error(TestError::motor, _error_1, _error_2); } } @@ -7479,12 +7495,12 @@ static bool lcd_selfcheck_check_heater(bool _isbed) } else { - lcd_selftest_error(1, "", ""); + lcd_selftest_error(TestError::heater, "", ""); } } else { - lcd_selftest_error(2, "", ""); + lcd_selftest_error(TestError::bed, "", ""); } manage_heater(); @@ -7493,7 +7509,7 @@ static bool lcd_selfcheck_check_heater(bool _isbed) return _stepresult; } -static void lcd_selftest_error(int _error_no, const char *_error_1, const char *_error_2) +static void lcd_selftest_error(TestError testError, const char *_error_1, const char *_error_2) { lcd_beeper_quick_feedback(); @@ -7509,21 +7525,21 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(0, 1); lcd_puts_P(_i("Please check :"));////MSG_SELFTEST_PLEASECHECK c=0 r=0 - switch (_error_no) + switch (testError) { - case 1: + case TestError::heater: lcd_set_cursor(0, 2); lcd_puts_P(_i("Heater/Thermistor"));////MSG_SELFTEST_HEATERTHERMISTOR c=0 r=0 lcd_set_cursor(0, 3); lcd_puts_P(_i("Not connected"));////MSG_SELFTEST_NOTCONNECTED c=0 r=0 break; - case 2: + case TestError::bed: lcd_set_cursor(0, 2); lcd_puts_P(_i("Bed / Heater"));////MSG_SELFTEST_BEDHEATER c=0 r=0 lcd_set_cursor(0, 3); lcd_puts_P(_T(MSG_SELFTEST_WIRINGERROR)); break; - case 3: + case TestError::endstops: lcd_set_cursor(0, 2); lcd_puts_P(_i("Endstops"));////MSG_SELFTEST_ENDSTOPS c=0 r=0 lcd_set_cursor(0, 3); @@ -7531,7 +7547,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(17, 3); lcd_print(_error_1); break; - case 4: + case TestError::motor: lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_SELFTEST_MOTOR)); lcd_set_cursor(18, 2); @@ -7541,7 +7557,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_2); break; - case 5: + case TestError::endstop: lcd_set_cursor(0, 2); lcd_puts_P(_i("Endstop not hit"));////MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 lcd_set_cursor(0, 3); @@ -7549,7 +7565,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 6: + case TestError::printFan: lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_SELFTEST_COOLING_FAN)); lcd_set_cursor(0, 3); @@ -7557,7 +7573,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 7: + case TestError::extruderFan: lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_SELFTEST_EXTRUDER_FAN)); lcd_set_cursor(0, 3); @@ -7565,7 +7581,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 8: + case TestError::pulley: lcd_set_cursor(0, 2); lcd_puts_P(_i("Loose pulley"));////MSG_LOOSE_PULLEY c=20 r=1 lcd_set_cursor(0, 3); @@ -7573,7 +7589,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 9: + case TestError::axis: lcd_set_cursor(0, 2); lcd_puts_P(_i("Axis length"));////MSG_SELFTEST_AXIS_LENGTH c=0 r=0 lcd_set_cursor(0, 3); @@ -7581,7 +7597,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 10: + case TestError::swappedFan: lcd_set_cursor(0, 2); lcd_puts_P(_i("Front/left fans"));////MSG_SELFTEST_FANS c=0 r=0 lcd_set_cursor(0, 3); @@ -7589,7 +7605,7 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char * lcd_set_cursor(18, 3); lcd_print(_error_1); break; - case 11: + case TestError::wiringFsensor: lcd_set_cursor(0, 2); lcd_puts_P(_i("Filament sensor"));////MSG_FILAMENT_SENSOR c=20 r=0 lcd_set_cursor(0, 3); @@ -7796,7 +7812,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite) static bool lcd_selftest_fan_dialog(int _fan) { bool _result = true; - int _errno = 7; + TestError testError = TestError::extruderFan; switch (_fan) { case 0: fanSpeed = 0; @@ -7851,7 +7867,7 @@ static bool lcd_selftest_fan_dialog(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[1]) { - _result = false; _errno = 6; //print fan not spinning + _result = false; testError = TestError::printFan; } #ifdef FAN_SOFT_PWM else { @@ -7862,10 +7878,10 @@ static bool lcd_selftest_fan_dialog(int _fan) _result = lcd_selftest_manual_fan_check(1, true); //turn on print fan and check that left extruder fan is not spinning if (_result) { _result = lcd_selftest_manual_fan_check(1, false); //print fan is stil turned on; check that it is spinning - if (!_result) _errno = 6; //print fan not spinning + if (!_result) testError = TestError::printFan; } else { - _errno = 10; //swapped fans + testError = TestError::swappedFan; } } @@ -7877,7 +7893,7 @@ static bool lcd_selftest_fan_dialog(int _fan) } if (!_result) { - lcd_selftest_error(_errno, NULL, NULL); + lcd_selftest_error(testError, NULL, NULL); } return _result; } From ba23b1b2c580d6f86e4f138daeb10820c76021a6 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 21 Mar 2019 22:50:46 +0100 Subject: [PATCH 02/14] Remove unused. --- Firmware/ultralcd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 79f56b705..1729ec583 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -186,7 +186,6 @@ enum class testScreen : uint_least8_t enum class TestError : uint_least8_t { - unused, heater, bed, endstops, From 91779a5d04d6ae1cc6cba582187a116ca30627b6 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 21 Mar 2019 23:36:59 +0100 Subject: [PATCH 03/14] Add filament sensor false triggering message. --- Firmware/messages.c | 1 + Firmware/messages.h | 1 + Firmware/ultralcd.cpp | 18 +++++++++++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 029cf0c6f..faa5283d9 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -78,6 +78,7 @@ const char MSG_SELFTEST_FAN_YES[] PROGMEM_I1 = ISTR("Spinning"); ////c=19 r=0 const char MSG_SELFTEST_CHECK_BED[] PROGMEM_I1 = ISTR("Checking bed "); ////c=20 r=0 const char MSG_SELFTEST_CHECK_FSENSOR[] PROGMEM_I1 = ISTR("Checking sensors "); ////c=20 r=0 const char MSG_SELFTEST_MOTOR[] PROGMEM_I1 = ISTR("Motor"); ////c=0 r=0 +const char MSG_SELFTEST_FILAMENT_SENSOR[] PROGMEM_I1 = ISTR("Filament sensor"); ////c=17 r=0 const char MSG_SELFTEST_WIRINGERROR[] PROGMEM_I1 = ISTR("Wiring error"); ////c=0 r=0 const char MSG_SETTINGS[] PROGMEM_I1 = ISTR("Settings"); ////c=0 r=0 const char MSG_SILENT_MODE_OFF[] PROGMEM_I1 = ISTR("Mode [high power]"); ////c=0 r=0 diff --git a/Firmware/messages.h b/Firmware/messages.h index 5083b26d5..752195e96 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -80,6 +80,7 @@ extern const char MSG_SELFTEST_FAN_YES[]; extern const char MSG_SELFTEST_CHECK_BED[]; extern const char MSG_SELFTEST_CHECK_FSENSOR[]; extern const char MSG_SELFTEST_MOTOR[]; +extern const char MSG_SELFTEST_FILAMENT_SENSOR[]; extern const char MSG_SELFTEST_WIRINGERROR[]; extern const char MSG_SETTINGS[]; extern const char MSG_SILENT_MODE_OFF[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 1729ec583..f5c44db67 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -197,6 +197,7 @@ enum class TestError : uint_least8_t axis, swappedFan, wiringFsensor, + triggeringFsensor, }; static int lcd_selftest_screen(testScreen screen, int _progress, int _progress_scale, bool _clear, int _delay); @@ -7606,10 +7607,16 @@ static void lcd_selftest_error(TestError testError, const char *_error_1, const break; case TestError::wiringFsensor: lcd_set_cursor(0, 2); - lcd_puts_P(_i("Filament sensor"));////MSG_FILAMENT_SENSOR c=20 r=0 + lcd_puts_P(_T(MSG_SELFTEST_FILAMENT_SENSOR)); lcd_set_cursor(0, 3); lcd_puts_P(_T(MSG_SELFTEST_WIRINGERROR)); break; + case TestError::triggeringFsensor: + lcd_set_cursor(0, 2); + lcd_puts_P(_T(MSG_SELFTEST_FILAMENT_SENSOR)); + lcd_set_cursor(0, 3); + lcd_puts_P(_i("False triggering"));////c=20 r=0 + break; } _delay(1000); @@ -7685,7 +7692,11 @@ static bool selftest_irsensor() mmu_load_step(false); while (blocks_queued()) { - if (PIN_GET(IR_SENSOR_PIN) == 0) return false; + if (PIN_GET(IR_SENSOR_PIN) == 0) + { + lcd_selftest_error(TestError::triggeringFsensor, "", ""); + return false; + } #ifdef TMC2130 manage_heater(); // Vojtech: Don't disable motors inside the planner! @@ -7941,7 +7952,8 @@ static int lcd_selftest_screen(testScreen screen, int _progress, int _progress_s } else if (screen >= testScreen::fsensor && screen <= testScreen::fsensorOk) { - lcd_puts_at_P(0, 2, _i("Filament sensor:"));////MSG_SELFTEST_FILAMENT_SENSOR c=18 r=0 + lcd_puts_at_P(0, 2, _T(MSG_SELFTEST_FILAMENT_SENSOR)); + lcd_putc(':'); lcd_set_cursor(18, 2); (screen == testScreen::fsensor) ? lcd_print(_indicator) : lcd_print("OK"); } From c45a7f86410b62da7f37976da643a190ea9c3e2c Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 21 Mar 2019 23:50:01 +0100 Subject: [PATCH 04/14] Fix 1_75mm_MK3-EINSy10a-E3Dv6full variant build error. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f5c44db67..8bdb00c26 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7640,7 +7640,7 @@ static bool lcd_selftest_fsensor(void) fsensor_init(); if (fsensor_not_responding) { - lcd_selftest_error(11, NULL, NULL); + lcd_selftest_error(TestError::wiringFsensor, NULL, NULL); } return (!fsensor_not_responding); } From d1c5c0390718f4cfd1a9f95a2ae12f870698c379 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 22 Mar 2019 00:03:14 +0100 Subject: [PATCH 05/14] Fix compile error for manual fan check. --- Firmware/ultralcd.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8bdb00c26..0513356fd 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6921,14 +6921,13 @@ bool lcd_selftest() KEEPALIVE_STATE(IN_HANDLER); _progress = lcd_selftest_screen(testScreen::extruderFan, _progress, 3, true, 2000); -#if (defined(FANCHECK) && defined(TACH_0)) +#if (defined(FANCHECK) && defined(TACH_0)) _result = lcd_selftest_fan_dialog(0); #else //defined(TACH_0) _result = lcd_selftest_manual_fan_check(0, false); if (!_result) { - const char *_err; - lcd_selftest_error(7, _err, _err); //extruder fan not spinning + lcd_selftest_error(TestError::extruderFan, "", ""); } #endif //defined(TACH_0) From 8582babddb2b3d16485b484070d28d2d79628882 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 22 Mar 2019 00:08:44 +0100 Subject: [PATCH 06/14] Fix compile error for manual fan check. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0513356fd..b42eacf23 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6941,7 +6941,7 @@ bool lcd_selftest() _result = lcd_selftest_manual_fan_check(1, false); if (!_result) { - lcd_selftest_error(6, 0, 0); //print fan not spinning + lcd_selftest_error(TestError::printFan, "", ""); //print fan not spinning } #endif //defined(TACH_1) From 89f1a3bacfb7e70f35775ba43e5fa8a47e2809b6 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 22 Mar 2019 00:11:02 +0100 Subject: [PATCH 07/14] Fix compile error for non TMC2130 pulley check. --- Firmware/ultralcd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b42eacf23..192cc8f13 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7368,7 +7368,7 @@ static bool lcd_selfcheck_pulleys(int axis) st_synchronize(); if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) { - lcd_selftest_error(8, (axis == 0) ? "X" : "Y", ""); + lcd_selftest_error(TestError::pulley, (axis == 0) ? "X" : "Y", ""); return(false); } } @@ -7386,7 +7386,7 @@ static bool lcd_selfcheck_pulleys(int axis) return(true); } else { - lcd_selftest_error(8, (axis == 0) ? "X" : "Y", ""); + lcd_selftest_error(TestError::pulley, (axis == 0) ? "X" : "Y", ""); return(false); } } @@ -7395,7 +7395,7 @@ static bool lcd_selfcheck_pulleys(int axis) plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], manual_feedrate[0] / 60, active_extruder); st_synchronize(); if (_millis() > timeout_counter) { - lcd_selftest_error(8, (axis == 0) ? "X" : "Y", ""); + lcd_selftest_error(TestError::pulley, (axis == 0) ? "X" : "Y", ""); return(false); } } From 966e772702c5ad634d1cc76660eb0022043ef7aa Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 22 Mar 2019 00:14:29 +0100 Subject: [PATCH 08/14] Fix compile error for non TMC2130 endstops check. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 192cc8f13..e07dd4b76 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7428,7 +7428,7 @@ static bool lcd_selfcheck_endstops() 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"); if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) strcat(_error, "Z"); - lcd_selftest_error(3, _error, ""); + lcd_selftest_error(TestError::endstops, _error, ""); } manage_heater(); manage_inactivity(true); From baeee5817e50ed9f0e4e96ac164ce75694e37213 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 22 Mar 2019 00:24:22 +0100 Subject: [PATCH 09/14] Make lcd_selftest_error() calls safer, as nullptr parameter is not handled. It is hard to believe, but it actually saves 4B flash. --- Firmware/ultralcd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e07dd4b76..13058569f 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7199,7 +7199,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { if (axis == Y_AXIS) _error_1 = "Y"; if (axis == Z_AXIS) _error_1 = "Z"; - lcd_selftest_error(TestError::axis, _error_1, NULL); + 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]); reset_crash_det(axis); @@ -7217,7 +7217,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) { if (axis == Y_AXIS) _error_1 = "Y"; if (axis == Z_AXIS) _error_1 = "Z"; - lcd_selftest_error(TestError::pulley, _error_1, NULL); + 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]); reset_crash_det(axis); @@ -7639,7 +7639,7 @@ static bool lcd_selftest_fsensor(void) fsensor_init(); if (fsensor_not_responding) { - lcd_selftest_error(TestError::wiringFsensor, NULL, NULL); + lcd_selftest_error(TestError::wiringFsensor, "", ""); } return (!fsensor_not_responding); } @@ -7902,7 +7902,7 @@ static bool lcd_selftest_fan_dialog(int _fan) } if (!_result) { - lcd_selftest_error(testError, NULL, NULL); + lcd_selftest_error(testError, "", ""); } return _result; } From c440ca7369ce4bde939c51de03c0117b1b642ccc Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 1 Apr 2019 18:44:13 +0200 Subject: [PATCH 10/14] Revert "Phase correct PWM for bed, frequency 40KHz." --- Firmware/timer02.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/Firmware/timer02.c b/Firmware/timer02.c index 113c72463..8309f9401 100644 --- a/Firmware/timer02.c +++ b/Firmware/timer02.c @@ -11,11 +11,19 @@ uint8_t timer02_pwm0 = 0; - void timer02_set_pwm0(uint8_t pwm0) { - TCCR0A |= (2 << COM0B0); //switch OC0B to OCR mode - OCR0B = (uint16_t)OCR0A * pwm0 / 255; + if (timer02_pwm0 == pwm0) return; + if (pwm0) + { + TCCR0A |= (2 << COM0B0); + OCR0B = pwm0 - 1; + } + else + { + TCCR0A &= ~(2 << COM0B0); + OCR0B = 0; + } timer02_pwm0 = pwm0; } @@ -31,12 +39,13 @@ void timer02_init(void) TIMSK0 &= ~(1< Date: Mon, 1 Apr 2019 20:52:24 +0200 Subject: [PATCH 11/14] version change --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index e086a16c8..acdd2d6f8 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -7,8 +7,8 @@ #define STR(x) STR_HELPER(x) // Firmware version -#define FW_VERSION "3.7.0-RC1" -#define FW_COMMIT_NR 2175 +#define FW_VERSION "3.7.0" +#define FW_COMMIT_NR 2201 // 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 b0566b2bc9f66d5424aa6bf885a3c78fac7d0b02 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 3 Apr 2019 16:45:34 +0200 Subject: [PATCH 12/14] Translation fix for https://github.com/prusa3d/Prusa-Firmware/pull/1601 --- lang/lang_en.txt | 6 +++--- lang/lang_en_cz.txt | 8 ++++---- lang/lang_en_de.txt | 12 ++++++------ lang/lang_en_es.txt | 12 ++++++------ lang/lang_en_fr.txt | 10 +++++----- lang/lang_en_it.txt | 12 ++++++------ lang/lang_en_pl.txt | 12 ++++++------ 7 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lang/lang_en.txt b/lang/lang_en.txt index b26968d71..cea52bd33 100644 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -812,16 +812,16 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" +"Sort [none]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" +"Sort [time]" # "Severe skew" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" +"Sort [alphabet]" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index c4e1b7d83..85f8ffab7 100644 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1083,19 +1083,19 @@ "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" +"Sort [none]" "Trideni [Zadne]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Trideni: [cas]" +"Sort [time]" +"Trideni [cas]" # "Severe skew" "Tezke zkoseni" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" +"Sort [alphabet]" "Trideni [Abeceda]" #MSG_SORTING c=20 r=1 diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 5e2198c74..144dfc706 100644 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1083,20 +1083,20 @@ "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" -"Sort.: [Keine]" +"Sort [none]" +"Sort. [Keine]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Sort.: [Zeit]" +"Sort [time]" +"Sort. [Zeit]" # "Severe skew" "Schwerer Schraeglauf" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" -"Sort.: [Alphabet]" +"Sort [alphabet]" +"Sort. [Alphabet]" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index c62a3578a..86e4268b5 100644 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1083,20 +1083,20 @@ "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. " #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" -"Ordenar: [nada]" +"Sort [none]" +"Ordenar [nada]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Orden: [Fecha]" +"Sort [time]" +"Ordenar [Fecha]" # "Severe skew" "Inclinacion severa" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" -"Ordenar:[alfabet]" +"Sort [alphabet]" +"Ordenar [alfabet]" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index d3fd4f7b6..930fbb57e 100644 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1083,20 +1083,20 @@ "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" +"Sort [none]" "Tri : [aucun]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Tri : [heure]" +"Sort [time]" +"Tri [heure]" # "Severe skew" "Deviation severe" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" -"Tri : [alphabet]" +"Sort [alphabet]" +"Tri [alphabet]" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 919a542aa..0b47c7240 100644 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1083,20 +1083,20 @@ "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" -"Ordina: [none]" +"Sort [none]" +"Ordina [none]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Ordina: [time]" +"Sort [time]" +"Ordina [time]" # "Severe skew" "Disassamento grave" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" -"Ordine: [alfabet]" +"Sort [alphabet]" +"Ordine [alfabet]" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index a23f89e39..26be40bd6 100644 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1083,20 +1083,20 @@ "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100." #MSG_SORT_NONE c=17 r=1 -"Sort: [none]" -"Sortuj: [brak]" +"Sort [none]" +"Sortuj [brak]" #MSG_SORT_TIME c=17 r=1 -"Sort: [time]" -"Sortuj: [czas]" +"Sort [time]" +"Sortuj [czas]" # "Severe skew" "Znaczny skos" #MSG_SORT_ALPHA c=17 r=1 -"Sort: [alphabet]" -"Sortuj: [alfabet]" +"Sort [alphabet]" +"Sortuj [alfabet]" #MSG_SORTING c=20 r=1 "Sorting files" From 99d6c74999cacd4952aafc3b0390e4dfd20537fc Mon Sep 17 00:00:00 2001 From: Andrew Luebke Date: Fri, 5 Apr 2019 14:53:33 -0700 Subject: [PATCH 13/14] Fixed spelling errors in PF-build.sh --- PF-build.sh | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 7c1e26d42..faa5d9164 100644 --- a/PF-build.sh +++ b/PF-build.sh @@ -1,12 +1,12 @@ #!/bin/bash -# This bash script is used to compile automatically the Prusa firmware with a dedecated build enviroment and settings +# This bash script is used to compile automatically the Prusa firmware with a dedicated build environment and settings # # Supported OS: Windows 10, Linux64 bit # # Linux: # # Windows: -# To excecute this sciprt you gonna need few things on your Windows machine +# To execute this script you gonna need few things on your Windows machine # # Linux Subsystem Ubuntu # 1. Follow these instructions @@ -28,15 +28,15 @@ # 4. Run git Bash under Administrator privilege and navigate to the directory /c/Program Files/Git/mingw64/bin, # you can run the command ln -s /c/Program Files/7-Zip/7z.exe zip.exe # -# Usefull things to edit and compare your custom Firmware +# Useful things to edit and compare your custom Firmware # 1. Download and install current and correct (64bit or 32bit) Notepad++ version https://notepad-plus-plus.org/download # 2. Another great tool to compare your custom mod and stock firmware is WinMerge http://winmerge.org/downloads/?lang=en # -# Example for MK3: open git bash and chage to your Firmware directory +# Example for MK3: open git bash and change to your Firmware directory # @ MINGW64 //path # bash build.sh 1_75mm_MK3-EINSy10a-E3Dv6full # -# Example for MK25: open git bash and chage to your directory +# Example for MK25: open git bash and change to your directory # gussner@WIN01 MINGW64 /d/Data/Prusa-Firmware/MK3 # bash build.sh 1_75mm_MK25-RAMBo13a-E3Dv6full # @@ -47,7 +47,7 @@ # Version: 1.0.1-Build_8 # 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 uknown +# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown # 17 Jan 2019, 3d-gussner, Build_3, Check for OS Windows or Linux and use the right build enviroment # 10 Feb 2019, ropaha, Pull Request, Select variant from list while using build.sh # 10 Feb 2019, ropaha, change FW_DEV_VERSION automatically depending on FW_VERSION RC/BETA/ALPHA @@ -96,7 +96,7 @@ else exit fi sleep 2 -###Prepare bash enviroment and check if wget and zip are availible +###Prepare bash enviroment and check if wget and zip are available if ! type wget > /dev/null; then echo "$(tput setaf 1)Missing 'wget' which is important to run this script" echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" @@ -139,7 +139,7 @@ fi cd ../build-env || exit 3 # Check if PF-build-env- exists and downloads + creates it if not -# The build enviroment is based on the Arduino IDE 1.8.5 portal vesion with some changes +# The build enviroment is based on the Arduino IDE 1.8.5 portal version with some changes if [ ! -d "../PF-build-env-$BUILD_ENV" ]; then echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" mkdir ../PF-build-env-$BUILD_ENV @@ -148,14 +148,14 @@ fi if [ $OSTYPE == "msys" ]; then if [ ! -f "PF-build-env-Win-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downloding Windows build enviroment...$(tput setaf 2)" + echo "$(tput setaf 6)Downlaoding Windows build environment...$(tput setaf 2)" sleep 2 wget https://github.com/3d-gussner/PF-build-env/releases/download/Win-$BUILD_ENV/PF-build-env-Win-$BUILD_ENV.zip || exit 4 #cp -f ../../PF-build-env/PF-build-env-Win-$BUILD_ENV.zip PF-build-env-Win-$BUILD_ENV.zip || exit4 echo "$(tput sgr 0)" fi if [ ! -d "../PF-build-env-$BUILD_ENV/$OSTYPE" ]; then - echo "$(tput setaf 6)Unzipping Windows build enviroment...$(tput setaf 2)" + echo "$(tput setaf 6)Unzipping Windows build environment...$(tput setaf 2)" sleep 2 unzip PF-build-env-Win-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$OSTYPE || exit 4 echo "$(tput sgr0)" @@ -165,7 +165,7 @@ fi if [ $OSTYPE == "linux-gnu" ]; then if [ ! -f "PF-build-env-Linux64-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downloading Linux 64 build enviroment...$(tput setaf 2)" + echo "$(tput setaf 6)Downloading Linux 64 build environment...$(tput setaf 2)" sleep 2 wget https://github.com/mkbel/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3 echo "$(tput sgr0)" @@ -180,9 +180,9 @@ if [ $OSTYPE == "linux-gnu" ]; then fi cd $SCRIPT_PATH -# First argument defines which varaint of the Prusa Firmware will be compiled +# First argument defines which variant of the Prusa Firmware will be compiled if [ -z "$1" ] ; then - # Select which varaint of the Prusa Firmware will be compiled, like + # Select which variant of the Prusa Firmware will be compiled, like PS3="Select a variant: " while IFS= read -r -d $'\0' f; do options[i++]="$f" @@ -248,7 +248,7 @@ else if [[ "$2" == "ALL" || "$2" == "EN_ONLY" ]] ; then LANGUAGES=$2 else - echo "$(tput setaf 1)Language agrument is wrong!$(tput sgr0)" + echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as 2nd argument!" exit fi @@ -270,7 +270,7 @@ BUILD_ENV_PATH="$( pwd -P )" cd ../.. -#Checkif BUILD_PATH exisits and if not creates it +#Checkif BUILD_PATH exists and if not creates it if [ ! -d "Prusa-Firmware-build" ]; then mkdir Prusa-Firmware-build || exit 6 fi @@ -286,7 +286,7 @@ do FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') # Find build version in Configuration.h file and use it to generate the hex filename BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - # Check if the motherboard is an EINSY and if so the only one hex file will generated + # 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) # 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) @@ -333,22 +333,22 @@ do fi OUTPUT_FOLDER="Hex-files/FW$FW-Build$BUILD/$MOTHERBOARD" - #Check if exacly the same hexfile already exsits + #Check if exactly the same hexfile already exists if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be comiled already exsits! To cancle this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" read -t 10 -p "Press Enter to continue..." elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be comiled already exsits! To cancle this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" read -t 10 -p "Press Enter to continue..." fi if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename - echo "$(tput setaf 6)This zip file to be comiled already exsits! To cancle this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" read -t 10 -p "Press Enter to continue..." fi @@ -382,11 +382,11 @@ do #Prepare english only or multilanguage version to be build if [ $LANGUAGES == "ALL" ]; then echo " " - echo "Multi-language firmware will be build" + echo "Multi-language firmware will be built" echo " " else echo " " - echo "English only language firmware will be build" + echo "English only language firmware will be built" echo " " fi @@ -439,14 +439,14 @@ do if [ $LANGUAGES == "ALL" ]; then echo "$(tput setaf 2)" - echo "Building mutli language firmware" $MULTI_LANGUAGE_CHECK + echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK echo "$(tput sgr 0)" sleep 2 cd $SCRIPT_PATH/lang echo "$(tput setaf 3)" ./config.sh || exit 15 echo "$(tput sgr 0)" - # Check if privious languages and firmware build exist and if so clean them up + # Check if previous languages and firmware build exist and if so clean them up if [ -f "lang_en.tmp" ]; then echo "" echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" @@ -469,7 +469,7 @@ do # Combine compiled firmware with languages ./fw-build.sh || exit 17 echo "$(tput sgr 0)" - # Check if the motherboard is an EINSY and if so the only one hex file will generated + # 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) # If the motherboard is an EINSY just copy one hexfile if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then From a6f10625c570dcabb01530a414c5f10e9bfd4ca7 Mon Sep 17 00:00:00 2001 From: Andrew Luebke Date: Fri, 5 Apr 2019 15:44:52 -0700 Subject: [PATCH 14/14] Found another mistake --- PF-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 PF-build.sh diff --git a/PF-build.sh b/PF-build.sh old mode 100644 new mode 100755 index faa5d9164..a7cc25a9e --- a/PF-build.sh +++ b/PF-build.sh @@ -148,7 +148,7 @@ fi if [ $OSTYPE == "msys" ]; then if [ ! -f "PF-build-env-Win-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downlaoding Windows build environment...$(tput setaf 2)" + echo "$(tput setaf 6)Downloading Windows build environment...$(tput setaf 2)" sleep 2 wget https://github.com/3d-gussner/PF-build-env/releases/download/Win-$BUILD_ENV/PF-build-env-Win-$BUILD_ENV.zip || exit 4 #cp -f ../../PF-build-env/PF-build-env-Win-$BUILD_ENV.zip PF-build-env-Win-$BUILD_ENV.zip || exit4