Update Chiron TFT leveling
This commit is contained in:
@@ -41,10 +41,10 @@
|
|||||||
* here we define this default string as the date where the latest release
|
* here we define this default string as the date where the latest release
|
||||||
* version was tagged.
|
* version was tagged.
|
||||||
*/
|
*/
|
||||||
#define CUSTOM_BUILD_VERSION "1.2.0-b_4.3"
|
#define CUSTOM_BUILD_VERSION "1.2.0-b_4.5"
|
||||||
|
|
||||||
#ifndef STRING_DISTRIBUTION_DATE
|
#ifndef STRING_DISTRIBUTION_DATE
|
||||||
#define STRING_DISTRIBUTION_DATE "2021-06-06"
|
#define STRING_DISTRIBUTION_DATE "2021-06-18"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -24,22 +24,23 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "../module/configuration_store.h"
|
||||||
#include "../gcode/queue.h"
|
#include "../gcode/queue.h"
|
||||||
#include "../gcode/parser.h"
|
#include "../gcode/parser.h"
|
||||||
#include "../feature/e_parser.h"
|
#include "../feature/e_parser.h"
|
||||||
#include "../feature/pause.h"
|
#include "../feature/pause.h"
|
||||||
#include "../feature/bedlevel/bedlevel.h"
|
#include "../feature/bedlevel/bedlevel.h"
|
||||||
|
#include "../feature/bedlevel/abl/abl.h"
|
||||||
#include "../libs/buzzer.h"
|
#include "../libs/buzzer.h"
|
||||||
#include "../module/planner.h"
|
#include "../module/planner.h"
|
||||||
#include "../module/printcounter.h"
|
#include "../module/printcounter.h"
|
||||||
#include "../module/temperature.h"
|
#include "../module/temperature.h"
|
||||||
#include "../module/motion.h"
|
#include "../module/motion.h"
|
||||||
#include "../module/configuration_store.h"
|
|
||||||
#include "../module/probe.h"
|
#include "../module/probe.h"
|
||||||
#include "../sd/cardreader.h"
|
#include "../sd/cardreader.h"
|
||||||
|
|
||||||
#ifdef ANYCUBIC_TOUCHSCREEN
|
#ifdef ANYCUBIC_TOUCHSCREEN
|
||||||
#include "anycubic_touchscreen.h"
|
#include "./anycubic_touchscreen.h"
|
||||||
#include "HardwareSerial.h"
|
#include "HardwareSerial.h"
|
||||||
|
|
||||||
char _conv[8];
|
char _conv[8];
|
||||||
@@ -74,6 +75,16 @@ char _conv[8];
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setAxisPosition_mm(const float position, const axis_t axis, const feedRate_t feedrate/*=0*/) {
|
||||||
|
// Get motion limit from software endstops, if any
|
||||||
|
float min, max;
|
||||||
|
max = soft_endstop.max[axis];
|
||||||
|
min = soft_endstop.min[axis];
|
||||||
|
|
||||||
|
current_position[axis] = constrain(position, min, max);
|
||||||
|
line_to_current_position(feedrate ?: 60);
|
||||||
|
}
|
||||||
|
|
||||||
void initializeGrid() {
|
void initializeGrid() {
|
||||||
#if ENABLED(PROBE_MANUALLY)
|
#if ENABLED(PROBE_MANUALLY)
|
||||||
#define ABL_VAR static
|
#define ABL_VAR static
|
||||||
@@ -114,7 +125,7 @@ char _conv[8];
|
|||||||
|
|
||||||
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) {
|
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) {
|
||||||
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) {
|
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) {
|
||||||
z_values[x][y] = float(-2.0);
|
z_values[x][y] = float(-1.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
refresh_bed_level();
|
refresh_bed_level();
|
||||||
@@ -1968,45 +1979,39 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
|||||||
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
#if ENABLED(KNUTWURST_TFT_LEVELING)
|
||||||
case 29: // A29 bed grid read
|
case 29: // A29 bed grid read
|
||||||
{
|
{
|
||||||
|
int mx, my;
|
||||||
|
|
||||||
if(CodeSeen('X'))
|
if(CodeSeen('X'))
|
||||||
{
|
{
|
||||||
x = CodeValue();
|
mx = CodeValueInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CodeSeen('Y'))
|
if(CodeSeen('Y'))
|
||||||
{
|
{
|
||||||
y = CodeValue();
|
my = CodeValueInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
float Zvalue = z_values[x][y];
|
float Zvalue = z_values[mx][my];
|
||||||
Zvalue = Zvalue * 100;
|
Zvalue = Zvalue * 100;
|
||||||
|
|
||||||
refresh_bed_level();
|
|
||||||
set_bed_leveling_enabled(true);
|
|
||||||
|
|
||||||
if ((!planner.movesplanned()) && (TFTstate != ANYCUBIC_TFT_STATE_SDPAUSE) && (TFTstate != ANYCUBIC_TFT_STATE_SDOUTAGE))
|
if ((!planner.movesplanned()) && (TFTstate != ANYCUBIC_TFT_STATE_SDPAUSE) && (TFTstate != ANYCUBIC_TFT_STATE_SDOUTAGE))
|
||||||
{
|
{
|
||||||
if (!all_axes_known())
|
if (!all_axes_known())
|
||||||
{
|
{
|
||||||
queue.enqueue_now_P(PSTR("G28"));
|
queue.inject_P(PSTR("G28\n"));
|
||||||
} else {
|
} else {
|
||||||
destination.z = float(5.0);
|
// Go up before moving
|
||||||
prepare_line_to_destination();
|
setAxisPosition_mm(5.0,Z);
|
||||||
|
|
||||||
feedrate_mm_s = MMM_TO_MMS(3600.0f);
|
setAxisPosition_mm(_GET_MESH_X(mx),X);
|
||||||
|
setAxisPosition_mm(_GET_MESH_Y(my),Y);
|
||||||
destination.x = _GET_MESH_X(x);
|
setAxisPosition_mm(EXT_LEVEL_HIGH,Z);
|
||||||
destination.y = _GET_MESH_Y(y);
|
|
||||||
prepare_line_to_destination();
|
|
||||||
|
|
||||||
destination.z = float(EXT_LEVEL_HIGH);
|
|
||||||
prepare_line_to_destination();
|
|
||||||
|
|
||||||
report_current_position();
|
report_current_position();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HARDWARE_SERIAL_PROTOCOLPGM("A29V ");
|
HARDWARE_SERIAL_PROTOCOLPGM("A29V ");
|
||||||
HARDWARE_SERIAL_PROTOCOL_F(float(Zvalue), 2);
|
HARDWARE_SERIAL_PROTOCOL_F(Zvalue, 2);
|
||||||
HARDWARE_SERIAL_ENTER();
|
HARDWARE_SERIAL_ENTER();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2025,6 +2030,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
|||||||
case 31: // A31 z-offset
|
case 31: // A31 z-offset
|
||||||
if(CodeSeen('S')) // set
|
if(CodeSeen('S')) // set
|
||||||
{
|
{
|
||||||
|
//soft_endstops_enabled = false; // disable endstops
|
||||||
float value = constrain(CodeValue(),-1.0,1.0);
|
float value = constrain(CodeValue(),-1.0,1.0);
|
||||||
probe.offset.z += value;
|
probe.offset.z += value;
|
||||||
for (x = 0; x < GRID_MAX_POINTS_X; x++) {
|
for (x = 0; x < GRID_MAX_POINTS_X; x++) {
|
||||||
@@ -2069,11 +2075,11 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
|||||||
{
|
{
|
||||||
if(CodeSeen('X'))
|
if(CodeSeen('X'))
|
||||||
{
|
{
|
||||||
x = constrain(CodeValue(),0,GRID_MAX_POINTS_X);
|
x = constrain(CodeValueInt(),0,GRID_MAX_POINTS_X);
|
||||||
}
|
}
|
||||||
if(CodeSeen('Y'))
|
if(CodeSeen('Y'))
|
||||||
{
|
{
|
||||||
y = constrain(CodeValue(),0,GRID_MAX_POINTS_Y);
|
y = constrain(CodeValueInt(),0,GRID_MAX_POINTS_Y);
|
||||||
}
|
}
|
||||||
if(CodeSeen('V'))
|
if(CodeSeen('V'))
|
||||||
{
|
{
|
||||||
|
@@ -21,9 +21,20 @@
|
|||||||
#ifndef anycubic_touchscreen_h
|
#ifndef anycubic_touchscreen_h
|
||||||
#define anycubic_touchscreen_h
|
#define anycubic_touchscreen_h
|
||||||
|
|
||||||
#include <stdio.h>
|
//#include <stdio.h>
|
||||||
#include "../inc/MarlinConfig.h"
|
//#include "../inc/MarlinConfig.h"
|
||||||
#include "../module/configuration_store.h"
|
//#include "../module/configuration_store.h"
|
||||||
|
|
||||||
|
#include "./src/inc/MarlinConfigPre.h"
|
||||||
|
#include "./src/feature/bedlevel/bedlevel.h"
|
||||||
|
#include "./src/feature/bedlevel/abl/abl.h"
|
||||||
|
#include "src/module/probe.h"
|
||||||
|
|
||||||
|
|
||||||
|
enum axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4 };
|
||||||
|
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5, E6, E7 };
|
||||||
|
void setAxisPosition_mm(const float, const axis_t, const feedRate_t=0);
|
||||||
|
|
||||||
|
|
||||||
char *itostr2(const uint8_t &x);
|
char *itostr2(const uint8_t &x);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user