Merge Servo Corrections (PR#2510)
This commit is contained in:
		
						commit
						d233976737
					
				| @ -511,5 +511,21 @@ | ||||
| 
 | ||||
|   #define HAS_BUZZER ((defined(BEEPER) && BEEPER >= 0) || defined(LCD_USE_I2C_BUZZER)) | ||||
| 
 | ||||
| 
 | ||||
|   #if defined( NUM_SERVOS ) && (NUM_SERVOS > 0) | ||||
|     #ifndef X_ENDSTOP_SERVO_NR | ||||
|       #define X_ENDSTOP_SERVO_NR -1 | ||||
|     #endif | ||||
|     #ifndef Y_ENDSTOP_SERVO_NR | ||||
|       #define Y_ENDSTOP_SERVO_NR -1 | ||||
|     #endif | ||||
|     #ifndef Z_ENDSTOP_SERVO_NR | ||||
|       #define Z_ENDSTOP_SERVO_NR -1 | ||||
|     #endif | ||||
|     #if (X_ENDSTOP_SERVO_NR >= 0) || (Y_ENDSTOP_SERVO_NR >= 0) || (Z_ENDSTOP_SERVO_NR >= 0) | ||||
|       #define SERVO_ENDSTOPS {X_ENDSTOP_SERVO_NR, Y_ENDSTOP_SERVO_NR, Z_ENDSTOP_SERVO_NR} | ||||
|     #endif | ||||
|   #endif | ||||
| 
 | ||||
| #endif //CONFIGURATION_LCD
 | ||||
| #endif //CONDITIONALS_H
 | ||||
|  | ||||
| @ -530,7 +530,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -780,7 +780,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -555,22 +555,26 @@ void suicide() { | ||||
| void servo_init() { | ||||
|   #if NUM_SERVOS >= 1 && HAS_SERVO_0 | ||||
|     servo[0].attach(SERVO0_PIN); | ||||
|     servo[0].detach(); // Just set up the pin. We don't have a position yet. Don't move to a random position.
 | ||||
|   #endif | ||||
|   #if NUM_SERVOS >= 2 && HAS_SERVO_1 | ||||
|     servo[1].attach(SERVO1_PIN); | ||||
|     servo[1].detach(); | ||||
|   #endif | ||||
|   #if NUM_SERVOS >= 3 && HAS_SERVO_2 | ||||
|     servo[2].attach(SERVO2_PIN); | ||||
|     servo[2].detach(); | ||||
|   #endif | ||||
|   #if NUM_SERVOS >= 4 && HAS_SERVO_3 | ||||
|     servo[3].attach(SERVO3_PIN); | ||||
|     servo[3].detach(); | ||||
|   #endif | ||||
| 
 | ||||
|   // Set position of Servo Endstops that are defined
 | ||||
|   #ifdef SERVO_ENDSTOPS | ||||
|     for (int i = 0; i < 3; i++) | ||||
|       if (servo_endstops[i] >= 0) | ||||
|         servo[servo_endstops[i]].move(0, servo_endstop_angles[i * 2 + 1]); | ||||
|         servo[servo_endstops[i]].move(servo_endstop_angles[i * 2 + 1]); | ||||
|   #endif | ||||
| 
 | ||||
| } | ||||
| @ -1310,10 +1314,7 @@ static void setup_for_endstop_move() { | ||||
|     #ifdef SERVO_ENDSTOPS | ||||
| 
 | ||||
|       // Engage Z Servo endstop if enabled
 | ||||
|       if (servo_endstops[Z_AXIS] >= 0) { | ||||
|         Servo *srv = &servo[servo_endstops[Z_AXIS]]; | ||||
|         srv->move(0, servo_endstop_angles[Z_AXIS * 2]); | ||||
|       } | ||||
|       if (servo_endstops[Z_AXIS] >= 0) servo[servo_endstops[Z_AXIS]].move(servo_endstop_angles[Z_AXIS * 2]); | ||||
| 
 | ||||
|     #elif defined(Z_PROBE_ALLEN_KEY) | ||||
|       feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE; | ||||
| @ -1413,8 +1414,7 @@ static void setup_for_endstop_move() { | ||||
|         #endif | ||||
| 
 | ||||
|         // Change the Z servo angle
 | ||||
|         Servo *srv = &servo[servo_endstops[Z_AXIS]]; | ||||
|         srv->move(0, servo_endstop_angles[Z_AXIS * 2 + 1]); | ||||
|         servo[servo_endstops[Z_AXIS]].move(servo_endstop_angles[Z_AXIS * 2 + 1]); | ||||
|       } | ||||
| 
 | ||||
|     #elif defined(Z_PROBE_ALLEN_KEY) | ||||
| @ -1665,8 +1665,8 @@ static void homeaxis(AxisEnum axis) { | ||||
|     #ifdef SERVO_ENDSTOPS | ||||
|       if (axis != Z_AXIS) { | ||||
|         // Engage Servo endstop if enabled
 | ||||
|         if (servo_endstops[axis] > -1) | ||||
|           servo[servo_endstops[axis]].move(0, servo_endstop_angles[axis * 2]); | ||||
|         if (servo_endstops[axis] >= 0)  | ||||
|           servo[servo_endstops[axis]].move(servo_endstop_angles[axis * 2]); | ||||
|       } | ||||
|     #endif | ||||
| 
 | ||||
| @ -1768,8 +1768,8 @@ static void homeaxis(AxisEnum axis) { | ||||
|     { | ||||
|       #ifdef SERVO_ENDSTOPS | ||||
|         // Retract Servo endstop if enabled
 | ||||
|         if (servo_endstops[axis] > -1) | ||||
|           servo[servo_endstops[axis]].move(0, servo_endstop_angles[axis * 2 + 1]); | ||||
|         if (servo_endstops[axis] >= 0) | ||||
|           servo[servo_endstops[axis]].move(servo_endstop_angles[axis * 2 + 1]); | ||||
|       #endif | ||||
|     } | ||||
| 
 | ||||
| @ -4233,10 +4233,8 @@ inline void gcode_M226() { | ||||
|     int servo_position = 0; | ||||
|     if (code_seen('S')) { | ||||
|       servo_position = code_value_short(); | ||||
|       if (servo_index >= 0 && servo_index < NUM_SERVOS) { | ||||
|         Servo *srv = &servo[servo_index]; | ||||
|         srv->move(0, servo_position); | ||||
|       } | ||||
|       if (servo_index >= 0 && servo_index < NUM_SERVOS)  | ||||
|         servo[servo_index].move(servo_position); | ||||
|       else { | ||||
|         SERIAL_ECHO_START; | ||||
|         SERIAL_ECHO("Servo "); | ||||
|  | ||||
| @ -83,12 +83,23 @@ | ||||
|   #if NUM_SERVOS > 4 | ||||
|     #error The maximum number of SERVOS in Marlin is 4. | ||||
|   #endif | ||||
|   #if defined(NUM_SERVOS) && NUM_SERVOS > 0 | ||||
|     #if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || Z_ENDSTOP_SERVO_NR >= 0 | ||||
|       #if X_ENDSTOP_SERVO_NR >= NUM_SERVOS | ||||
|         #error X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS. | ||||
|       #elif Y_ENDSTOP_SERVO_NR >= NUM_SERVOS | ||||
|         #error Y_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS. | ||||
|       #elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS | ||||
|         #error Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS. | ||||
|       #endif | ||||
|     #endif | ||||
|   #endif | ||||
| 
 | ||||
|   /**
 | ||||
|    * Servo deactivation depends on servo endstops | ||||
|    */ | ||||
|   #if defined(DEACTIVATE_SERVOS_AFTER_MOVE) && !defined(SERVO_ENDSTOPS) | ||||
|     #error SERVO_ENDSTOPS is required for DEACTIVATE_SERVOS_AFTER_MOVE. | ||||
|     #error At least one of the ?_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE. | ||||
|   #endif | ||||
| 
 | ||||
|   /**
 | ||||
| @ -148,8 +159,8 @@ | ||||
| //      #if defined(NUM_SERVOS) && NUM_SERVOS < 1
 | ||||
| //        #error You must have at least 1 servo defined for NUM_SERVOS to use Z_PROBE_ENDSTOP.
 | ||||
| //      #endif
 | ||||
| //      #ifndef SERVO_ENDSTOPS
 | ||||
| //        #error You must have SERVO_ENDSTOPS defined and have the Z index set to at least 0 or above to use Z_PROBE_ENDSTOP.
 | ||||
| //      #if Z_ENDSTOP_SERVO_NR < 0
 | ||||
| //        #error You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_PROBE_ENDSTOP.
 | ||||
| //      #endif
 | ||||
| //      #ifndef SERVO_ENDSTOP_ANGLES
 | ||||
| //        #error You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_PROBE_ENDSTOP.
 | ||||
|  | ||||
| @ -530,7 +530,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -780,7 +780,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -512,7 +512,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -763,7 +763,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -449,9 +449,6 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| 
 | ||||
|   //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
 | ||||
|   //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
 | ||||
|   // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
 | ||||
| 
 | ||||
| //  #define PROBE_SERVO_DEACTIVATION_DELAY 300
 | ||||
| 
 | ||||
| 
 | ||||
| //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
 | ||||
| @ -476,7 +473,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -718,9 +715,23 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
| //
 | ||||
| // With this option servos are powered only during movement, then turned off to prevent jitter.
 | ||||
| //#define DEACTIVATE_SERVOS_AFTER_MOVE
 | ||||
| 
 | ||||
| #ifdef DEACTIVATE_SERVOS_AFTER_MOVE | ||||
|   // Delay (in microseconds) before turning the servo off. This depends on the servo speed.
 | ||||
|   // 300ms is a good value but you can try less delay.
 | ||||
|   // If the servo can't reach the requested position, increase it.
 | ||||
|   #define SERVO_DEACTIVATION_DELAY 300 | ||||
| #endif | ||||
| 
 | ||||
| /**********************************************************************\
 | ||||
|  * Support for a filament diameter sensor | ||||
|  * Also allows adjustment of diameter at print time (vs  at slicing) | ||||
|  | ||||
| @ -522,7 +522,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -772,7 +772,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -518,7 +518,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -768,7 +768,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -530,7 +530,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -780,7 +780,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -510,7 +510,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -763,7 +763,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -538,7 +538,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -788,7 +788,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -522,7 +522,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -772,7 +772,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -530,7 +530,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -780,7 +780,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -650,7 +650,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -903,7 +903,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -650,7 +650,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -907,7 +907,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -654,7 +654,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -907,7 +907,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -639,7 +639,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -902,7 +902,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -533,7 +533,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -783,7 +783,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -520,7 +520,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
|   // If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28.
 | ||||
|   // WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print.
 | ||||
|   // To use a separate Z PROBE endstop, you must have a Z_PROBE_PIN defined in the pins.h file for your control board.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, SERVO_ENDSTOPS and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOPS_ANGLES in the R/C Servo below.
 | ||||
|   // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32
 | ||||
|   // for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed.
 | ||||
|   // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
 | ||||
| @ -774,7 +774,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic | ||||
| // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
 | ||||
| // Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500.
 | ||||
| //
 | ||||
| //#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
 | ||||
| //#define X_ENDSTOP_SERVO_NR 1
 | ||||
| //#define Y_ENDSTOP_SERVO_NR 2
 | ||||
| //#define Z_ENDSTOP_SERVO_NR 0
 | ||||
| //#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
 | ||||
| 
 | ||||
| // Servo deactivation
 | ||||
|  | ||||
| @ -304,21 +304,14 @@ int Servo::readMicroseconds() { | ||||
| 
 | ||||
| bool Servo::attached() { return servo_info[this->servoIndex].Pin.isActive; } | ||||
| 
 | ||||
| int8_t Servo::move(int pin, int value) { | ||||
|   int8_t ret; | ||||
|   #if defined(DEACTIVATE_SERVOS_AFTER_MOVE) && (SERVO_DEACTIVATION_DELAY > 0) | ||||
|     ret = this->attach(pin); | ||||
|   #else | ||||
|     ret = this->servoIndex; | ||||
|   #endif | ||||
|   if (ret >= 0) { | ||||
| void Servo::move(int value) { | ||||
|   if (this->attach(0) >= 0) { | ||||
|     this->write(value); | ||||
|     #if defined(DEACTIVATE_SERVOS_AFTER_MOVE) && (SERVO_DEACTIVATION_DELAY > 0) | ||||
|     #ifdef DEACTIVATE_SERVOS_AFTER_MOVE | ||||
|       delay(SERVO_DEACTIVATION_DELAY); | ||||
|       this->detach(); | ||||
|     #endif | ||||
|   } | ||||
|   return ret; | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -37,11 +37,11 @@ | ||||
|    write()     - Sets the servo angle in degrees.  (invalid angle that is valid as pulse in microseconds is treated as microseconds) | ||||
|    writeMicroseconds() - Sets the servo pulse width in microseconds | ||||
|    read()      - Gets the last written servo pulse width as an angle between 0 and 180. | ||||
|    readMicroseconds()   - Gets the last written servo pulse width in microseconds. (was read_us() in first release) | ||||
|    readMicroseconds() - Gets the last written servo pulse width in microseconds. (was read_us() in first release) | ||||
|    attached()  - Returns true if there is a servo attached. | ||||
|    detach()    - Stops an attached servos from pulsing its i/o pin. | ||||
|    move(pin, angel) - Sequence of attach(pin), write(angel), | ||||
|                       With DEACTIVATE_SERVOS_AFTER_MOVE it waits SERVO_DEACTIVATION_DELAY and detaches. | ||||
|    move(angle) - Sequence of attach(0), write(angle), | ||||
|                    With DEACTIVATE_SERVOS_AFTER_MOVE wait SERVO_DEACTIVATION_DELAY and detach. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef servo_h | ||||
| @ -117,14 +117,14 @@ typedef struct { | ||||
| class Servo { | ||||
|   public: | ||||
|     Servo(); | ||||
|     int8_t attach(int pin);           // attach the given pin to the next free channel, set pinMode, return channel number (-1 on fail)
 | ||||
|     int8_t attach(int pin);            // attach the given pin to the next free channel, set pinMode, return channel number (-1 on fail)
 | ||||
|     int8_t attach(int pin, int min, int max); // as above but also sets min and max values for writes.
 | ||||
|     void detach(); | ||||
|     void write(int value);             // if value is < 200 it is treated as an angle, otherwise as pulse width in microseconds
 | ||||
|     void writeMicroseconds(int value); // Write pulse width in microseconds
 | ||||
|     int8_t move(int pin, int value);  // attach the given pin to the next free channel, set pinMode, return channel number (-1 if attach fails)
 | ||||
|                                        // if value is < 200 it is treated as an angle, otherwise as pulse width in microseconds.
 | ||||
|                                        // if DEACTIVATE_SERVOS_AFTER_MOVE is defined waits SERVO_DEACTIVATION_DELAY, than detaches.
 | ||||
|     void writeMicroseconds(int value); // write pulse width in microseconds
 | ||||
|     void move(int value);              // attach the servo, then move to value
 | ||||
|                                        // if value is < 200 it is treated as an angle, otherwise as pulse width in microseconds
 | ||||
|                                        // if DEACTIVATE_SERVOS_AFTER_MOVE wait SERVO_DEACTIVATION_DELAY, then detach
 | ||||
|     int read();                        // returns current pulse width as an angle between 0 and 180 degrees
 | ||||
|     int readMicroseconds();            // returns current pulse width in microseconds for this servo (was read_us() in first release)
 | ||||
|     bool attached();                   // return true if this servo is attached, otherwise false
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user