Merge remote-tracking branch 'upstream/Development' into Development
This commit is contained in:
		| @@ -398,6 +398,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
|  | ||||
|   #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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #define RIGHT_PROBE_BED_POSITION 170 | ||||
|   | ||||
| @@ -33,7 +33,7 @@ | ||||
| #endif | ||||
|  | ||||
| #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 | ||||
| #ifndef analogInputToDigitalPin | ||||
|   | ||||
| @@ -1854,12 +1854,6 @@ inline void gcode_G28() { | ||||
|    *     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() { | ||||
|  | ||||
|     // 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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|   #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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|   #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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #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 | ||||
|  | ||||
|     // 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 | ||||
|     #define LEFT_PROBE_BED_POSITION 15 | ||||
|     #define RIGHT_PROBE_BED_POSITION 170 | ||||
|   | ||||
| @@ -413,48 +413,49 @@ ISR(TIMER1_COMPA_vect) { | ||||
|       #else | ||||
|         // Head direction in -X axis for CoreXY bots. | ||||
|         // 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 | ||||
|         { // -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_MIN_PIN) && X_MIN_PIN >= 0 | ||||
|                 UPDATE_ENDSTOP(x, X, min, MIN); | ||||
|             { // -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_MIN_PIN) && X_MIN_PIN >= 0 | ||||
|                     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 | ||||
|             } | ||||
|         } | ||||
|         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); | ||||
|             else { // +direction | ||||
|               #if defined(Y_MAX_PIN) && Y_MAX_PIN >= 0 | ||||
|                 UPDATE_ENDSTOP(y, Y, 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 (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 | ||||
|   | ||||
| @@ -535,17 +535,17 @@ inline void _temp_error(int e, const char *msg1, const char *msg2) { | ||||
|  | ||||
| void max_temp_error(uint8_t e) { | ||||
|   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) { | ||||
|   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) { | ||||
|   #if HAS_HEATER_BED | ||||
|     WRITE_HEATER_BED(0); | ||||
|   #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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user