Merge remote-tracking branch 'upstream/Development' into Development
This commit is contained in:
commit
2b1ddc0413
14 changed files with 92 additions and 47 deletions
|
@ -398,6 +398,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BIT(b) (1<<(b))
|
#define BIT(b) (1<<(b))
|
||||||
#define TEST(n,b) ((n)&BIT(b)!=0)
|
#define TEST(n,b) (((n)&BIT(b))!=0)
|
||||||
|
|
||||||
// Arduino < 1.0.0 does not define this, so we need to do it ourselves
|
// Arduino < 1.0.0 does not define this, so we need to do it ourselves
|
||||||
#ifndef analogInputToDigitalPin
|
#ifndef analogInputToDigitalPin
|
||||||
|
|
|
@ -1854,12 +1854,6 @@ inline void gcode_G28() {
|
||||||
* Usage: "G29 E" or "G29 e"
|
* Usage: "G29 E" or "G29 e"
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Use one of these defines to specify the origin
|
|
||||||
// for a topographical map to be printed for your bed.
|
|
||||||
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
|
||||||
#define TOPO_ORIGIN OriginFrontLeft
|
|
||||||
|
|
||||||
inline void gcode_G29() {
|
inline void gcode_G29() {
|
||||||
|
|
||||||
// Prevent user from running a G29 without first homing in X and Y
|
// Prevent user from running a G29 without first homing in X and Y
|
||||||
|
|
|
@ -438,6 +438,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -384,6 +384,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
// Note: this feature occupies 10'206 byte
|
// Note: this feature occupies 10'206 byte
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// set the rectangle in which to probe
|
// set the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -384,6 +384,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
// Note: this feature occupies 10'206 byte
|
// Note: this feature occupies 10'206 byte
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// set the rectangle in which to probe
|
// set the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -408,6 +408,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -413,6 +413,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -437,6 +437,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -407,6 +407,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -405,6 +405,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -407,6 +407,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
|
|
||||||
#ifdef AUTO_BED_LEVELING_GRID
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// Use one of these defines to specify the origin
|
||||||
|
// for a topographical map to be printed for your bed.
|
||||||
|
enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };
|
||||||
|
#define TOPO_ORIGIN OriginFrontLeft
|
||||||
|
|
||||||
// The edges of the rectangle in which to probe
|
// The edges of the rectangle in which to probe
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
|
|
@ -413,48 +413,49 @@ ISR(TIMER1_COMPA_vect) {
|
||||||
#else
|
#else
|
||||||
// Head direction in -X axis for CoreXY bots.
|
// Head direction in -X axis for CoreXY bots.
|
||||||
// If DeltaX == -DeltaY, the movement is only in Y axis
|
// If DeltaX == -DeltaY, the movement is only in Y axis
|
||||||
if (TEST(out_bits, X_HEAD) && (current_block->steps_x != current_block->steps_y || (TEST(out_bits, X_AXIS) == TEST(out_bits, Y_AXIS))))
|
if (current_block->steps_x != current_block->steps_y || (TEST(out_bits, X_AXIS) == TEST(out_bits, Y_AXIS)))
|
||||||
|
if (TEST(out_bits, X_HEAD))
|
||||||
#endif
|
#endif
|
||||||
{ // -direction
|
{ // -direction
|
||||||
#ifdef DUAL_X_CARRIAGE
|
#ifdef DUAL_X_CARRIAGE
|
||||||
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
|
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
|
||||||
if ((current_block->active_extruder == 0 && X_HOME_DIR == -1) || (current_block->active_extruder != 0 && X2_HOME_DIR == -1))
|
if ((current_block->active_extruder == 0 && X_HOME_DIR == -1) || (current_block->active_extruder != 0 && X2_HOME_DIR == -1))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#if defined(X_MIN_PIN) && X_MIN_PIN >= 0
|
#if defined(X_MIN_PIN) && X_MIN_PIN >= 0
|
||||||
UPDATE_ENDSTOP(x, X, min, MIN);
|
UPDATE_ENDSTOP(x, X, min, MIN);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { // +direction
|
||||||
|
#ifdef DUAL_X_CARRIAGE
|
||||||
|
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
|
||||||
|
if ((current_block->active_extruder == 0 && X_HOME_DIR == 1) || (current_block->active_extruder != 0 && X2_HOME_DIR == 1))
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if defined(X_MAX_PIN) && X_MAX_PIN >= 0
|
||||||
|
UPDATE_ENDSTOP(x, X, max, MAX);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifndef COREXY
|
||||||
|
if (TEST(out_bits, Y_AXIS)) // -direction
|
||||||
|
#else
|
||||||
|
// Head direction in -Y axis for CoreXY bots.
|
||||||
|
// If DeltaX == DeltaY, the movement is only in X axis
|
||||||
|
if (current_block->steps_x != current_block->steps_y || (TEST(out_bits, X_AXIS) != TEST(out_bits, Y_AXIS)))
|
||||||
|
if (TEST(out_bits, Y_HEAD))
|
||||||
|
#endif
|
||||||
|
{ // -direction
|
||||||
|
#if defined(Y_MIN_PIN) && Y_MIN_PIN >= 0
|
||||||
|
UPDATE_ENDSTOP(y, Y, min, MIN);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
else { // +direction
|
||||||
else { // +direction
|
#if defined(Y_MAX_PIN) && Y_MAX_PIN >= 0
|
||||||
#ifdef DUAL_X_CARRIAGE
|
UPDATE_ENDSTOP(y, Y, max, MAX);
|
||||||
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
|
|
||||||
if ((current_block->active_extruder == 0 && X_HOME_DIR == 1) || (current_block->active_extruder != 0 && X2_HOME_DIR == 1))
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#if defined(X_MAX_PIN) && X_MAX_PIN >= 0
|
|
||||||
UPDATE_ENDSTOP(x, X, max, MAX);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef COREXY
|
|
||||||
if (TEST(out_bits, Y_AXIS)) // -direction
|
|
||||||
#else
|
|
||||||
// Head direction in -Y axis for CoreXY bots.
|
|
||||||
// If DeltaX == DeltaY, the movement is only in X axis
|
|
||||||
if (TEST(out_bits, Y_HEAD) && (current_block->steps_x != current_block->steps_y || (TEST(out_bits, X_AXIS) != TEST(out_bits, Y_AXIS))))
|
|
||||||
#endif
|
|
||||||
{ // -direction
|
|
||||||
#if defined(Y_MIN_PIN) && Y_MIN_PIN >= 0
|
|
||||||
UPDATE_ENDSTOP(y, Y, min, MIN);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else { // +direction
|
|
||||||
#if defined(Y_MAX_PIN) && Y_MAX_PIN >= 0
|
|
||||||
UPDATE_ENDSTOP(y, Y, max, MAX);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TEST(out_bits, Z_AXIS)) { // -direction
|
if (TEST(out_bits, Z_AXIS)) { // -direction
|
||||||
|
|
|
@ -535,17 +535,17 @@ inline void _temp_error(int e, const char *msg1, const char *msg2) {
|
||||||
|
|
||||||
void max_temp_error(uint8_t e) {
|
void max_temp_error(uint8_t e) {
|
||||||
disable_heater();
|
disable_heater();
|
||||||
_temp_error(e, MSG_MAXTEMP_EXTRUDER_OFF, MSG_ERR_MAXTEMP);
|
_temp_error(e, PSTR(MSG_MAXTEMP_EXTRUDER_OFF), PSTR(MSG_ERR_MAXTEMP));
|
||||||
}
|
}
|
||||||
void min_temp_error(uint8_t e) {
|
void min_temp_error(uint8_t e) {
|
||||||
disable_heater();
|
disable_heater();
|
||||||
_temp_error(e, MSG_MINTEMP_EXTRUDER_OFF, MSG_ERR_MINTEMP);
|
_temp_error(e, PSTR(MSG_MINTEMP_EXTRUDER_OFF), PSTR(MSG_ERR_MINTEMP));
|
||||||
}
|
}
|
||||||
void bed_max_temp_error(void) {
|
void bed_max_temp_error(void) {
|
||||||
#if HAS_HEATER_BED
|
#if HAS_HEATER_BED
|
||||||
WRITE_HEATER_BED(0);
|
WRITE_HEATER_BED(0);
|
||||||
#endif
|
#endif
|
||||||
_temp_error(-1, MSG_MAXTEMP_BED_OFF, MSG_ERR_MAXTEMP_BED);
|
_temp_error(-1, PSTR(MSG_MAXTEMP_BED_OFF), PSTR(MSG_ERR_MAXTEMP_BED));
|
||||||
}
|
}
|
||||||
|
|
||||||
float get_pid_output(int e) {
|
float get_pid_output(int e) {
|
||||||
|
|
Reference in a new issue