Implement Z Offset editing via BLTouch submenu.
This commit is contained in:
@@ -225,8 +225,10 @@ void AnycubicTouchscreenClass::Setup()
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
if ((READ(FILAMENT_RUNOUT_PIN) == true) && FilamentSensorEnabled)
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifndef ANYCUBIC_TFT_DEBUG
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#endif
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout... J15");
|
||||
#endif
|
||||
@@ -238,10 +240,12 @@ void AnycubicTouchscreenClass::Setup()
|
||||
SpecialMenu = false;
|
||||
MMLMenu = false;
|
||||
FlowMenu = false;
|
||||
BLTouchMenu = false;
|
||||
LevelMenu = false;
|
||||
FilamentSensorEnabled = true;
|
||||
MyFileNrCnt = 0;
|
||||
currentFlowRate = 100;
|
||||
currentZOffset = 0.0;
|
||||
flowRateBuffer = SM_FLOW_DISP_L;
|
||||
|
||||
#ifdef STARTUP_CHIME
|
||||
@@ -832,6 +836,42 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
SERIAL_ECHOLNPGM("Special Menu: Exit Flow Menu");
|
||||
FlowMenu = false;
|
||||
}
|
||||
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZMENU_L)) != NULL)
|
||||
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZMENU_S)) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Enter BLTouch Menu");
|
||||
BLTouchMenu = true;
|
||||
}
|
||||
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_L)) != NULL)
|
||||
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_UP_S)) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Offset UP");
|
||||
currentZOffset = currentZOffset + 0.01;
|
||||
|
||||
char value[30];
|
||||
sprintf_P(value, PSTR("M851 Z%i"), currentZOffset);
|
||||
queue.enqueue_one_now(value);
|
||||
|
||||
}
|
||||
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_DN_L)) != NULL)
|
||||
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_DN_S)) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Offset Down");
|
||||
currentZOffset = currentZOffset - 0.01;
|
||||
|
||||
char value[30];
|
||||
sprintf_P(value, PSTR("M851 Z%i"), currentZOffset);
|
||||
queue.enqueue_one_now(value);
|
||||
}
|
||||
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_L)) != NULL)
|
||||
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_BLTZ_EXIT_S)) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Exit BLTouch Menu & Save EEPROM");
|
||||
settings.save(); // M500
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(210, 1661);
|
||||
BLTouchMenu = false;
|
||||
}
|
||||
else if ((strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_L)) != NULL)
|
||||
|| (strcasestr_P(currentTouchscreenSelection, PSTR(SM_EZLVL_MENU_S)) != NULL))
|
||||
{
|
||||
@@ -966,6 +1006,33 @@ void AnycubicTouchscreenClass::PrintList()
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(BLTouchMenu)
|
||||
{
|
||||
zOffsetBuffer = SM_BLTZ_DISP_L;
|
||||
zOffsetBuffer.replace("XXXXX", String(currentZOffset));
|
||||
|
||||
switch (filenumber)
|
||||
{
|
||||
case 0: // Page 1
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_DISP_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLN(zOffsetBuffer);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_UP_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_UP_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_DN_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_DN_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_L);
|
||||
break;
|
||||
|
||||
case 4: // Page 2
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_EXIT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZ_EXIT_L);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(LevelMenu)
|
||||
{
|
||||
switch (filenumber)
|
||||
@@ -1003,46 +1070,46 @@ void AnycubicTouchscreenClass::PrintList()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_L);
|
||||
break;
|
||||
break;
|
||||
|
||||
#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
|
||||
case 4: // Page 2 for Manual Mesh Bed Level
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
case 4: // Page 2 for BLTouch
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
|
||||
case 4: // Page 2 for Manual Mesh Bed Level
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
||||
case 4: // Page 2 for Chiron ABL
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESETLV_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESETLV_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
break;
|
||||
#endif
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
case 4: // Page 2 for BLTouch
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZMENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTZMENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
||||
case 4: // Page 2 for Chiron ABL
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EZLVL_MENU_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESETLV_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESETLV_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 8: // Page 3
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S);
|
||||
@@ -1053,12 +1120,12 @@ void AnycubicTouchscreenClass::PrintList()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_L);
|
||||
break;
|
||||
break;
|
||||
|
||||
case 12: // Page 3
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
|
||||
break;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
@@ -1229,8 +1296,10 @@ void AnycubicTouchscreenClass::CheckHeaterError()
|
||||
if (HeaterCheckCount > 60000)
|
||||
{
|
||||
HeaterCheckCount = 0;
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J10"); // J10 Hotend temperature abnormal
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifndef ANYCUBIC_TFT_DEBUG
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J10"); // J10 Hotend temperature abnormal
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#endif
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Hotend temperature abnormal... J20");
|
||||
#endif
|
||||
@@ -2070,7 +2139,30 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
}
|
||||
break;
|
||||
case 31: // A31 z-offset
|
||||
if(CodeSeen('S')) // set
|
||||
|
||||
if(CodeSeen('C')) // restore
|
||||
{
|
||||
SAVE_zprobe_zoffset = probe.offset.z;
|
||||
queue.inject_P(PSTR("M501\nM420 S1"));
|
||||
}
|
||||
|
||||
if(CodeSeen('G')) // get
|
||||
{
|
||||
SAVE_zprobe_zoffset = probe.offset.z;
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
|
||||
HARDWARE_SERIAL_PROTOCOL_F(float(SAVE_zprobe_zoffset), 2);
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
|
||||
if(CodeSeen('D')) // save
|
||||
{
|
||||
SAVE_zprobe_zoffset = probe.offset.z;
|
||||
settings.save();
|
||||
set_bed_leveling_enabled(true);
|
||||
refresh_bed_level();
|
||||
}
|
||||
|
||||
if(CodeSeen('X')) // set
|
||||
{
|
||||
//soft_endstops_enabled = false; // disable endstops
|
||||
float value = constrain(CodeValue(),-1.0,1.0);
|
||||
|
@@ -121,9 +121,20 @@ char *ftostr32(const float &);
|
||||
#define SM_FLOW_UP_S "<UP>"
|
||||
#define SM_FLOW_DN_L "<Down>"
|
||||
#define SM_FLOW_DN_S "<DOWN>"
|
||||
#define SM_FLOW_EXIT_L "<End Flow Settings>"
|
||||
#define SM_FLOW_EXIT_L "<Exit>"
|
||||
#define SM_FLOW_EXIT_S "<EXTFLW>"
|
||||
|
||||
#define SM_BLTZMENU_L "<BLTouch>"
|
||||
#define SM_BLTZMENU_S "<SETOFZ>"
|
||||
#define SM_BLTZ_DISP_L "<Z Offset XXXX>"
|
||||
#define SM_BLTZ_DISP_S "<OFZDSP>"
|
||||
#define SM_BLTZ_UP_L "<Up>"
|
||||
#define SM_BLTZ_UP_S "<UP>"
|
||||
#define SM_BLTZ_DN_L "<Down>"
|
||||
#define SM_BLTZ_DN_S "<DOWN>"
|
||||
#define SM_BLTZ_EXIT_L "<SAVE and EXIT>"
|
||||
#define SM_BLTZ_EXIT_S "<EXTFLW>"
|
||||
|
||||
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>"
|
||||
#define SM_EZLVL_MENU_S "<EZLVLM>"
|
||||
#define SM_EZLVL_P1_L "<Point A>"
|
||||
@@ -134,7 +145,7 @@ char *ftostr32(const float &);
|
||||
#define SM_EZLVL_P3_S "<EZLPC>"
|
||||
#define SM_EZLVL_P4_L "<Point D>"
|
||||
#define SM_EZLVL_P4_S "<EZLPD>"
|
||||
#define SM_EZLVL_EXIT_L "<End Easy Leveling>"
|
||||
#define SM_EZLVL_EXIT_L "<Exit>"
|
||||
#define SM_EZLVL_EXIT_S "<EZLEXT>"
|
||||
|
||||
#endif
|
||||
@@ -201,6 +212,18 @@ char *ftostr32(const float &);
|
||||
#define SM_FLOW_EXIT_L "<End Flow Settings> .gcode"
|
||||
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
|
||||
|
||||
#define SM_BLTZMENU_L "<BLTouch> .gcode"
|
||||
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
|
||||
#define SM_BLTZ_DISP_L "<Z Offset XXXX> .gcode"
|
||||
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
|
||||
#define SM_BLTZ_UP_L "<Up> .gcode"
|
||||
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
|
||||
#define SM_BLTZ_DN_L "<Down> .gcode"
|
||||
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
|
||||
#define SM_BLTZ_EXIT_L "<SAVE and EXIT> .gcode"
|
||||
#define SM_BLTZ_EXIT_S "<EXTFLW2.GCO"
|
||||
|
||||
|
||||
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode"
|
||||
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
|
||||
#define SM_EZLVL_P1_L "<Point A> .gcode"
|
||||
@@ -266,6 +289,7 @@ private:
|
||||
uint16_t HeaterCheckCount = 0;
|
||||
bool IsParked = false;
|
||||
int currentFlowRate = 0;
|
||||
float currentZOffset = 0.0;
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
struct OutageDataStruct
|
||||
@@ -299,12 +323,14 @@ private:
|
||||
char currentTouchscreenSelection[64];
|
||||
char currentFileOrDirectory[64];
|
||||
String flowRateBuffer;
|
||||
String zOffsetBuffer;
|
||||
uint16_t MyFileNrCnt = 0;
|
||||
uint8_t FilamentSensorEnabled = true;
|
||||
|
||||
uint8_t SpecialMenu = false;
|
||||
uint8_t MMLMenu = false;
|
||||
uint8_t FlowMenu = false;
|
||||
uint8_t BLTouchMenu = false;
|
||||
uint8_t LevelMenu = false;
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
|
Reference in New Issue
Block a user