Merge pull request #38 from PavelSindler/MK2

Improved some english messages, added message at the beginning xyz calibration, dont disable steppers during M0/M1, E calibration not used
This commit is contained in:
PavelSindler 2017-02-02 16:09:33 +01:00 committed by GitHub
commit c63b4ca18e
9 changed files with 58 additions and 19 deletions

View File

@ -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

View File

@ -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();
}
}
@ -3174,7 +3176,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;

View File

@ -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!";
@ -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";
@ -1670,6 +1680,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 +2490,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.";

View File

@ -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];
@ -370,6 +372,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];

View File

@ -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"
#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."

View File

@ -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,14 +243,16 @@
#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"
#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"

View File

@ -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)

View File

@ -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,8 @@ void lcd_mesh_calibration_z()
#ifndef SNMM
void lcd_calibrate_extruder() {
/*void lcd_calibrate_extruder() {
if (degHotend0() > EXTRUDE_MINTEMP)
{
current_position[E_AXIS] = 0; //set initial position to zero
@ -2225,7 +2228,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 +2262,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 +2303,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()
@ -2368,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);
@ -2377,6 +2387,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 +4172,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);

View File

@ -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();
@ -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;