Bugfix of the "Move Z carriages up" step.

This commit is contained in:
bubnikv 2016-06-16 15:52:58 +02:00
parent 6cff4b92ff
commit d9da3c4c7f
6 changed files with 4077 additions and 4074 deletions

View File

@ -5,7 +5,7 @@
#include "Configuration_prusa.h"
// Firmware version
#define FW_version "3.0.2"
#define FW_version "3.0.2-bedcalib"

View File

@ -369,11 +369,11 @@ const char * const MSG_CONFIGURATION_VER_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIGURATION_VER_PL
};
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_EN[] PROGMEM = "Are both left and right Z carriages";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_CZ[] PROGMEM = "Are both left and right Z carriages";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_IT[] PROGMEM = "Are both left and right Z carriages";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_ES[] PROGMEM = "Are both left and right Z carriages";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_PL[] PROGMEM = "Are both left and right Z carriages";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_EN[] PROGMEM = "Are left and right";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_CZ[] PROGMEM = "Are left and right";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_IT[] PROGMEM = "Are left and right";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_ES[] PROGMEM = "Are left and right";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_PL[] PROGMEM = "Are left and right";
const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_EN,
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_CZ,
@ -382,11 +382,11 @@ const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_LANG_TABLE[LANG_NUM] PR
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1_PL
};
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_EN[] PROGMEM = "touching the end stops?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_CZ[] PROGMEM = "touching the end stops?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_IT[] PROGMEM = "touching the end stops?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_ES[] PROGMEM = "touching the end stops?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_PL[] PROGMEM = "touching the end stops?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_EN[] PROGMEM = "Z carriages all up?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_CZ[] PROGMEM = "Z carriages all up?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_IT[] PROGMEM = "Z carriages all up?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_ES[] PROGMEM = "Z carriages all up?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_PL[] PROGMEM = "Z carriages all up?";
const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_EN,
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2_CZ,
@ -941,11 +941,11 @@ const char * const MSG_FILE_SAVED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FILE_SAVED_PL
};
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Searching calibration";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Searching calibration";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Searching calibration";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Searching calibration";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Searching calibration";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Searching bed";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Searching bed";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Searching bed";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Searching bed";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Searching bed";
const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN,
MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ,
@ -954,11 +954,11 @@ const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGM
MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL
};
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "point ";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "point ";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "point ";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "point ";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "point ";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "calibration point";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "calibration point";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "calibration point";
const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "calibration point";
const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN,
MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ,
@ -1087,7 +1087,7 @@ const char * const MSG_HOMEYZ_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_HOMEYZ_DONE_EN[] PROGMEM = "Calibration done";
const char MSG_HOMEYZ_DONE_CZ[] PROGMEM = "Kalibrace OK";
const char MSG_HOMEYZ_DONE_IT[] PROGMEM = "Calibratura OK";
const char MSG_HOMEYZ_DONE_ES[] PROGMEM = "Calibraci\xF3n OK";
const char MSG_HOMEYZ_DONE_ES[] PROGMEM = "Calibracion OK";
const char MSG_HOMEYZ_DONE_PL[] PROGMEM = "Kalibracja OK";
const char * const MSG_HOMEYZ_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_HOMEYZ_DONE_EN,
@ -1123,11 +1123,11 @@ const char * const MSG_HOTEND_OFFSET_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_HOTEND_OFFSET_PL
};
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Improving calibration";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Improving calibration";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Improving calibration";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Improving calibration";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Improving calibration";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Improving bed";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Improving bed";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Improving bed";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Improving bed";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Improving bed";
const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN,
MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ,
@ -1136,11 +1136,11 @@ const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PR
MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL
};
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "point ";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "point ";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "point ";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "point ";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "point ";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "calibration point";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "calibration point";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "calibration point";
const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "calibration point";
const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN,
MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ,
@ -1500,11 +1500,11 @@ const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_AXIS_PL
};
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_EN[] PROGMEM = "Calibrating the machine.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_CZ[] PROGMEM = "Calibrating the machine.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_IT[] PROGMEM = "Calibrating the machine.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_ES[] PROGMEM = "Calibrating the machine.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_PL[] PROGMEM = "Calibrating the machine.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_EN[] PROGMEM = "Calibrating bed.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_CZ[] PROGMEM = "Calibrating bed.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_IT[] PROGMEM = "Calibrating bed.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_ES[] PROGMEM = "Calibrating bed.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_PL[] PROGMEM = "Calibrating bed.";
const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_EN,
MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_CZ,
@ -1513,11 +1513,11 @@ const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_LANG_TABLE[LANG_NUM] PROGM
MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1_PL
};
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_EN[] PROGMEM = "Please move the Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_CZ[] PROGMEM = "Please move the Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_IT[] PROGMEM = "Please move the Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_ES[] PROGMEM = "Please move the Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_PL[] PROGMEM = "Please move the Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_EN[] PROGMEM = "Move Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_CZ[] PROGMEM = "Move Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_IT[] PROGMEM = "Move Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_ES[] PROGMEM = "Move Z carriage up";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_PL[] PROGMEM = "Move Z carriage up";
const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_EN,
MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2_CZ,
@ -2673,7 +2673,7 @@ const char * const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_SELFTEST_ERROR_EN[] PROGMEM = "Selftest error !";
const char MSG_SELFTEST_ERROR_CZ[] PROGMEM = "Selftest error !";
const char MSG_SELFTEST_ERROR_IT[] PROGMEM = "Autotest negativo";
const char MSG_SELFTEST_ERROR_ES[] PROGMEM = "\xA1Autotest error!";
const char MSG_SELFTEST_ERROR_ES[] PROGMEM = "Autotest error!";
const char MSG_SELFTEST_ERROR_PL[] PROGMEM = "Selftest error !";
const char * const MSG_SELFTEST_ERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_ERROR_EN,
@ -2777,7 +2777,7 @@ const char * const MSG_SELFTEST_START_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_SELFTEST_WIRINGERROR_EN[] PROGMEM = "Wiring error";
const char MSG_SELFTEST_WIRINGERROR_CZ[] PROGMEM = "Chyba zapojeni";
const char MSG_SELFTEST_WIRINGERROR_IT[] PROGMEM = "Errore cablaggio";
const char MSG_SELFTEST_WIRINGERROR_ES[] PROGMEM = "Error de conexi\xF3n";
const char MSG_SELFTEST_WIRINGERROR_ES[] PROGMEM = "Error de conexión";
const char MSG_SELFTEST_WIRINGERROR_PL[] PROGMEM = "Blad polaczenia";
const char * const MSG_SELFTEST_WIRINGERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_WIRINGERROR_EN,

View File

@ -274,19 +274,19 @@
#define MSG_CALIBRATE_BED "Calibrate bed"
#define MSG_CALIBRATE_BED_RESET "Reset bed calibration"
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1 "Calibrating the machine."
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2 "Please move the Z carriage up"
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE1 "Calibrating bed."
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE2 "Move Z carriage up"
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE3 "to the end stoppers."
#define MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE4 "Click when done."
#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1 "Are both left and right Z carriages"
#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2 "touching the end stops?"
#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE1 "Are left and right"
#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LINE2 "Z carriages all up?"
#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Searching calibration"
#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 "point "
#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Searching bed"
#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 "calibration point"
#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3 " of 4"
#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Improving calibration"
#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "point "
#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Improving bed"
#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "calibration point"
#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3 " of 9"
#endif // LANGUAGE_EN_H

View File

@ -448,8 +448,8 @@ bool find_bed_offset_and_skew()
for (int k = 0; k < 4; ++ k) {
#ifdef MESH_BED_CALIBRATION_SHOW_LCD
lcd_print_at_PGM(0, 1, MSG_FIND_BED_OFFSET_AND_SKEW_LINE2);
lcd_implementation_print(k+1);
lcd_print_at_PGM(0, 2, MSG_FIND_BED_OFFSET_AND_SKEW_LINE3);
lcd_implementation_print_at(0, 2, k+1);
lcd_printPGM(MSG_FIND_BED_OFFSET_AND_SKEW_LINE3);
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
int i, j;
@ -568,8 +568,8 @@ bool improve_bed_offset_and_skew(int8_t method)
// Print the decrasing ID of the measurement point.
#ifdef MESH_BED_CALIBRATION_SHOW_LCD
lcd_print_at_PGM(0, 1, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2);
lcd_implementation_print_at(7, 1, mesh_point+1);
lcd_print_at_PGM(0, 2, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3);
lcd_implementation_print_at(0, 2, mesh_point+1);
lcd_printPGM(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3);
#endif /* MESH_BED_CALIBRATION_SHOW_LCD */
// Move up.
@ -674,6 +674,7 @@ void reset_bed_offset_and_skew()
eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_Y +4), 0x0FFFFFFFF);
}
#if 0
static const float[9][2] PROGMEM bed_points = {
};
@ -759,3 +760,4 @@ bool calculate_machine_skew_and_offset_LS(
// Invert the transformation matrix made of vec_x, vec_y and cntr.
}
#endif

View File

@ -1227,21 +1227,22 @@ bool lcd_calibrate_z_end_stop_manual()
lcd.setCursor(0, 3);
lcd_printPGM(MSG_MOVE_CARRIAGE_TO_THE_TOP_LINE4);
// Until the user finishes the z up movement.
enc_dif = encoderDiff;
encoderDiff = 0;
encoderPosition = 0;
for (;;) {
if (millis() - previous_millis_cmd > max_inactive_time)
goto canceled;
manage_heater();
manage_inactivity(true);
if (abs((enc_dif - encoderDiff)) > 4) {
if (abs(enc_dif - encoderDiff) > 1) {
if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) {
delay(50);
previous_millis_cmd = millis();
encoderPosition += abs(encoderDiff / ENCODER_PULSES_PER_STEP);
encoderDiff = 0;
// Only move up, whatever the user does.
current_position[Z_AXIS] += fabs(enc_dif - encoderDiff);
current_position[Z_AXIS] += fabs(encoderPosition);
encoderPosition = 0;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS] / 60, active_extruder);
// delay(10);
enc_dif = encoderDiff;
}
}
if (lcd_clicked()) {
// Wait until the Z up movement is finished.