Add automatic mesh grid rebuild feature for chiron
This commit is contained in:
@@ -88,7 +88,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#if ENABLED(KNUTWURST_CHIRON)
|
#if ENABLED(KNUTWURST_CHIRON)
|
||||||
#define KNUTWURST_TFT_LEVELING
|
//#define KNUTWURST_TFT_LEVELING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -1716,6 +1716,14 @@
|
|||||||
|
|
||||||
// Probe along the Y axis, advancing X after each column
|
// Probe along the Y axis, advancing X after each column
|
||||||
//#define PROBE_Y_FIRST
|
//#define PROBE_Y_FIRST
|
||||||
|
/*
|
||||||
|
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
||||||
|
#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
|
||||||
|
#define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE_LEFT + 380)
|
||||||
|
#define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE + 9)
|
||||||
|
#define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE_FRONT + 380)
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
|
@@ -66,9 +66,29 @@ char _conv[8];
|
|||||||
SAVE_zprobe_zoffset = probe.offset.z;
|
SAVE_zprobe_zoffset = probe.offset.z;
|
||||||
#else
|
#else
|
||||||
SERIAL_ECHOPAIR("MEANL_L:", 0xaa);
|
SERIAL_ECHOPAIR("MEANL_L:", 0xaa);
|
||||||
probe.offset = NOZZLE_TO_PROBE_OFFSET;
|
constexpr float dpo[] = NOZZLE_TO_PROBE_OFFSET;
|
||||||
|
probe.offset.z = dpo[Z_AXIS];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void initializeGrid() {
|
||||||
|
reset_bed_level();
|
||||||
|
|
||||||
|
// Initialize a grid with the given dimensions
|
||||||
|
bilinear_grid_spacing[X_AXIS] = (MIN_PROBE_EDGE_RIGHT - MIN_PROBE_EDGE_LEFT) / (GRID_MAX_POINTS_X - 1);
|
||||||
|
bilinear_grid_spacing[Y_AXIS] = (MIN_PROBE_EDGE_BACK - MIN_PROBE_EDGE_FRONT) / (GRID_MAX_POINTS_Y - 1);
|
||||||
|
bilinear_start[X_AXIS] = MIN_PROBE_EDGE_LEFT;
|
||||||
|
bilinear_start[Y_AXIS] = MIN_PROBE_EDGE_FRONT;
|
||||||
|
|
||||||
|
constexpr float dpo[] = NOZZLE_TO_PROBE_OFFSET;
|
||||||
|
probe.offset.z = dpo[Z_AXIS];
|
||||||
|
|
||||||
|
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) {
|
||||||
|
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) {
|
||||||
|
z_values[x][y] = (float)-2.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(POWER_OUTAGE_TEST)
|
#if ENABLED(POWER_OUTAGE_TEST)
|
||||||
@@ -596,6 +616,9 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
|||||||
{
|
{
|
||||||
SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults");
|
SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults");
|
||||||
queue.inject_P(PSTR("M502"));
|
queue.inject_P(PSTR("M502"));
|
||||||
|
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
||||||
|
initializeGrid();
|
||||||
|
#endif
|
||||||
buzzer.tone(105, 1661);
|
buzzer.tone(105, 1661);
|
||||||
buzzer.tone(210, 1108);
|
buzzer.tone(210, 1108);
|
||||||
}
|
}
|
||||||
@@ -1996,6 +2019,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 35: //RESET AUTOBED DATE //M1000
|
case 35: //RESET AUTOBED DATE //M1000
|
||||||
|
initializeGrid();
|
||||||
break;
|
break;
|
||||||
case 36: // A36 auto leveling (Old Anycubic TFT)
|
case 36: // A36 auto leveling (Old Anycubic TFT)
|
||||||
if( (planner.movesplanned()) || (card.isPrinting()) ) {
|
if( (planner.movesplanned()) || (card.isPrinting()) ) {
|
||||||
|
Reference in New Issue
Block a user