Merge hyperfine to MK2 3.1.0-RC2
This commit is contained in:
parent
f2d9c00103
commit
a77b5cf981
|
|
@ -51,6 +51,11 @@
|
|||
#define EEPROM_XYZ_CAL_SKEW (EEPROM_SD_SORT - 4)
|
||||
#define EEPROM_WIZARD_ACTIVE (EEPROM_XYZ_CAL_SKEW - 1)
|
||||
|
||||
// addition for hyperfine tuning
|
||||
#define EEPROM_BED_CORRECTION_FRONT_LEFT (EEPROM_WIZARD_ACTIVE - 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)
|
||||
// Currently running firmware, each digit stored as uint16_t.
|
||||
// The flavor differentiates a dev, alpha, beta, release candidate or a release version.
|
||||
#define EEPROM_FIRMWARE_VERSION_END (FW_PRUSA3D_MAGIC_LEN+8)
|
||||
|
|
@ -73,7 +78,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,1106v1)" // 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.
|
||||
|
|
|
|||
|
|
@ -3499,55 +3499,140 @@ void process_commands()
|
|||
}
|
||||
#endif // SUPPORT_VERBOSITY
|
||||
|
||||
for (uint8_t i = 0; i < 4; ++i) {
|
||||
unsigned char codes[4] = { 'L', 'R', 'F', 'B' };
|
||||
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);
|
||||
}
|
||||
if (correction == 0)
|
||||
continue;
|
||||
float offset = float(correction) * 0.001f;
|
||||
if (fabs(offset) > 0.101f) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
// bed correction routine
|
||||
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) {
|
||||
|
||||
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;
|
||||
float offset = float(correction) * 0.001f;
|
||||
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:
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -247,10 +247,10 @@
|
|||
#define MSG_BABYSTEP_Z_NOT_SET "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy."
|
||||
|
||||
#define MSG_BED_CORRECTION_MENU "Korekce podlozky"
|
||||
#define MSG_BED_CORRECTION_LEFT "Vlevo [um]"
|
||||
#define MSG_BED_CORRECTION_RIGHT "Vpravo [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT "Vpredu [um]"
|
||||
#define MSG_BED_CORRECTION_REAR "Vzadu [um]"
|
||||
#define MSG_BED_CORRECTION_MID_LEFT "Vlevo [um]"
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT "Vpravo [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_CENTR "Vpredu [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_CENTR "Vzadu [um]"
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||
|
|
|
|||
|
|
@ -267,11 +267,14 @@
|
|||
+
|
||||
+#define MSG_BED_CORRECTION_MENU "Bett level Korrekt"
|
||||
|
||||
+ #define MSG_BED_CORRECTION_LEFT "Links [um]"
|
||||
+ #define MSG_BED_CORRECTION_RIGHT "Rechts [um]"
|
||||
+ #define MSG_BED_CORRECTION_FRONT "Vorne [um]"
|
||||
+ #define MSG_BED_CORRECTION_REAR "Hinten [um]"
|
||||
+ #define MSG_BED_CORRECTION_RESET "Ruecksetzen"
|
||||
#define MSG_BED_CORRECTION_FRONT_LEFT "Vo.Links [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_CENTR "Vo.Zentrum[um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_RIGHT "Vo.Rechts [um]"
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT "Mi.Rechts [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_RIGHT "Hi.Rechts [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_CENTR "Hi.Zentrum[um]"
|
||||
#define MSG_BED_CORRECTION_REAR_LEFT "Hi.Links [um]"
|
||||
#define MSG_BED_CORRECTION_MID_LEFT "Mi.Links [um]"
|
||||
+
|
||||
+#define MSG_MESH_BED_LEVELING "Mesh Bett Leveling"
|
||||
+ #define MSG_MENU_CALIBRATION "Kalibrierung"
|
||||
|
|
|
|||
|
|
@ -266,10 +266,15 @@
|
|||
#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(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]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_LEFT "FrontLeft [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_CENTR "FrontCentr[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT_RIGHT "FrontRight[um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_MID_RIGHT "MidRight [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_RIGHT "RearRight [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_CENTR "RearCentr [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR_LEFT "RearLeft [um]"
|
||||
#define(length=14,lines=1) MSG_BED_CORRECTION_MID_LEFT "MidLeft [um]"
|
||||
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||
|
|
|
|||
|
|
@ -227,10 +227,10 @@
|
|||
#define MSG_FOLLOW_CALIBRATION_FLOW "Impresora no esta calibrada todavia. Por favor usar el manual, el capitulo First steps, seleccion Calibration flow."
|
||||
#define MSG_BABYSTEP_Z_NOT_SET "Distancia entre la punta de la boquilla y la superficie de la cama no fijada aun. Por favor siga el manual, capitulo First steps, seccion First layer calibration."
|
||||
#define MSG_BED_CORRECTION_MENU "Corr. de la cama"
|
||||
#define MSG_BED_CORRECTION_LEFT "Izquierda [um]"
|
||||
#define MSG_BED_CORRECTION_RIGHT "Derecha [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT "Adelante [um]"
|
||||
#define MSG_BED_CORRECTION_REAR "Atras [um]"
|
||||
#define MSG_BED_CORRECTION_MID_LEFT "Izquierda [um]"
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT "Derecha [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_CEN "Adelante [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_CENT "Atras [um]"
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||
|
|
|
|||
|
|
@ -222,10 +222,10 @@
|
|||
#define MSG_BABYSTEP_Z_NOT_SET "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration."
|
||||
|
||||
#define MSG_BED_CORRECTION_MENU "Correz. liv.letto"
|
||||
#define MSG_BED_CORRECTION_LEFT "Sinistra [um]"
|
||||
#define MSG_BED_CORRECTION_RIGHT "Destra [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT "Fronte [um]"
|
||||
#define MSG_BED_CORRECTION_REAR "Retro [um]"
|
||||
#define MSG_BED_CORRECTION_MID_LEFT "Sinistra [um]"
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT "Destra [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_CENTR "Fronte [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_CENTR "Retro [um]"
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh livel. letto"
|
||||
|
|
|
|||
|
|
@ -233,10 +233,10 @@
|
|||
#define MSG_FOLLOW_CALIBRATION_FLOW "Drukarka nie zostala jeszcze skalibrowana. Prosze kierowac sie instrukcja, rozdzial Zaczynamy, podrozdzial Selftest."
|
||||
#define MSG_BABYSTEP_Z_NOT_SET "Odleglosc dyszy od podkladki nie jest skalibrowana. Postepuj zgodnie z instrukcja rozdzial Zaczynamy, podrozdzial Kalibracja pierwszej warstwy."
|
||||
#define MSG_BED_CORRECTION_MENU "Korekta podkladki"
|
||||
#define MSG_BED_CORRECTION_LEFT "W lewo [um]"
|
||||
#define MSG_BED_CORRECTION_RIGHT "W prawo [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT "Do przodu [um]"
|
||||
#define MSG_BED_CORRECTION_REAR "Do tylu [um]"
|
||||
#define MSG_BED_CORRECTION_MID_LEFT "W lewo [um]"
|
||||
#define MSG_BED_CORRECTION_MID_RIGHT "W prawo [um]"
|
||||
#define MSG_BED_CORRECTION_FRONT_CENTR "Do przodu [um]"
|
||||
#define MSG_BED_CORRECTION_REAR_CENTR "Do tylu [um]"
|
||||
#define MSG_BED_CORRECTION_RESET "Reset"
|
||||
|
||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ union MenuData
|
|||
char ip_str[3*4+3+1];
|
||||
} supportMenu;
|
||||
|
||||
// alternative hyperfine tuning:
|
||||
struct AdjustBed
|
||||
{
|
||||
// 6+13+16=35B
|
||||
|
|
@ -65,14 +66,22 @@ 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;
|
||||
|
||||
// editMenuParentState is used when an edit menu is entered, so it knows
|
||||
|
|
@ -2054,10 +2063,15 @@ static void lcd_adjust_bed();
|
|||
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.
|
||||
|
|
@ -2065,17 +2079,25 @@ 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_VALID, 1);
|
||||
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()
|
||||
{
|
||||
|
|
@ -2084,42 +2106,67 @@ 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_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);
|
||||
MENU_ITEM(function, MSG_BED_CORRECTION_RESET, lcd_adjust_bed_reset);
|
||||
END_MENU();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue