From bb463c8fdcd6156da2e16abae76f5edf862332f3 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Tue, 31 Jan 2017 10:26:36 +0100 Subject: Improved some english messages, added E calibration reset, E calibration feedrate decreased --- Firmware/Marlin_main.cpp | 2 +- Firmware/language_all.cpp | 11 ++++++++--- Firmware/language_all.h | 2 ++ Firmware/language_en.h | 7 ++++--- Firmware/ultralcd.cpp | 18 ++++++++++++++---- Firmware/ultralcd.h | 1 + 6 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fde5e6392..3359d7c52 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3174,7 +3174,7 @@ void process_commands() case 24: //M24 - Start SD print card.startFileprint(); starttime=millis(); - break; + break; case 25: //M25 - Pause SD print card.pauseSDPrint(); break; diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index e94a3dd31..80581caa8 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -325,7 +325,7 @@ const char * const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[LANG MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN[] PROGMEM = "X/Y skewed severly. Skew will be corrected automatically."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN[] PROGMEM = "XYZ callibration all right. Skew will be corrected automatically."; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ[] PROGMEM = "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_IT[] PROGMEM = "Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata."; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES[] PROGMEM = "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."; @@ -338,7 +338,7 @@ const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[LANG_NU MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "XYZ calibration all right. X/Y axes are slightly skewed."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ[] PROGMEM = "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_IT[] PROGMEM = "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES[] PROGMEM = "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"; @@ -1670,6 +1670,11 @@ const char * const MSG_RESEND_LANG_TABLE[1] PROGMEM = { MSG_RESEND_EN }; +const char MSG_RESET_CALIBRATE_E_EN[] PROGMEM = "Reset E Cal."; +const char * const MSG_RESET_CALIBRATE_E_LANG_TABLE[1] PROGMEM = { + MSG_RESET_CALIBRATE_E_EN +}; + const char MSG_RESTORE_FAILSAFE_EN[] PROGMEM = "Restore failsafe"; const char * const MSG_RESTORE_FAILSAFE_LANG_TABLE[1] PROGMEM = { MSG_RESTORE_FAILSAFE_EN @@ -2475,7 +2480,7 @@ const char * const MSG_VTRAV_MIN_LANG_TABLE[1] PROGMEM = { MSG_VTRAV_MIN_EN }; -const char MSG_WAITING_TEMP_EN[] PROGMEM = "Waiting for heater and bed cooling"; +const char MSG_WAITING_TEMP_EN[] PROGMEM = "Waiting for nozzle and bed cooling"; const char MSG_WAITING_TEMP_CZ[] PROGMEM = "Cekani na zchladnuti trysky a podlozky."; const char MSG_WAITING_TEMP_IT[] PROGMEM = "In attesa del raffreddamento della testina e del piatto."; const char MSG_WAITING_TEMP_ES[] PROGMEM = "Esperando enfriamiento de la cama y del extrusor."; diff --git a/Firmware/language_all.h b/Firmware/language_all.h index cae53a987..826f1ec66 100644 --- a/Firmware/language_all.h +++ b/Firmware/language_all.h @@ -370,6 +370,8 @@ extern const char* const MSG_REFRESH_LANG_TABLE[1]; #define MSG_REFRESH LANG_TABLE_SELECT_EXPLICIT(MSG_REFRESH_LANG_TABLE, 0) extern const char* const MSG_RESEND_LANG_TABLE[1]; #define MSG_RESEND LANG_TABLE_SELECT_EXPLICIT(MSG_RESEND_LANG_TABLE, 0) +extern const char* const MSG_RESET_CALIBRATE_E_LANG_TABLE[1]; +#define MSG_RESET_CALIBRATE_E LANG_TABLE_SELECT_EXPLICIT(MSG_RESET_CALIBRATE_E_LANG_TABLE, 0) extern const char* const MSG_RESTORE_FAILSAFE_LANG_TABLE[1]; #define MSG_RESTORE_FAILSAFE LANG_TABLE_SELECT_EXPLICIT(MSG_RESTORE_FAILSAFE_LANG_TABLE, 0) extern const char* const MSG_RESUME_PRINT_LANG_TABLE[LANG_NUM]; diff --git a/Firmware/language_en.h b/Firmware/language_en.h index 3d1649fa2..82e394556 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -212,8 +212,8 @@ #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "XYZ calibration failed. Bed calibration point was not found." #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "XYZ calibration failed. Please consult the manual." #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" -#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "XYZ calibration all right. X/Y axes are slightly skewed." -#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "X/Y skewed severly. Skew will be corrected automatically." +#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" +#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "XYZ callibration all right. Skew will be corrected automatically." #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "XYZ calibration failed. Left front calibration point not reachable." #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "XYZ calibration failed. Right front calibration point not reachable." #define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "XYZ calibration failed. Front calibration points not reachable." @@ -243,12 +243,13 @@ #define(length=20,lines=8) MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ "Filaments are now adjusted. Please clean the nozzle for calibration. Click when done." #define(length=20, lines=4) MSG_STACK_ERROR "Error - static memory has been overwritten" #define(length=20, lines=1) MSG_CALIBRATE_E "Calibrate E" +//#define(length=20, lines=1) MSG_RESET_CALIBRATE_E "Reset E Cal." #define(length=20, lines=8) MSG_E_CAL_KNOB "Rotate knob until mark reaches extruder body. Click when done." //#define(length=20, lines=1) MSG_FARM_CARD_MENU "Farm mode print" #define(length=20, lines=8) MSG_MARK_FIL "Mark filament 100mm from extruder body. Click when done." #define(length=20, lines=8) MSG_CLEAN_NOZZLE_E "E calibration finished. Please clean the nozzle. Click when done." -#define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for heater and bed cooling" +#define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for nozzle and bed cooling" #define(length=20, lines=2) MSG_FILAMENT_CLEAN "Is color clear?" #define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament" diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9f0458123..a0b1e8612 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2216,6 +2216,7 @@ void lcd_mesh_calibration_z() #ifndef SNMM void lcd_calibrate_extruder() { + if (degHotend0() > EXTRUDE_MINTEMP) { current_position[E_AXIS] = 0; //set initial position to zero @@ -2225,7 +2226,7 @@ void lcd_calibrate_extruder() { long steps_final; float e_steps_per_unit; - float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 3; //initial automatic extrusion feedrate (depends on current value of axis_steps_per_unit to avoid too fast extrusion) + float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 1; //3 //initial automatic extrusion feedrate (depends on current value of axis_steps_per_unit to avoid too fast extrusion) float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70; //length of initial automatic extrusion sequence const char *msg_e_cal_knob = MSG_E_CAL_KNOB; const char *msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_e_cal_knob); @@ -2259,7 +2260,7 @@ void lcd_calibrate_extruder() { encoderPosition += (encoderDiff / ENCODER_PULSES_PER_STEP); encoderDiff = 0; if (!planner_queue_full()) { - current_position[E_AXIS] += float(abs((int)encoderPosition)) * 0.05; + current_position[E_AXIS] += float(abs((int)encoderPosition)) * 0.01; //0.05 encoderPosition = 0; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate, active_extruder); @@ -2300,6 +2301,13 @@ void lcd_calibrate_extruder() { lcd_return_to_status(); } +void lcd_extr_cal_reset() { + float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT; + axis_steps_per_unit[E_AXIS] = tmp1[3]; + //extrudemultiply = 100; + enquecommand_P(PSTR("M500")); +} + #endif void lcd_toshiba_flash_air_compatibility_toggle() @@ -2377,6 +2385,9 @@ MENU_ITEM(function, MSG_CALIBRATE_BED, lcd_mesh_calibration); MENU_ITEM(submenu, MSG_BED_CORRECTION_MENU, lcd_adjust_bed); MENU_ITEM(submenu, MSG_SHOW_END_STOPS, menu_show_end_stops); MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44")); +#ifndef SNMM + MENU_ITEM(function, MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset); +#endif } END_MENU(); @@ -4159,8 +4170,7 @@ static void menu_action_function(menuFunc_t data) { } static void menu_action_sdfile(const char* filename, char* longFilename) { - loading_flag = false; - + loading_flag = false; char cmd[30]; char* c; sprintf_P(cmd, PSTR("M23 %s"), filename); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index e2396a353..2dbeea3e7 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -226,6 +226,7 @@ void lcd_farm_sdcard_menu_w(); void lcd_wait_for_cool_down(); void adjust_bed_reset(); +void lcd_extr_cal_reset(); union MenuData; -- cgit v1.2.3 From ebabaf527a81c8b59b8436176be53b02a12f6c94 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Thu, 2 Feb 2017 15:51:16 +0100 Subject: Added message at the beginning of xyz calibration, dont disable steppers during M0 and M1 --- Firmware/Configuration.h | 2 +- Firmware/Marlin_main.cpp | 8 +++++--- Firmware/language_all.cpp | 10 ++++++++++ Firmware/language_all.h | 2 ++ Firmware/language_cz.h | 4 +++- Firmware/language_en.h | 1 + Firmware/mesh_bed_calibration.cpp | 1 + Firmware/ultralcd.cpp | 10 ++++++---- Firmware/ultralcd.h | 2 +- 9 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 9db6dfabf..cd7288a91 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -5,7 +5,7 @@ #include "Configuration_prusa.h" // Firmware version -#define FW_version "3.0.10-alpha-2" +#define FW_version "3.0.10-RC1" #define FW_PRUSA3D_MAGIC "PRUSA3DFW" #define FW_PRUSA3D_MAGIC_LEN 10 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3359d7c52..61d5caa96 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2756,6 +2756,8 @@ void process_commands() * v Y-axis * */ + + case 80: case_G80: { @@ -3113,14 +3115,14 @@ void process_commands() LCD_MESSAGERPGM(MSG_USERWAIT); } - lcd_ignore_click(); + lcd_ignore_click(); //call lcd_ignore_click aslo for else ??? st_synchronize(); previous_millis_cmd = millis(); if (codenum > 0){ codenum += millis(); // keep track of when we started waiting while(millis() < codenum && !lcd_clicked()){ manage_heater(); - manage_inactivity(); + manage_inactivity(true); lcd_update(); } lcd_ignore_click(false); @@ -3129,7 +3131,7 @@ void process_commands() break; while(!lcd_clicked()){ manage_heater(); - manage_inactivity(); + manage_inactivity(true); lcd_update(); } } diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index 80581caa8..2647ace9a 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -1505,6 +1505,16 @@ const char * const MSG_ON_LANG_TABLE[1] PROGMEM = { MSG_ON_EN }; +const char MSG_PAPER_EN[] PROGMEM = "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."; +const char MSG_PAPER_CZ[] PROGMEM = "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, vypnete tiskarnu."; +const char * const MSG_PAPER_LANG_TABLE[LANG_NUM] PROGMEM = { + MSG_PAPER_EN, + MSG_PAPER_CZ, + MSG_PAPER_EN, + MSG_PAPER_EN, + MSG_PAPER_EN +}; + const char MSG_PAUSE_PRINT_EN[] PROGMEM = "Pause print"; const char MSG_PAUSE_PRINT_CZ[] PROGMEM = "Pozastavit tisk"; const char MSG_PAUSE_PRINT_IT[] PROGMEM = "Metti in pausa"; diff --git a/Firmware/language_all.h b/Firmware/language_all.h index 826f1ec66..d08d8a49b 100644 --- a/Firmware/language_all.h +++ b/Firmware/language_all.h @@ -336,6 +336,8 @@ extern const char* const MSG_OK_LANG_TABLE[1]; #define MSG_OK LANG_TABLE_SELECT_EXPLICIT(MSG_OK_LANG_TABLE, 0) extern const char* const MSG_ON_LANG_TABLE[1]; #define MSG_ON LANG_TABLE_SELECT_EXPLICIT(MSG_ON_LANG_TABLE, 0) +extern const char* const MSG_PAPER_LANG_TABLE[LANG_NUM]; +#define MSG_PAPER LANG_TABLE_SELECT(MSG_PAPER_LANG_TABLE) extern const char* const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM]; #define MSG_PAUSE_PRINT LANG_TABLE_SELECT(MSG_PAUSE_PRINT_LANG_TABLE) extern const char* const MSG_PICK_Z_LANG_TABLE[LANG_NUM]; diff --git a/Firmware/language_cz.h b/Firmware/language_cz.h index 4759b1725..9dda46c22 100644 --- a/Firmware/language_cz.h +++ b/Firmware/language_cz.h @@ -262,4 +262,6 @@ #define MSG_CLEAN_NOZZLE_E "E kalibrace ukoncena. Prosim ocistete trysku. Po te potvrdte tlacitkem." #define MSG_WAITING_TEMP "Cekani na zchladnuti trysky a podlozky." #define MSG_FILAMENT_CLEAN "Je barva cista?" -#define MSG_UNLOADING_FILAMENT "Vysouvam filament" \ No newline at end of file +#define MSG_UNLOADING_FILAMENT "Vysouvam filament" + +#define MSG_PAPER "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, vypnete tiskarnu." \ No newline at end of file diff --git a/Firmware/language_en.h b/Firmware/language_en.h index 82e394556..895a5c94a 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -252,6 +252,7 @@ #define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for nozzle and bed cooling" #define(length=20, lines=2) MSG_FILAMENT_CLEAN "Is color clear?" #define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament" +#define(length=20, lines=8) MSG_PAPER "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." #define MSG_BED_CORRECTION_MENU "Bed level correct" #define MSG_BED_CORRECTION_LEFT "Left side um" diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 43071ae20..cdcb78cb4 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -512,6 +512,7 @@ void reset_bed_offset_and_skew() } bool is_bed_z_jitter_data_valid() +// offsets of the Z heiths of the calibration points from the first point are saved as 16bit signed int, scaled to tenths of microns { for (int8_t i = 0; i < 8; ++ i) if (eeprom_read_word((uint16_t*)(EEPROM_BED_CALIBRATION_Z_JITTER+i*2)) == 0x0FFFF) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a0b1e8612..388b0bc5c 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1570,6 +1570,7 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z) lcd_show_fullscreen_message_and_wait_P(MSG_CONFIRM_NOZZLE_CLEAN); clean_nozzle_asked = true; } + // Let the user confirm, that the Z carriage is at the top end stoppers. int8_t result = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_CONFIRM_CARRIAGE_AT_THE_TOP, false); @@ -1592,6 +1593,7 @@ calibrated: lcd_implementation_print_at(0, 3, 1); lcd_printPGM(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2);*/ }else{ + lcd_show_fullscreen_message_and_wait_P(MSG_PAPER); lcd_display_message_fullscreen_P(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1); lcd_implementation_print_at(0, 2, 1); lcd_printPGM(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2); @@ -2215,7 +2217,7 @@ void lcd_mesh_calibration_z() #ifndef SNMM -void lcd_calibrate_extruder() { +/*void lcd_calibrate_extruder() { if (degHotend0() > EXTRUDE_MINTEMP) { @@ -2306,7 +2308,7 @@ void lcd_extr_cal_reset() { axis_steps_per_unit[E_AXIS] = tmp1[3]; //extrudemultiply = 100; enquecommand_P(PSTR("M500")); -} +}*/ #endif @@ -2376,7 +2378,7 @@ MENU_ITEM(function, MSG_CALIBRATE_BED, lcd_mesh_calibration); // "Calibrate Z" with storing the reference values to EEPROM. MENU_ITEM(submenu, MSG_HOMEYZ, lcd_mesh_calibration_z); #ifndef SNMM - MENU_ITEM(function, MSG_CALIBRATE_E, lcd_calibrate_extruder); + //MENU_ITEM(function, MSG_CALIBRATE_E, lcd_calibrate_extruder); #endif // "Mesh Bed Leveling" MENU_ITEM(submenu, MSG_MESH_BED_LEVELING, lcd_mesh_bedleveling); @@ -2386,7 +2388,7 @@ MENU_ITEM(function, MSG_CALIBRATE_BED, lcd_mesh_calibration); MENU_ITEM(submenu, MSG_SHOW_END_STOPS, menu_show_end_stops); MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44")); #ifndef SNMM - MENU_ITEM(function, MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset); + //MENU_ITEM(function, MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset); #endif } diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 2dbeea3e7..a5efbc2b5 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -215,7 +215,7 @@ static void stack_test(); static int test(); void stack_error(); -//void lcd_calibrate_extruder(); + void lcd_calibrate_extruder(); void lcd_farm_sdcard_menu(); -- cgit v1.2.3