Revert "Complete rework of the Chiron ABL feature."

This reverts commit 2024943390.
This commit is contained in:
Knutwurst
2021-05-16 17:58:14 +02:00
parent 2024943390
commit 5f196b1702
2 changed files with 128 additions and 238 deletions

View File

@@ -41,10 +41,10 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define CUSTOM_BUILD_VERSION "1.2.0-beta.4"
#define CUSTOM_BUILD_VERSION "1.2.0-beta.3"
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2021-05-16"
#define STRING_DISTRIBUTION_DATE "2021-05-14"
#endif
/**

View File

@@ -25,10 +25,9 @@
#include <string.h>
#include "../gcode/queue.h"
#include "../gcode/parser.h"
#include "../feature/e_parser.h"
#include "../feature/pause.h"
//#include "../feature/bedlevel/mbl/mesh_bed_leveling.h"
#include "../feature/bedlevel/bedlevel.h"
#include "../libs/buzzer.h"
#include "../module/planner.h"
#include "../module/printcounter.h"
@@ -38,25 +37,17 @@
#include "../module/probe.h"
#include "../sd/cardreader.h"
#ifdef ANYCUBIC_TOUCHSCREEN
#include "anycubic_touchscreen.h"
#include "HardwareSerial.h"
#if HAS_LEVELING
#include "../feature/bedlevel/bedlevel.h"
#endif
char _conv[8];
#if ENABLED(KNUTWURST_TFT_LEVELING)
int z_values_index;
int z_values_size;
float SAVE_zprobe_zoffset;
float tempZ = 0.0;
bed_mesh_t temp_z_values;
/*
void restore_z_values() {
uint16_t size = z_values_size;
int pos = z_values_index;
@@ -69,7 +60,6 @@ char _conv[8];
} while (--size);
}
void setupMyZoffset() {
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
SERIAL_ECHOPAIR("MEANL_L:", 0x55);
@@ -81,7 +71,6 @@ char _conv[8];
#endif
}
void initializeGrid() {
reset_bed_level();
@@ -100,7 +89,6 @@ char _conv[8];
}
}
}
*/
#endif
#if ENABLED(POWER_OUTAGE_TEST)
@@ -168,12 +156,10 @@ void AnycubicTouchscreenClass::Setup()
{
HardwareSerial.begin(115200);
/*
#if ENABLED(KNUTWURST_TFT_LEVELING)
setupMyZoffset();
delay(10);
#endif
*/
HARDWARE_SERIAL_ENTER();
HARDWARE_SERIAL_PROTOCOLPGM("J17"); // J17 Main board reset
@@ -630,6 +616,9 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
{
SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults");
queue.inject_P(PSTR("M502"));
#if ENABLED(KNUTWURST_TFT_LEVELING)
initializeGrid();
#endif
buzzer.tone(105, 1661);
buzzer.tone(210, 1108);
}
@@ -1885,11 +1874,11 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
}
currentTouchscreenSelection[0] = 0;
#endif
break;
#ifdef SERVO_ENDSTOPS
case 27: // A27 servos angles adjust
break;
#ifdef SERVO_ENDSTOPS
case 27: // A27 servos angles adjust
break;
#endif
#endif
case 28: // A28 filament test
{
if (CodeSeen('O'))
@@ -1912,235 +1901,136 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
#endif
#if ENABLED(KNUTWURST_TFT_LEVELING)
case 29: // A29 bed grid read
if((!planner.movesplanned())&&(TFTstate!=ANYCUBIC_TFT_STATE_SDPAUSE) && (TFTstate!=ANYCUBIC_TFT_STATE_SDOUTAGE))
{
#if HAS_BED_PROBE
uint16_t x = 0;
uint16_t y = 0;
if(CodeSeen('X')) { x = CodeValue(); }
if(CodeSeen('Y')) { y = CodeValue(); }
HARDWARE_SERIAL_PROTOCOLPGM("A29V ");
HARDWARE_SERIAL_PROTOCOL_F( LINEAR_UNIT(z_values[x][y]) * 100, 3 );
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPGM("A29V ");
SERIAL_ECHO_F( LINEAR_UNIT(mbl.z_values[x][y]), 5 );
SERIAL_ECHOLNPGM(">");
#endif
#endif
}
break;
case 30: // A30 auto leveling (Old Anycubic TFT) - see A36 for new
if( (planner.movesplanned()) || (card.isPrinting()) )
{
HARDWARE_SERIAL_PROTOCOLPGM("J24"); // forbid auto leveling
HARDWARE_SERIAL_ENTER();
}
else
{
HARDWARE_SERIAL_PROTOCOLPGM("J26"); // start auto leveling
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('S'))
{
//queue.enqueue_now_P(PSTR("G28\nG29"));
queue.enqueue_now_P(PSTR("G91\nG1 Z10 F240\nG90"));
queue.enqueue_now_P(PSTR("\nG28"));
queue.enqueue_now_P(PSTR("\nG29"));
}
/*
else if(CodeSeen('O'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Leveling starting at front left");
#endif
queue.enqueue_now_P(PSTR("G91\nG1 Z10 F240\nG90\nG28\nG29\nG1 X20 Y20 F6000\nG1 Z0 F240"));
}
else if(CodeSeen('T'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level checkpoint front right...");
#endif
queue.enqueue_now_P(PSTR("G1 Z5 F240\nG1 X190 Y20 F6000\nG1 Z0 F240"));
}
else if(CodeSeen('C'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level checkpoint back right...");
#endif
queue.enqueue_now_P(PSTR("G1 Z5 F240\nG1 X190 Y190 F6000\nG1 Z0 F240"));
}
else if(CodeSeen('Q'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level checkpoint back left...");
#endif
queue.enqueue_now_P(PSTR("G1 Z5 F240\nG1 X190 Y20 F6000\nG1 Z0 F240"));
}
else if(CodeSeen('H'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level check no heating...");
#endif
//queue.enqueue_now_P(PSTR("... i don't know ..."));
HARDWARE_SERIAL_PROTOCOLPGM("J22"); // J22 Test print done
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Serial Debug: Leveling print test done... J22");
#endif
}
else if(CodeSeen('L'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level check heating...");
#endif
//queue.enqueue_now_P(PSTR("... something else ..."));
HARDWARE_SERIAL_PROTOCOLPGM("J22"); // J22 Test print done
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Serial Debug: Leveling print test with heating done... J22");
#endif
}
*/
break;
case 31: // A31 zoffset set get or save
if((!planner.movesplanned())&&(TFTstate!=ANYCUBIC_TFT_STATE_SDPAUSE) && (TFTstate!=ANYCUBIC_TFT_STATE_SDOUTAGE))
{
#if HAS_BED_PROBE
if(CodeSeen('S'))
{
float value = constrain(CodeValue(), -1.0, 1.0);
tempZ += value;
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] += value;
}
}
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
HARDWARE_SERIAL_PROTOCOL(tempZ);
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPGM("TFT sending current z-probe offset data... <");
SERIAL_ECHOPGM("A31V ");
SERIAL_ECHO(tempZ);
SERIAL_ECHOLNPGM(">");
#endif
reset_bed_level();
}
if(CodeSeen('G'))
{
tempZ = probe.offset.z;
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
HARDWARE_SERIAL_PROTOCOL(tempZ);
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPGM("A31V ");
SERIAL_ECHO(tempZ);
SERIAL_ECHOLNPGM(">");
#endif
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
{
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
{
temp_z_values[x][y] = z_values[x][y];
}
}
}
if(CodeSeen('D'))
{
SERIAL_ECHOPGM("M851 Z ");
SERIAL_ECHO(probe.offset.z);
SERIAL_ECHOLNPGM(">");
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] = temp_z_values[x][y];
}
}
probe.offset.z = tempZ;
queue.enqueue_now_P(PSTR("M420 S1"));
settings.save();
}
#endif
}
HARDWARE_SERIAL_ENTER();
break;
case 32: //a32 clean leveling beep flag
if(CodeSeen('S'))
{
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Level saving data...");
#endif
queue.enqueue_now_P(PSTR("M500\nM420 S1\nG1 Z10 F240\nG1 X0 Y0 F6000"));
HARDWARE_SERIAL_SUCC_START;
HARDWARE_SERIAL_ENTER();
}
break;
case 33: // A33 get version info
{
HARDWARE_SERIAL_PROTOCOLPGM("J33 ");
HARDWARE_SERIAL_PROTOCOLPGM("KW-");
HARDWARE_SERIAL_PROTOCOLPGM(MSG_MY_VERSION);
HARDWARE_SERIAL_ENTER();
}
break;
case 34: //a34 bed grid write
{
uint16_t x = 0;
uint16_t y = 0;
if(CodeSeen('X')) { x = constrain(CodeValue(), 0, GRID_MAX_POINTS_X); }
if(CodeSeen('Y')) { y = constrain(CodeValue(), 0, GRID_MAX_POINTS_Y); }
if(CodeSeen('V'))
if(CodeSeen('X')) x = CodeValue();
if(CodeSeen('Y')) y = CodeValue();
float Zvalue = z_values[x][y];
Zvalue = Zvalue * 100;
refresh_bed_level();
set_bed_leveling_enabled(true);
if ((!planner.movesplanned()) && (TFTstate != ANYCUBIC_TFT_STATE_SDPAUSE) && (TFTstate != ANYCUBIC_TFT_STATE_SDOUTAGE))
{
temp_z_values[x][y] = (float)constrain(CodeValue()/100,-10,10);
reset_bed_level();
}
if(CodeSeen('S'))
{
reset_bed_level();
queue.enqueue_now_P(PSTR("M420 S1"));
settings.save();
}
if(CodeSeen('C'))
{
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) {
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) {
temp_z_values[x][y] = NAN;
}
if (!all_axes_known())
{
queue.enqueue_now_P(PSTR("G28"));
} else {
destination[Z_AXIS] = (float)(5.0);
prepare_line_to_destination();
feedrate_mm_s = MMM_TO_MMS(3600.0f);
destination[X_AXIS] = _GET_MESH_X(x);
destination[Y_AXIS] = _GET_MESH_Y(y);
prepare_line_to_destination();
destination[Z_AXIS] = (float)(EXT_LEVEL_HIGH);
prepare_line_to_destination();
report_current_position();
}
reset_bed_level();
set_bed_leveling_enabled(true);
}
HARDWARE_SERIAL_PROTOCOLPGM("A29V ");
HARDWARE_SERIAL_PROTOCOL(ftostr32(Zvalue));
HARDWARE_SERIAL_ENTER();
}
break;
case 35: //RESET AUTOBED DATE //M1000
break;
case 36: // A36 auto leveling (New Anycubic TFT) - see A30 for old
if( (planner.movesplanned()) || (card.isPrinting()) )
{
case 30: // A30 auto leveling (Old Anycubic TFT)
if( (planner.movesplanned()) || (card.isPrinting()) ) {
HARDWARE_SERIAL_PROTOCOLPGM("J24"); // forbid auto leveling
HARDWARE_SERIAL_ENTER();
} else {
HARDWARE_SERIAL_PROTOCOLPGM("J26"); // start auto leveling
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('S') )
if(CodeSeen('S') ) {
queue.enqueue_now_P(PSTR("G28\nG29"));
}
break;
case 31: // A31 zoffset set get or save
if(CodeSeen('S'))
{
float value = constrain(CodeValue(),-1.0,1.0);
probe.offset.z += value;
for (x = 0; x < GRID_MAX_POINTS_X; x++) {
for (y = 0; y < GRID_MAX_POINTS_Y; y++) z_values[x][y] += value;
}
set_bed_leveling_enabled(true);
refresh_bed_level();
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
HARDWARE_SERIAL_PROTOCOL(ftostr32(probe.offset.z));
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('G'))
{
SAVE_zprobe_zoffset = probe.offset.z;
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
HARDWARE_SERIAL_PROTOCOL(ftostr32(SAVE_zprobe_zoffset));
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('D'))
{
SAVE_zprobe_zoffset = probe.offset.z;
settings.save();
set_bed_leveling_enabled(true);
refresh_bed_level();
}
HARDWARE_SERIAL_ENTER();
break;
case 32: //a32 clean leveling beep flag
break;
case 33: // A33 get version info
{
HARDWARE_SERIAL_PROTOCOLPGM("J33 ");
HARDWARE_SERIAL_PROTOCOLPGM("KW-");
HARDWARE_SERIAL_PROTOCOLPGM(MSG_MY_VERSION);
HARDWARE_SERIAL_ENTER();
}
break;
case 34: //a34 bed grid write
{
if(CodeSeen('X')) x = constrain(CodeValue(),0,GRID_MAX_POINTS_X);
if(CodeSeen('Y')) y = constrain(CodeValue(),0,GRID_MAX_POINTS_Y);
if(CodeSeen('V'))
{
//queue.enqueue_now_P(PSTR("G28\nG29"));
queue.enqueue_now_P(PSTR("G91\nG1 Z10 F240\nG90"));
queue.enqueue_now_P(PSTR("\nG28"));
queue.enqueue_now_P(PSTR("\nG29"));
//z_values[x][y] = (float)constrain(CodeValue()/100,-10,10);
float new_z_value = (float)constrain(CodeValue()/100,-10,10);
z_values[x][y] = new_z_value;
set_bed_leveling_enabled(true);
refresh_bed_level();
}
if(CodeSeen('S'))
{
refresh_bed_level();
set_bed_leveling_enabled(true);
settings.save();
}
if(CodeSeen('C'))
{
restore_z_values();
probe.offset.z = SAVE_zprobe_zoffset;
set_bed_leveling_enabled(true);
refresh_bed_level();
}
}
break;
case 35: //RESET AUTOBED DATE //M1000
initializeGrid();
break;
case 36: // A36 auto leveling (Old Anycubic TFT)
if( (planner.movesplanned()) || (card.isPrinting()) ) {
HARDWARE_SERIAL_PROTOCOLPGM("J24"); // forbid auto leveling
HARDWARE_SERIAL_ENTER();
} else {
HARDWARE_SERIAL_PROTOCOLPGM("J26"); // start auto leveling
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('S') ) {
queue.enqueue_now_P(PSTR("G28\nG29"));
}
#endif