Add Z Probe Offset to EEPROM and Ultra LCD

This commit is contained in:
Alex Borro 2014-01-16 18:13:46 -02:00
parent df194f75e1
commit 05932e4458
5 changed files with 97 additions and 81 deletions

View file

@ -37,7 +37,7 @@ void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size)
// the default values are used whenever there is a change to the data, to prevent // the default values are used whenever there is a change to the data, to prevent
// wrong data being written to the variables. // wrong data being written to the variables.
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order. // ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
#define EEPROM_VERSION "V09" #define EEPROM_VERSION "V10"
#ifdef EEPROM_SETTINGS #ifdef EEPROM_SETTINGS
void Config_StoreSettings() void Config_StoreSettings()
@ -70,6 +70,7 @@ void Config_StoreSettings()
EEPROM_WRITE_VAR(i,absPreheatHotendTemp); EEPROM_WRITE_VAR(i,absPreheatHotendTemp);
EEPROM_WRITE_VAR(i,absPreheatHPBTemp); EEPROM_WRITE_VAR(i,absPreheatHPBTemp);
EEPROM_WRITE_VAR(i,absPreheatFanSpeed); EEPROM_WRITE_VAR(i,absPreheatFanSpeed);
EEPROM_WRITE_VAR(i,zprobe_zoffset);
#ifdef PIDTEMP #ifdef PIDTEMP
EEPROM_WRITE_VAR(i,Kp); EEPROM_WRITE_VAR(i,Kp);
EEPROM_WRITE_VAR(i,Ki); EEPROM_WRITE_VAR(i,Ki);
@ -210,6 +211,7 @@ void Config_RetrieveSettings()
EEPROM_READ_VAR(i,absPreheatHotendTemp); EEPROM_READ_VAR(i,absPreheatHotendTemp);
EEPROM_READ_VAR(i,absPreheatHPBTemp); EEPROM_READ_VAR(i,absPreheatHPBTemp);
EEPROM_READ_VAR(i,absPreheatFanSpeed); EEPROM_READ_VAR(i,absPreheatFanSpeed);
EEPROM_READ_VAR(i,zprobe_zoffset);
#ifndef PIDTEMP #ifndef PIDTEMP
float Kp,Ki,Kd; float Kp,Ki,Kd;
#endif #endif
@ -272,6 +274,7 @@ void Config_ResetDefault()
absPreheatHPBTemp = ABS_PREHEAT_HPB_TEMP; absPreheatHPBTemp = ABS_PREHEAT_HPB_TEMP;
absPreheatFanSpeed = ABS_PREHEAT_FAN_SPEED; absPreheatFanSpeed = ABS_PREHEAT_FAN_SPEED;
#endif #endif
zprobe_zoffset = -Z_PROBE_OFFSET_FROM_EXTRUDER;
#ifdef DOGLCD #ifdef DOGLCD
lcd_contrast = DEFAULT_LCD_CONTRAST; lcd_contrast = DEFAULT_LCD_CONTRAST;
#endif #endif

View file

@ -210,6 +210,7 @@ extern float endstop_adj[3];
extern float min_pos[3]; extern float min_pos[3];
extern float max_pos[3]; extern float max_pos[3];
extern bool axis_known_position[3]; extern bool axis_known_position[3];
extern float zprobe_zoffset;
extern int fanSpeed; extern int fanSpeed;
#ifdef BARICUDA #ifdef BARICUDA
extern int ValvePressure; extern int ValvePressure;

View file

@ -196,6 +196,7 @@ float endstop_adj[3]={0,0,0};
float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS };
float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
bool axis_known_position[3] = {false, false, false}; bool axis_known_position[3] = {false, false, false};
float zprobe_zoffset;
// Extruder offset // Extruder offset
#if EXTRUDERS > 1 #if EXTRUDERS > 1
@ -240,6 +241,7 @@ int EtoPPressure=0;
float delta[3] = {0.0, 0.0, 0.0}; float delta[3] = {0.0, 0.0, 0.0};
#endif #endif
//=========================================================================== //===========================================================================
//=============================private variables============================= //=============================private variables=============================
//=========================================================================== //===========================================================================
@ -824,7 +826,7 @@ static void set_bed_level_equation_lsq(double *plane_equation_coefficients)
current_position[Z_AXIS] = corrected_position.z; current_position[Z_AXIS] = corrected_position.z;
// but the bed at 0 so we don't go below it. // but the bed at 0 so we don't go below it.
current_position[Z_AXIS] = -Z_PROBE_OFFSET_FROM_EXTRUDER; current_position[Z_AXIS] = 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(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
} }
@ -860,7 +862,7 @@ static void set_bed_level_equation(float z_at_xLeft_yFront, float z_at_xRight_yF
current_position[Z_AXIS] = corrected_position.z; current_position[Z_AXIS] = corrected_position.z;
// but the bed at 0 so we don't go below it. // but the bed at 0 so we don't go below it.
current_position[Z_AXIS] = -Z_PROBE_OFFSET_FROM_EXTRUDER; current_position[Z_AXIS] = zprobe_zoffset;
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
} }
@ -1316,7 +1318,7 @@ void process_commands()
} }
#ifdef ENABLE_AUTO_BED_LEVELING #ifdef ENABLE_AUTO_BED_LEVELING
if((home_all_axis) || (code_seen(axis_codes[Z_AXIS]))) { if((home_all_axis) || (code_seen(axis_codes[Z_AXIS]))) {
current_position[Z_AXIS] -= Z_PROBE_OFFSET_FROM_EXTRUDER; //Add Z_Probe offset (the distance is negative) current_position[Z_AXIS] += zprobe_zoffset; //Add Z_Probe offset (the distance is negative)
} }
#endif #endif
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);

View file

@ -138,7 +138,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
#define MSG_Enqueing "enqueing \"" #define MSG_Enqueing "enqueing \""
@ -305,6 +305,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -471,6 +472,7 @@
#define MSG_CNG_SDCARD "Changer de carte SD" #define MSG_CNG_SDCARD "Changer de carte SD"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -640,6 +642,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -813,6 +816,7 @@
#define MSG_STEPPER_RELEASED "Desacoplada." #define MSG_STEPPER_RELEASED "Desacoplada."
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -976,6 +980,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -1139,6 +1144,7 @@
#define MSG_CNG_SDCARD "Cambia SD-Card" #define MSG_CNG_SDCARD "Cambia SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -1311,6 +1317,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "Sonda fora da mesa" #define MSG_ZPROBE_OUT "Sonda fora da mesa"
#define MSG_POSITION_UNKNOWN "Home X/Y antes de Z" #define MSG_POSITION_UNKNOWN "Home X/Y antes de Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages
@ -1479,6 +1486,7 @@
#define MSG_CNG_SDCARD "Change SD-Card" #define MSG_CNG_SDCARD "Change SD-Card"
#define MSG_ZPROBE_OUT "ZProbe Outside Bed" #define MSG_ZPROBE_OUT "ZProbe Outside Bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
// Serial Console Messages // Serial Console Messages

View file

@ -19,6 +19,7 @@ int absPreheatHotendTemp;
int absPreheatHPBTemp; int absPreheatHPBTemp;
int absPreheatFanSpeed; int absPreheatFanSpeed;
#ifdef ULTIPANEL #ifdef ULTIPANEL
static float manual_feedrate[] = MANUAL_FEEDRATE; static float manual_feedrate[] = MANUAL_FEEDRATE;
#endif // ULTIPANEL #endif // ULTIPANEL
@ -705,6 +706,7 @@ static void lcd_control_motion_menu()
{ {
START_MENU(); START_MENU();
MENU_ITEM(back, MSG_CONTROL, lcd_control_menu); MENU_ITEM(back, MSG_CONTROL, lcd_control_menu);
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, 0.5, 50);
MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 500, 99000); MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 500, 99000);
MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990); MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990);
MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &max_z_jerk, 0.1, 990); MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &max_z_jerk, 0.1, 990);