General cleanup of config-store, reset_bed_level
This commit is contained in:
parent
2925852244
commit
4b49ea1e92
6 changed files with 61 additions and 65 deletions
|
@ -173,27 +173,25 @@ void set_bed_leveling_enabled(const bool enable/*=true*/) {
|
||||||
* Reset calibration results to zero.
|
* Reset calibration results to zero.
|
||||||
*/
|
*/
|
||||||
void reset_bed_level() {
|
void reset_bed_level() {
|
||||||
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
|
||||||
|
#endif
|
||||||
set_bed_leveling_enabled(false);
|
set_bed_leveling_enabled(false);
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
if (leveling_is_valid()) {
|
if (leveling_is_valid()) {
|
||||||
mbl.reset();
|
mbl.reset();
|
||||||
mbl.has_mesh = false;
|
mbl.has_mesh = false;
|
||||||
}
|
}
|
||||||
#else
|
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
ubl.reset();
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
#endif
|
bilinear_start[X_AXIS] = bilinear_start[Y_AXIS] =
|
||||||
#if ABL_PLANAR
|
bilinear_grid_spacing[X_AXIS] = bilinear_grid_spacing[Y_AXIS] = 0;
|
||||||
planner.bed_level_matrix.set_to_identity();
|
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
|
||||||
bilinear_start[X_AXIS] = bilinear_start[Y_AXIS] =
|
z_values[x][y] = NAN;
|
||||||
bilinear_grid_spacing[X_AXIS] = bilinear_grid_spacing[Y_AXIS] = 0;
|
#elif ABL_PLANAR
|
||||||
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
|
planner.bed_level_matrix.set_to_identity();
|
||||||
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
|
|
||||||
z_values[x][y] = NAN;
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
|
||||||
ubl.reset();
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -310,7 +310,8 @@
|
||||||
void unified_bed_leveling::G29() {
|
void unified_bed_leveling::G29() {
|
||||||
|
|
||||||
if (!settings.calc_num_meshes()) {
|
if (!settings.calc_num_meshes()) {
|
||||||
SERIAL_PROTOCOLLNPGM("?Enable EEPROM and init with M502, M500.\n");
|
SERIAL_PROTOCOLLNPGM("?Enable EEPROM and init with");
|
||||||
|
SERIAL_PROTOCOLLNPGM("M502, M500, M501 in that order.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -608,7 +609,7 @@
|
||||||
if (parser.seen('L')) { // Load Current Mesh Data
|
if (parser.seen('L')) { // Load Current Mesh Data
|
||||||
g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot;
|
g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot;
|
||||||
|
|
||||||
int16_t a = settings.calc_num_meshes();
|
uint16_t a = settings.calc_num_meshes();
|
||||||
|
|
||||||
if (!a) {
|
if (!a) {
|
||||||
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
||||||
|
@ -650,7 +651,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t a = settings.calc_num_meshes();
|
uint16_t a = settings.calc_num_meshes();
|
||||||
|
|
||||||
if (!a) {
|
if (!a) {
|
||||||
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
||||||
|
|
|
@ -54,7 +54,7 @@ void GcodeSuite::M420() {
|
||||||
|
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
#if ENABLED(EEPROM_SETTINGS)
|
||||||
const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.storage_slot;
|
const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.storage_slot;
|
||||||
const int16_t a = settings.calc_num_meshes();
|
const uint16_t a = settings.calc_num_meshes();
|
||||||
|
|
||||||
if (!a) {
|
if (!a) {
|
||||||
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
|
||||||
|
|
|
@ -2285,7 +2285,7 @@ void kill_screen(const char* lcd_msg) {
|
||||||
* Save Bed Mesh
|
* Save Bed Mesh
|
||||||
*/
|
*/
|
||||||
void _lcd_ubl_storage_mesh() {
|
void _lcd_ubl_storage_mesh() {
|
||||||
int16_t a = settings.calc_num_meshes();
|
uint16_t a = settings.calc_num_meshes();
|
||||||
START_MENU();
|
START_MENU();
|
||||||
MENU_BACK(MSG_UBL_LEVEL_BED);
|
MENU_BACK(MSG_UBL_LEVEL_BED);
|
||||||
if (!WITHIN(ubl_storage_slot, 0, a - 1)) {
|
if (!WITHIN(ubl_storage_slot, 0, a - 1)) {
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
* 539 M200 D parser.volumetric_enabled (bool)
|
* 539 M200 D parser.volumetric_enabled (bool)
|
||||||
* 540 M200 T D planner.filament_size (float x5) (T0..3)
|
* 540 M200 T D planner.filament_size (float x5) (T0..3)
|
||||||
*
|
*
|
||||||
* HAVE_TMC2130: 22 bytes
|
* HAS_TRINAMIC: 22 bytes
|
||||||
* 560 M906 X Stepper X current (uint16_t)
|
* 560 M906 X Stepper X current (uint16_t)
|
||||||
* 562 M906 Y Stepper Y current (uint16_t)
|
* 562 M906 Y Stepper Y current (uint16_t)
|
||||||
* 564 M906 Z Stepper Z current (uint16_t)
|
* 564 M906 Z Stepper Z current (uint16_t)
|
||||||
|
@ -155,28 +155,28 @@
|
||||||
* 580 M906 E4 Stepper E4 current (uint16_t)
|
* 580 M906 E4 Stepper E4 current (uint16_t)
|
||||||
*
|
*
|
||||||
* SENSORLESS HOMING 4 bytes
|
* SENSORLESS HOMING 4 bytes
|
||||||
* 580 M914 X Stepper X and X2 threshold (int16_t)
|
* 582 M914 X Stepper X and X2 threshold (int16_t)
|
||||||
* 582 M914 Y Stepper Y and Y2 threshold (int16_t)
|
* 584 M914 Y Stepper Y and Y2 threshold (int16_t)
|
||||||
*
|
*
|
||||||
* LIN_ADVANCE: 8 bytes
|
* LIN_ADVANCE: 8 bytes
|
||||||
* 582 M900 K extruder_advance_k (float)
|
* 586 M900 K extruder_advance_k (float)
|
||||||
* 586 M900 WHD advance_ed_ratio (float)
|
* 590 M900 WHD advance_ed_ratio (float)
|
||||||
*
|
*
|
||||||
* HAS_MOTOR_CURRENT_PWM:
|
* HAS_MOTOR_CURRENT_PWM:
|
||||||
* 590 M907 X Stepper XY current (uint32_t)
|
* 594 M907 X Stepper XY current (uint32_t)
|
||||||
* 594 M907 Z Stepper Z current (uint32_t)
|
* 598 M907 Z Stepper Z current (uint32_t)
|
||||||
* 598 M907 E Stepper E current (uint32_t)
|
* 602 M907 E Stepper E current (uint32_t)
|
||||||
*
|
*
|
||||||
* CNC_COORDINATE_SYSTEMS 108 bytes
|
* CNC_COORDINATE_SYSTEMS 108 bytes
|
||||||
* 602 G54-G59.3 coordinate_system (float x 27)
|
* 606 G54-G59.3 coordinate_system (float x 27)
|
||||||
*
|
*
|
||||||
* SKEW_CORRECTION: 12 bytes
|
* SKEW_CORRECTION: 12 bytes
|
||||||
* 710 M852 I planner.xy_skew_factor (float)
|
* 714 M852 I planner.xy_skew_factor (float)
|
||||||
* 714 M852 J planner.xz_skew_factor (float)
|
* 718 M852 J planner.xz_skew_factor (float)
|
||||||
* 718 M852 K planner.yz_skew_factor (float)
|
* 722 M852 K planner.yz_skew_factor (float)
|
||||||
*
|
*
|
||||||
* 722 Minimum end-point
|
* 726 Minimum end-point
|
||||||
* 2251 (722 + 208 + 36 + 9 + 288 + 988) Maximum end-point
|
* 2255 (726 + 208 + 36 + 9 + 288 + 988) Maximum end-point
|
||||||
*
|
*
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* meshes_begin (between max and min end-point, directly above)
|
* meshes_begin (between max and min end-point, directly above)
|
||||||
|
@ -290,7 +290,7 @@ void MarlinSettings::postprocess() {
|
||||||
bool MarlinSettings::eeprom_error;
|
bool MarlinSettings::eeprom_error;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||||
int MarlinSettings::meshes_begin;
|
int16_t MarlinSettings::meshes_begin;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1256,7 +1256,7 @@ void MarlinSettings::postprocess() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int MarlinSettings::calc_num_meshes() {
|
uint16_t MarlinSettings::calc_num_meshes() {
|
||||||
//obviously this will get more sophisticated once we've added an actual MAT
|
//obviously this will get more sophisticated once we've added an actual MAT
|
||||||
|
|
||||||
if (meshes_begin <= 0) return 0;
|
if (meshes_begin <= 0) return 0;
|
||||||
|
@ -1264,10 +1264,10 @@ void MarlinSettings::postprocess() {
|
||||||
return (meshes_end - meshes_begin) / sizeof(ubl.z_values);
|
return (meshes_end - meshes_begin) / sizeof(ubl.z_values);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarlinSettings::store_mesh(int8_t slot) {
|
void MarlinSettings::store_mesh(const int8_t slot) {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||||
const int a = calc_num_meshes();
|
const int16_t a = calc_num_meshes();
|
||||||
if (!WITHIN(slot, 0, a - 1)) {
|
if (!WITHIN(slot, 0, a - 1)) {
|
||||||
#if ENABLED(EEPROM_CHITCHAT)
|
#if ENABLED(EEPROM_CHITCHAT)
|
||||||
ubl_invalid_slot(a);
|
ubl_invalid_slot(a);
|
||||||
|
@ -1280,11 +1280,10 @@ void MarlinSettings::postprocess() {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t crc = 0;
|
uint16_t crc = 0;
|
||||||
bool status;
|
|
||||||
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
||||||
|
|
||||||
HAL::PersistentStore::access_start();
|
HAL::PersistentStore::access_start();
|
||||||
status = HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc);
|
const bool status = HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc);
|
||||||
HAL::PersistentStore::access_finish();
|
HAL::PersistentStore::access_finish();
|
||||||
|
|
||||||
if (status)
|
if (status)
|
||||||
|
@ -1304,7 +1303,7 @@ void MarlinSettings::postprocess() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarlinSettings::load_mesh(int8_t slot, void *into /* = 0 */) {
|
void MarlinSettings::load_mesh(const int8_t slot, void * const into/*=NULL*/) {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||||
|
|
||||||
|
@ -1320,10 +1319,9 @@ void MarlinSettings::postprocess() {
|
||||||
uint16_t crc = 0;
|
uint16_t crc = 0;
|
||||||
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
||||||
uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values;
|
uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values;
|
||||||
uint16_t status;
|
|
||||||
|
|
||||||
HAL::PersistentStore::access_start();
|
HAL::PersistentStore::access_start();
|
||||||
status = HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc);
|
const uint16_t status = HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc);
|
||||||
HAL::PersistentStore::access_finish();
|
HAL::PersistentStore::access_finish();
|
||||||
|
|
||||||
if (status)
|
if (status)
|
||||||
|
@ -1373,17 +1371,13 @@ void MarlinSettings::reset() {
|
||||||
planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
|
planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
|
||||||
planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
|
planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
|
||||||
planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE;
|
planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE;
|
||||||
planner.min_segment_time_us = DEFAULT_MINSEGMENTTIME;
|
|
||||||
planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE;
|
planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE;
|
||||||
|
planner.min_segment_time_us = DEFAULT_MINSEGMENTTIME;
|
||||||
planner.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
planner.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||||
planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||||
planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
|
planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
|
||||||
planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
|
planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
|
||||||
|
|
||||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
||||||
new_z_fade_height = 0.0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAS_HOME_OFFSET
|
#if HAS_HOME_OFFSET
|
||||||
ZERO(home_offset);
|
ZERO(home_offset);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1405,7 +1399,14 @@ void MarlinSettings::reset() {
|
||||||
LOOP_XYZ(i) HOTEND_LOOP() hotend_offset[i][e] = tmp4[i][e];
|
LOOP_XYZ(i) HOTEND_LOOP() hotend_offset[i][e] = tmp4[i][e];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Applies to all MBL and ABL
|
//
|
||||||
|
// Global Leveling
|
||||||
|
//
|
||||||
|
|
||||||
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||||
|
new_z_fade_height = 0.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_LEVELING
|
#if HAS_LEVELING
|
||||||
reset_bed_level();
|
reset_bed_level();
|
||||||
#endif
|
#endif
|
||||||
|
@ -1466,10 +1467,6 @@ void MarlinSettings::reset() {
|
||||||
lcd_preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED;
|
lcd_preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_LCD_CONTRAST
|
|
||||||
lcd_contrast = DEFAULT_LCD_CONTRAST;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(PIDTEMP)
|
#if ENABLED(PIDTEMP)
|
||||||
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
|
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
|
||||||
HOTEND_LOOP()
|
HOTEND_LOOP()
|
||||||
|
@ -1493,6 +1490,10 @@ void MarlinSettings::reset() {
|
||||||
thermalManager.bedKd = scalePID_d(DEFAULT_bedKd);
|
thermalManager.bedKd = scalePID_d(DEFAULT_bedKd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HAS_LCD_CONTRAST
|
||||||
|
lcd_contrast = DEFAULT_LCD_CONTRAST;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(FWRETRACT)
|
#if ENABLED(FWRETRACT)
|
||||||
fwretract.reset();
|
fwretract.reset();
|
||||||
#endif
|
#endif
|
||||||
|
@ -1579,10 +1580,6 @@ void MarlinSettings::reset() {
|
||||||
stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q]));
|
stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q]));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
|
||||||
ubl.reset();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(SKEW_CORRECTION_GCODE)
|
#if ENABLED(SKEW_CORRECTION_GCODE)
|
||||||
planner.xy_skew_factor = XY_SKEW_FACTOR;
|
planner.xy_skew_factor = XY_SKEW_FACTOR;
|
||||||
#if ENABLED(SKEW_CORRECTION_FOR_Z)
|
#if ENABLED(SKEW_CORRECTION_FOR_Z)
|
||||||
|
|
|
@ -37,11 +37,11 @@ class MarlinSettings {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
||||||
// That can store is enabled
|
// That can store is enabled
|
||||||
FORCE_INLINE static int get_start_of_meshes() { return meshes_begin; }
|
FORCE_INLINE static int16_t get_start_of_meshes() { return meshes_begin; }
|
||||||
FORCE_INLINE static int get_end_of_meshes() { return meshes_end; }
|
FORCE_INLINE static int16_t get_end_of_meshes() { return meshes_end; }
|
||||||
static int calc_num_meshes();
|
static uint16_t calc_num_meshes();
|
||||||
static void store_mesh(int8_t slot);
|
static void store_mesh(const int8_t slot);
|
||||||
static void load_mesh(int8_t slot, void *into = 0);
|
static void load_mesh(const int8_t slot, void * const into=NULL);
|
||||||
|
|
||||||
//static void delete_mesh(); // necessary if we have a MAT
|
//static void delete_mesh(); // necessary if we have a MAT
|
||||||
//static void defrag_meshes(); // "
|
//static void defrag_meshes(); // "
|
||||||
|
@ -66,9 +66,9 @@ class MarlinSettings {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
||||||
// That can store is enabled
|
// That can store is enabled
|
||||||
static int meshes_begin;
|
static int16_t meshes_begin;
|
||||||
const static int meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always
|
const static int16_t meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always
|
||||||
// live at the very end of the eeprom
|
// live at the very end of the eeprom
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Reference in a new issue