Hyperfine Bed Tuning for MK3
Changed Bed correction from 4 points to 8 to get better results as we got on the MK2/s Changed langtool.pl to have EN as default Added tiem and credentials to support info
This commit is contained in:
parent
17cadf463a
commit
a2e0a0a02d
|
|
@ -120,6 +120,13 @@
|
|||
|
||||
#define EEPROM_FSENS_AUTOLOAD_ENABLED (EEPROM_SECOND_SERIAL_ACTIVE - 1)
|
||||
|
||||
// Hyperfine Bed Tuning
|
||||
#define EEPROM_BED_CORRECTION_FRONT_LEFT (EEPROM_FSENS_AUTOLOAD_ENABLED - 1)
|
||||
#define EEPROM_BED_CORRECTION_FRONT_RIGHT (EEPROM_BED_CORRECTION_FRONT_LEFT - 1)
|
||||
#define EEPROM_BED_CORRECTION_REAR_RIGHT (EEPROM_BED_CORRECTION_FRONT_RIGHT - 1)
|
||||
#define EEPROM_BED_CORRECTION_REAR_LEFT (EEPROM_BED_CORRECTION_REAR_RIGHT - 1)
|
||||
// End Hyperfine Bed Tuning
|
||||
|
||||
//TMC2130 configuration
|
||||
#define EEPROM_TMC_AXIS_SIZE //axis configuration block size
|
||||
#define EEPROM_TMC_X (EEPROM_TMC + 0 * EEPROM_TMC_AXIS_SIZE) //X axis configuration blok
|
||||
|
|
@ -166,7 +173,7 @@
|
|||
//#define STRING_VERSION "1.0.2"
|
||||
|
||||
#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
|
||||
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
|
||||
#define STRING_CONFIG_H_AUTHOR "(3d-gussner,H)" // Who made the changes.
|
||||
|
||||
// SERIAL_PORT selects which serial port should be used for communication with the host.
|
||||
// This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||
|
|
|
|||
|
|
@ -3636,55 +3636,135 @@ void process_commands()
|
|||
}
|
||||
#endif // SUPPORT_VERBOSITY
|
||||
|
||||
for (uint8_t i = 0; i < 4; ++i) {
|
||||
unsigned char codes[4] = { 'L', 'R', 'F', 'B' };
|
||||
// Hyperfine Bed Tuning
|
||||
for (uint8_t i = 0; i < 8; ++i) {
|
||||
unsigned char codes[8] = { 'a', 'b', 'c', 'd' , 'e' , 'f', 'g', 'h'};
|
||||
long correction = 0;
|
||||
if (code_seen(codes[i]))
|
||||
correction = code_value_long();
|
||||
else if (eeprom_bed_correction_valid) {
|
||||
unsigned char *addr = (i < 2) ?
|
||||
((i == 0) ? (unsigned char*)EEPROM_BED_CORRECTION_LEFT : (unsigned char*)EEPROM_BED_CORRECTION_RIGHT) :
|
||||
((i == 2) ? (unsigned char*)EEPROM_BED_CORRECTION_FRONT : (unsigned char*)EEPROM_BED_CORRECTION_REAR);
|
||||
correction = eeprom_read_int8(addr);
|
||||
switch (i) {
|
||||
case 0:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_FRONT_LEFT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_FRONT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_FRONT_RIGHT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_RIGHT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_REAR_RIGHT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_REAR;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_REAR_LEFT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
{unsigned char *addr = (unsigned char*)EEPROM_BED_CORRECTION_LEFT;
|
||||
correction = eeprom_read_int8(addr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (correction == 0)
|
||||
continue;
|
||||
}
|
||||
if (correction == 0)
|
||||
continue;
|
||||
float offset = float(correction) * 0.001f;
|
||||
if (fabs(offset) > 0.101f) {
|
||||
if (fabs(offset) > 0.201f) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ECHOPGM("Excessive bed leveling correction: ");
|
||||
SERIAL_ECHO(offset);
|
||||
SERIAL_ECHOLNPGM(" microns");
|
||||
}
|
||||
else {
|
||||
switch (i) {
|
||||
case 0:
|
||||
for (uint8_t row = 0; row < 3; ++row) {
|
||||
mbl.z_values[row][1] += 0.5f * offset;
|
||||
mbl.z_values[row][0] += offset;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
for (uint8_t row = 0; row < 3; ++row) {
|
||||
mbl.z_values[row][1] += 0.5f * offset;
|
||||
mbl.z_values[row][2] += offset;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (uint8_t col = 0; col < 3; ++col) {
|
||||
mbl.z_values[1][col] += 0.5f * offset;
|
||||
mbl.z_values[0][col] += offset;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (uint8_t col = 0; col < 3; ++col) {
|
||||
mbl.z_values[1][col] += 0.5f * offset;
|
||||
mbl.z_values[2][col] += offset;
|
||||
}
|
||||
break;
|
||||
switch (i) {
|
||||
case 0:
|
||||
{
|
||||
mbl.z_values[0][0] += offset;
|
||||
SERIAL_ECHOPGM("FrontLeft a =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
mbl.z_values[0][1] += offset;
|
||||
SERIAL_ECHOPGM("FrontCentr b =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
mbl.z_values[0][2] += offset;
|
||||
SERIAL_ECHOPGM("FrontRight c =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
mbl.z_values[1][2] += offset;
|
||||
SERIAL_ECHOPGM("MidRight d =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
mbl.z_values[2][2] += offset;
|
||||
SERIAL_ECHOPGM("RearRight e =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
mbl.z_values[2][1] += offset;
|
||||
SERIAL_ECHOPGM("RearCentr f =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
mbl.z_values[2][0] += offset;
|
||||
SERIAL_ECHOPGM("RearLeft g =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
{
|
||||
mbl.z_values[1][0] += offset;
|
||||
SERIAL_ECHOPGM("MidLeft h =");
|
||||
SERIAL_ECHO(correction+0);
|
||||
SERIAL_ECHOLNPGM(" microns.");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// End Hyperfine Bed Tuning
|
||||
// SERIAL_ECHOLNPGM("Bed leveling correction finished");
|
||||
mbl.upsample_3x3(); //bilinear interpolation from 3x3 to 7x7 points while using the same array z_values[iy][ix] for storing (just coppying measured data to new destination and interpolating between them)
|
||||
// SERIAL_ECHOLNPGM("Upsample finished");
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ print $fh <<END
|
|||
#define LANG_ID_UNDEFINED 255
|
||||
|
||||
// Default language ID, if no language is selected.
|
||||
#define LANG_ID_DEFAULT LANG_ID_CZ
|
||||
#define LANG_ID_DEFAULT LANG_ID_EN
|
||||
|
||||
// Number of languages available in the language table.
|
||||
#define LANG_NUM ${num_languages}
|
||||
|
|
|
|||
|
|
@ -116,6 +116,21 @@ const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_BED_CORRECTION_FRONT_CZ
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_FRONT_CENTR_EN[] PROGMEM = "Fr.Centr b[um]";
|
||||
const char * const MSG_BED_CORRECTION_FRONT_CENTR_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_FRONT_CENTR_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_FRONT_LEFT_EN[] PROGMEM = "Fr.Left a[um]";
|
||||
const char * const MSG_BED_CORRECTION_FRONT_LEFT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_FRONT_LEFT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_FRONT_RIGHT_EN[] PROGMEM = "Fr.Right c[um]";
|
||||
const char * const MSG_BED_CORRECTION_FRONT_RIGHT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_FRONT_RIGHT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_LEFT_EN[] PROGMEM = "Left side [um]";
|
||||
const char MSG_BED_CORRECTION_LEFT_CZ[] PROGMEM = "Vlevo [um]";
|
||||
const char * const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -130,6 +145,16 @@ const char * const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_BED_CORRECTION_MENU_CZ
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_MID_LEFT_EN[] PROGMEM = "Mi.Left h[um]";
|
||||
const char * const MSG_BED_CORRECTION_MID_LEFT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_MID_LEFT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_MID_RIGHT_EN[] PROGMEM = "Mi.Right d[um]";
|
||||
const char * const MSG_BED_CORRECTION_MID_RIGHT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_MID_RIGHT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_REAR_EN[] PROGMEM = "Rear side [um]";
|
||||
const char MSG_BED_CORRECTION_REAR_CZ[] PROGMEM = "Vzadu [um]";
|
||||
const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -137,6 +162,21 @@ const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_BED_CORRECTION_REAR_CZ
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_REAR_CENTR_EN[] PROGMEM = "Re.Centr f[um]";
|
||||
const char * const MSG_BED_CORRECTION_REAR_CENTR_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_REAR_CENTR_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_REAR_LEFT_EN[] PROGMEM = "Re.Left g[um]";
|
||||
const char * const MSG_BED_CORRECTION_REAR_LEFT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_REAR_LEFT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_REAR_RIGHT_EN[] PROGMEM = "Re.Right e[um]";
|
||||
const char * const MSG_BED_CORRECTION_REAR_RIGHT_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_REAR_RIGHT_EN
|
||||
};
|
||||
|
||||
const char MSG_BED_CORRECTION_RESET_EN[] PROGMEM = "Reset";
|
||||
const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_BED_CORRECTION_RESET_EN
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#define LANG_ID_UNDEFINED 255
|
||||
|
||||
// Default language ID, if no language is selected.
|
||||
#define LANG_ID_DEFAULT LANG_ID_CZ
|
||||
#define LANG_ID_DEFAULT LANG_ID_EN
|
||||
|
||||
// Number of languages available in the language table.
|
||||
#define LANG_NUM 2
|
||||
|
|
@ -60,12 +60,28 @@ extern const char* const MSG_BED_LANG_TABLE[1];
|
|||
#define MSG_BED LANG_TABLE_SELECT_EXPLICIT(MSG_BED_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_BED_CORRECTION_FRONT LANG_TABLE_SELECT(MSG_BED_CORRECTION_FRONT_LANG_TABLE)
|
||||
extern const char* const MSG_BED_CORRECTION_FRONT_CENTR_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_FRONT_CENTR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_FRONT_CENTR_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_FRONT_LEFT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_FRONT_LEFT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_FRONT_LEFT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_FRONT_RIGHT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_FRONT_RIGHT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_FRONT_RIGHT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_BED_CORRECTION_LEFT LANG_TABLE_SELECT(MSG_BED_CORRECTION_LEFT_LANG_TABLE)
|
||||
extern const char* const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_BED_CORRECTION_MENU LANG_TABLE_SELECT(MSG_BED_CORRECTION_MENU_LANG_TABLE)
|
||||
extern const char* const MSG_BED_CORRECTION_MID_LEFT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_MID_LEFT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_MID_LEFT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_MID_RIGHT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_MID_RIGHT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_BED_CORRECTION_REAR LANG_TABLE_SELECT(MSG_BED_CORRECTION_REAR_LANG_TABLE)
|
||||
extern const char* const MSG_BED_CORRECTION_REAR_CENTR_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_REAR_CENTR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_REAR_CENTR_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_REAR_LEFT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_REAR_LEFT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_REAR_LEFT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_REAR_RIGHT_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_REAR_RIGHT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_REAR_RIGHT_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_RESET_LANG_TABLE[1];
|
||||
#define MSG_BED_CORRECTION_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_RESET_LANG_TABLE, 0)
|
||||
extern const char* const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM];
|
||||
|
|
|
|||
|
|
@ -275,10 +275,23 @@
|
|||
#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"
|
||||
/* Stock Bed correction
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_LEFT "Left side [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_RIGHT "Right side[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT "Front side[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR "Rear side [um]"
|
||||
*/
|
||||
// Hyperfine Bed Tuning
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_LEFT "Fr.Left a[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_CENTR "Fr.Centr b[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_RIGHT "Fr.Right c[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_MID_RIGHT "Mi.Right d[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_RIGHT "Re.Right e[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_CENTR "Re.Centr f[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_LEFT "Re.Left g[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_MID_LEFT "Mi.Left h[um]"
|
||||
// end Hyperfine Bed Tuning
|
||||
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ union MenuData
|
|||
char ip_str[3*4+3+1];
|
||||
} supportMenu;
|
||||
|
||||
// Hyperfine Bed Tuning
|
||||
struct AdjustBed
|
||||
{
|
||||
// 6+13+16=35B
|
||||
|
|
@ -80,16 +81,25 @@ union MenuData
|
|||
// the return menu and encoder state.
|
||||
struct EditMenuParentState editMenuParentState;
|
||||
int8_t status;
|
||||
int8_t left;
|
||||
int8_t right;
|
||||
int8_t front;
|
||||
int8_t rear;
|
||||
int left2;
|
||||
int right2;
|
||||
int front2;
|
||||
int rear2;
|
||||
int8_t front_left;
|
||||
int8_t front_centr;
|
||||
int8_t front_right;
|
||||
int8_t mid_right;
|
||||
int8_t rear_right;
|
||||
int8_t rear_centr;
|
||||
int8_t rear_left;
|
||||
int8_t mid_left;
|
||||
int front_left2;
|
||||
int front_centr2;
|
||||
int front_right2;
|
||||
int mid_right2;
|
||||
int rear_right2;
|
||||
int rear_centr2;
|
||||
int rear_left2;
|
||||
int mid_left2;
|
||||
} adjustBed;
|
||||
|
||||
// End Hyperfine bed Tuning
|
||||
|
||||
// editMenuParentState is used when an edit menu is entered, so it knows
|
||||
// the return menu and encoder state.
|
||||
struct EditMenuParentState editMenuParentState;
|
||||
|
|
@ -1703,7 +1713,10 @@ static void lcd_support_menu()
|
|||
MENU_ITEM(back, PSTR("------------"), lcd_main_menu);
|
||||
MENU_ITEM(back, MSG_DATE, lcd_main_menu);
|
||||
MENU_ITEM(back, PSTR(__DATE__), lcd_main_menu);
|
||||
MENU_ITEM(back, PSTR(__TIME__), lcd_main_menu);
|
||||
MENU_ITEM(back, PSTR(STRING_CONFIG_H_AUTHOR), lcd_main_menu);
|
||||
|
||||
|
||||
// Show the FlashAir IP address, if the card is available.
|
||||
if (menuData.supportMenu.is_flash_air) {
|
||||
MENU_ITEM(back, PSTR("------------"), lcd_main_menu);
|
||||
|
|
@ -2301,13 +2314,18 @@ static void lcd_babystep_z() {
|
|||
|
||||
static void lcd_adjust_bed();
|
||||
|
||||
// Hyperfine Bed Tuning
|
||||
static void lcd_adjust_bed_reset()
|
||||
{
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_LEFT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT, 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT_LEFT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR_LEFT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_LEFT , 0);
|
||||
lcd_goto_menu(lcd_adjust_bed, 0, false);
|
||||
// Because we did not leave the menu, the menuData did not reset.
|
||||
// Force refresh of the bed leveling data.
|
||||
|
|
@ -2315,17 +2333,24 @@ static void lcd_adjust_bed_reset()
|
|||
}
|
||||
|
||||
void adjust_bed_reset() {
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_LEFT, 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT, 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR, 0);
|
||||
menuData.adjustBed.left = menuData.adjustBed.left2 = 0;
|
||||
menuData.adjustBed.right = menuData.adjustBed.right2 = 0;
|
||||
menuData.adjustBed.front = menuData.adjustBed.front2 = 0;
|
||||
menuData.adjustBed.rear = menuData.adjustBed.rear2 = 0;
|
||||
}
|
||||
#define BED_ADJUSTMENT_UM_MAX 50
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT_LEFT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR_RIGHT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR_LEFT , 0);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_LEFT , 0);
|
||||
|
||||
menuData.adjustBed.front_left = menuData.adjustBed.front_left2 = 0;
|
||||
menuData.adjustBed.front_centr = menuData.adjustBed.front_centr2 = 0;
|
||||
menuData.adjustBed.front_right = menuData.adjustBed.front_right2 = 0;
|
||||
menuData.adjustBed.mid_right = menuData.adjustBed.mid_right2 = 0;
|
||||
menuData.adjustBed.rear_right = menuData.adjustBed.rear_right2 = 0;
|
||||
menuData.adjustBed.rear_centr = menuData.adjustBed.rear_centr2 = 0;
|
||||
menuData.adjustBed.rear_left = menuData.adjustBed.rear_left2 = 0;
|
||||
menuData.adjustBed.mid_left = menuData.adjustBed.mid_left2 = 0;}
|
||||
#define BED_ADJUSTMENT_UM_MAX 99
|
||||
|
||||
static void lcd_adjust_bed()
|
||||
{
|
||||
|
|
@ -2334,45 +2359,68 @@ static void lcd_adjust_bed()
|
|||
// Initialize its status.
|
||||
menuData.adjustBed.status = 1;
|
||||
bool valid = false;
|
||||
menuData.adjustBed.left = menuData.adjustBed.left2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT);
|
||||
menuData.adjustBed.right = menuData.adjustBed.right2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT);
|
||||
menuData.adjustBed.front = menuData.adjustBed.front2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT);
|
||||
menuData.adjustBed.rear = menuData.adjustBed.rear2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR);
|
||||
menuData.adjustBed.front_left = menuData.adjustBed.front_left2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT_LEFT);
|
||||
menuData.adjustBed.front_centr = menuData.adjustBed.front_centr2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT);
|
||||
menuData.adjustBed.front_right = menuData.adjustBed.front_right2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT_RIGHT);
|
||||
menuData.adjustBed.mid_right = menuData.adjustBed.mid_right2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT);
|
||||
menuData.adjustBed.rear_right = menuData.adjustBed.rear_right2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR_RIGHT);
|
||||
menuData.adjustBed.rear_centr = menuData.adjustBed.rear_centr2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR);
|
||||
menuData.adjustBed.rear_left = menuData.adjustBed.rear_left2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR_LEFT);
|
||||
menuData.adjustBed.mid_left = menuData.adjustBed.mid_left2 = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT);
|
||||
if (eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1 &&
|
||||
menuData.adjustBed.left >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.left <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.right >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.right <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.front >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.front <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.rear >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.rear <= BED_ADJUSTMENT_UM_MAX)
|
||||
menuData.adjustBed.front_left >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.front_left <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.front_centr >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.front_centr <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.front_right >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.front_right <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.mid_right >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.mid_right <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.rear_right >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.rear_right <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.rear_centr >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.rear_centr <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.rear_left >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.rear_left <= BED_ADJUSTMENT_UM_MAX &&
|
||||
menuData.adjustBed.mid_left >= -BED_ADJUSTMENT_UM_MAX && menuData.adjustBed.mid_left <= BED_ADJUSTMENT_UM_MAX)
|
||||
valid = true;
|
||||
if (! valid) {
|
||||
// Reset the values: simulate an edit.
|
||||
menuData.adjustBed.left2 = 0;
|
||||
menuData.adjustBed.right2 = 0;
|
||||
menuData.adjustBed.front2 = 0;
|
||||
menuData.adjustBed.rear2 = 0;
|
||||
menuData.adjustBed.front_left2 = 0;
|
||||
menuData.adjustBed.front_centr2 = 0;
|
||||
menuData.adjustBed.front_right2 = 0;
|
||||
menuData.adjustBed.mid_right2 = 0;
|
||||
menuData.adjustBed.rear_right2 = 0;
|
||||
menuData.adjustBed.rear_centr2 = 0;
|
||||
menuData.adjustBed.rear_left2 = 0;
|
||||
menuData.adjustBed.mid_left2 = 0;
|
||||
}
|
||||
lcdDrawUpdate = 1;
|
||||
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
|
||||
}
|
||||
|
||||
if (menuData.adjustBed.left != menuData.adjustBed.left2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT, menuData.adjustBed.left = menuData.adjustBed.left2);
|
||||
if (menuData.adjustBed.right != menuData.adjustBed.right2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, menuData.adjustBed.right = menuData.adjustBed.right2);
|
||||
if (menuData.adjustBed.front != menuData.adjustBed.front2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT, menuData.adjustBed.front = menuData.adjustBed.front2);
|
||||
if (menuData.adjustBed.rear != menuData.adjustBed.rear2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR, menuData.adjustBed.rear = menuData.adjustBed.rear2);
|
||||
if (menuData.adjustBed.front_left != menuData.adjustBed.front_left2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT_LEFT, menuData.adjustBed.front_left = menuData.adjustBed.front_left2);
|
||||
if (menuData.adjustBed.front_centr != menuData.adjustBed.front_centr2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT, menuData.adjustBed.front_centr = menuData.adjustBed.front_centr2);
|
||||
if (menuData.adjustBed.front_right != menuData.adjustBed.front_right2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT_RIGHT, menuData.adjustBed.front_right = menuData.adjustBed.front_right2);
|
||||
if (menuData.adjustBed.mid_right != menuData.adjustBed.mid_right2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, menuData.adjustBed.mid_right = menuData.adjustBed.mid_right2);
|
||||
if (menuData.adjustBed.rear_right != menuData.adjustBed.rear_right2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR_RIGHT, menuData.adjustBed.rear_right = menuData.adjustBed.rear_right2);
|
||||
if (menuData.adjustBed.rear_centr != menuData.adjustBed.rear_centr2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR, menuData.adjustBed.rear_centr = menuData.adjustBed.rear_centr2);
|
||||
if (menuData.adjustBed.rear_left != menuData.adjustBed.rear_left2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR_LEFT, menuData.adjustBed.rear_left = menuData.adjustBed.rear_left2);
|
||||
if (menuData.adjustBed.mid_left != menuData.adjustBed.mid_left2)
|
||||
eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT, menuData.adjustBed.mid_left = menuData.adjustBed.mid_left2);
|
||||
|
||||
START_MENU();
|
||||
MENU_ITEM(back, MSG_SETTINGS, lcd_calibration_menu);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_LEFT, &menuData.adjustBed.left2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_RIGHT, &menuData.adjustBed.right2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_FRONT, &menuData.adjustBed.front2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_REAR, &menuData.adjustBed.rear2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM(function, MSG_BED_CORRECTION_RESET, lcd_adjust_bed_reset);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_FRONT_LEFT, &menuData.adjustBed.front_left2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_FRONT_CENTR, &menuData.adjustBed.front_centr2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_FRONT_RIGHT, &menuData.adjustBed.front_right2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_MID_RIGHT, &menuData.adjustBed.mid_right2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_REAR_RIGHT, &menuData.adjustBed.rear_right2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_REAR_CENTR, &menuData.adjustBed.rear_centr2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_REAR_LEFT, &menuData.adjustBed.rear_left2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_MID_LEFT, &menuData.adjustBed.mid_left2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);
|
||||
END_MENU();
|
||||
}
|
||||
// End Hyperfine Bed Tuning
|
||||
|
||||
void pid_extruder() {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue