Merge pull request #8889 from thinkyhead/bf2_action_on_action

[2.0.x] //Actions on Pause / Resume (M600, M125, etc.)
This commit is contained in:
Scott Lahteine 2017-12-25 07:30:24 -06:00 committed by GitHub
commit 68438b0d4e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
48 changed files with 385 additions and 90 deletions

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1431,6 +1431,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1433,6 +1433,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1402,6 +1402,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1427,6 +1427,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1431,6 +1431,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1438,6 +1438,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1419,6 +1419,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1441,6 +1441,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1431,6 +1431,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1437,6 +1437,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1432,6 +1432,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1430,6 +1430,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -1431,6 +1431,14 @@
*/ */
//#define ACTION_ON_KILL "poweroff" //#define ACTION_ON_KILL "poweroff"
/**
* Specify an action command to send to the host on pause and resume.
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
//=========================================================================== //===========================================================================

View file

@ -173,27 +173,25 @@ void set_bed_leveling_enabled(const bool enable/*=true*/) {
* Reset calibration results to zero. * Reset calibration results to zero.
*/ */
void reset_bed_level() { void reset_bed_level() {
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
#endif
set_bed_leveling_enabled(false); set_bed_leveling_enabled(false);
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
if (leveling_is_valid()) { if (leveling_is_valid()) {
mbl.reset(); mbl.reset();
mbl.has_mesh = false; mbl.has_mesh = false;
} }
#else #elif ENABLED(AUTO_BED_LEVELING_UBL)
#if ENABLED(DEBUG_LEVELING_FEATURE) ubl.reset();
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level"); #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
#endif bilinear_start[X_AXIS] = bilinear_start[Y_AXIS] =
#if ABL_PLANAR bilinear_grid_spacing[X_AXIS] = bilinear_grid_spacing[Y_AXIS] = 0;
planner.bed_level_matrix.set_to_identity(); for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR) for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
bilinear_start[X_AXIS] = bilinear_start[Y_AXIS] = z_values[x][y] = NAN;
bilinear_grid_spacing[X_AXIS] = bilinear_grid_spacing[Y_AXIS] = 0; #elif ABL_PLANAR
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) planner.bed_level_matrix.set_to_identity();
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
z_values[x][y] = NAN;
#elif ENABLED(AUTO_BED_LEVELING_UBL)
ubl.reset();
#endif
#endif #endif
} }

View file

@ -310,7 +310,8 @@
void unified_bed_leveling::G29() { void unified_bed_leveling::G29() {
if (!settings.calc_num_meshes()) { if (!settings.calc_num_meshes()) {
SERIAL_PROTOCOLLNPGM("?Enable EEPROM and init with M502, M500.\n"); SERIAL_PROTOCOLLNPGM("?Enable EEPROM and init with");
SERIAL_PROTOCOLLNPGM("M502, M500, M501 in that order.\n");
return; return;
} }
@ -608,7 +609,7 @@
if (parser.seen('L')) { // Load Current Mesh Data if (parser.seen('L')) { // Load Current Mesh Data
g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot; g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot;
int16_t a = settings.calc_num_meshes(); uint16_t a = settings.calc_num_meshes();
if (!a) { if (!a) {
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available."); SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");
@ -650,7 +651,7 @@
return; return;
} }
int16_t a = settings.calc_num_meshes(); uint16_t a = settings.calc_num_meshes();
if (!a) { if (!a) {
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available."); SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");

View file

@ -114,6 +114,10 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u
) { ) {
if (move_away_flag) return false; // already paused if (move_away_flag) return false; // already paused
#ifdef ACTION_ON_PAUSE
SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE);
#endif
if (!DEBUGGING(DRYRUN) && unload_length != 0) { if (!DEBUGGING(DRYRUN) && unload_length != 0) {
#if ENABLED(PREVENT_COLD_EXTRUSION) #if ENABLED(PREVENT_COLD_EXTRUSION)
if (!thermalManager.allow_cold_extrude && if (!thermalManager.allow_cold_extrude &&
@ -342,6 +346,10 @@ void resume_print(const float &load_length/*=0*/, const float &initial_extrude_l
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
#endif #endif
#ifdef ACTION_ON_RESUME
SERIAL_ECHOLNPGM("//action:" ACTION_ON_RESUME);
#endif
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
if (sd_print_paused) { if (sd_print_paused) {
card.startFileprint(); card.startFileprint();

View file

@ -54,7 +54,7 @@ void GcodeSuite::M420() {
#if ENABLED(EEPROM_SETTINGS) #if ENABLED(EEPROM_SETTINGS)
const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.storage_slot; const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.storage_slot;
const int16_t a = settings.calc_num_meshes(); const uint16_t a = settings.calc_num_meshes();
if (!a) { if (!a) {
SERIAL_PROTOCOLLNPGM("?EEPROM storage not available."); SERIAL_PROTOCOLLNPGM("?EEPROM storage not available.");

View file

@ -390,7 +390,8 @@ void GcodeSuite::G29() {
stepper.synchronize(); stepper.synchronize();
// Disable auto bed leveling during G29 // Disable auto bed leveling during G29
planner.leveling_active = false; // Be formal so G29 can be done successively without G28.
set_bed_leveling_enabled(false);
if (!dryrun) { if (!dryrun) {
// Re-orient the current position without leveling // Re-orient the current position without leveling
@ -404,7 +405,7 @@ void GcodeSuite::G29() {
#if HAS_BED_PROBE #if HAS_BED_PROBE
// Deploy the probe. Probe will raise if needed. // Deploy the probe. Probe will raise if needed.
if (DEPLOY_PROBE()) { if (DEPLOY_PROBE()) {
planner.leveling_active = abl_should_enable; set_bed_leveling_enabled(abl_should_enable);
return; return;
} }
#endif #endif
@ -421,10 +422,6 @@ void GcodeSuite::G29() {
|| left_probe_bed_position != bilinear_start[X_AXIS] || left_probe_bed_position != bilinear_start[X_AXIS]
|| front_probe_bed_position != bilinear_start[Y_AXIS] || front_probe_bed_position != bilinear_start[Y_AXIS]
) { ) {
if (dryrun) {
// Before reset bed level, re-enable to correct the position
planner.leveling_active = abl_should_enable;
}
// Reset grid to 0.0 or "not probed". (Also disables ABL) // Reset grid to 0.0 or "not probed". (Also disables ABL)
reset_bed_level(); reset_bed_level();
@ -468,7 +465,7 @@ void GcodeSuite::G29() {
#if HAS_SOFTWARE_ENDSTOPS #if HAS_SOFTWARE_ENDSTOPS
soft_endstops_enabled = enable_soft_endstops; soft_endstops_enabled = enable_soft_endstops;
#endif #endif
planner.leveling_active = abl_should_enable; set_bed_leveling_enabled(abl_should_enable);
g29_in_progress = false; g29_in_progress = false;
#if ENABLED(LCD_BED_LEVELING) #if ENABLED(LCD_BED_LEVELING)
lcd_wait_for_move = false; lcd_wait_for_move = false;
@ -673,7 +670,7 @@ void GcodeSuite::G29() {
measured_z = faux ? 0.001 * random(-100, 101) : probe_pt(xProbe, yProbe, stow_probe_after_each, verbose_level); measured_z = faux ? 0.001 * random(-100, 101) : probe_pt(xProbe, yProbe, stow_probe_after_each, verbose_level);
if (isnan(measured_z)) { if (isnan(measured_z)) {
planner.leveling_active = abl_should_enable; set_bed_leveling_enabled(abl_should_enable);
break; break;
} }
@ -709,7 +706,7 @@ void GcodeSuite::G29() {
yProbe = points[i].y; yProbe = points[i].y;
measured_z = faux ? 0.001 * random(-100, 101) : probe_pt(xProbe, yProbe, stow_probe_after_each, verbose_level); measured_z = faux ? 0.001 * random(-100, 101) : probe_pt(xProbe, yProbe, stow_probe_after_each, verbose_level);
if (isnan(measured_z)) { if (isnan(measured_z)) {
planner.leveling_active = abl_should_enable; set_bed_leveling_enabled(abl_should_enable);
break; break;
} }
points[i].z = measured_z; points[i].z = measured_z;
@ -732,7 +729,7 @@ void GcodeSuite::G29() {
// Raise to _Z_CLEARANCE_DEPLOY_PROBE. Stow the probe. // Raise to _Z_CLEARANCE_DEPLOY_PROBE. Stow the probe.
if (STOW_PROBE()) { if (STOW_PROBE()) {
planner.leveling_active = abl_should_enable; set_bed_leveling_enabled(abl_should_enable);
measured_z = NAN; measured_z = NAN;
} }
} }

View file

@ -49,8 +49,6 @@
* Z = override Z raise * Z = override Z raise
*/ */
void GcodeSuite::M125() { void GcodeSuite::M125() {
point_t park_point = NOZZLE_PARK_POINT;
// Initial retract before move to filament change position // Initial retract before move to filament change position
const float retract = parser.seen('L') ? parser.value_axis_units(E_AXIS) : 0 const float retract = parser.seen('L') ? parser.value_axis_units(E_AXIS) : 0
#ifdef PAUSE_PARK_RETRACT_LENGTH #ifdef PAUSE_PARK_RETRACT_LENGTH
@ -58,16 +56,14 @@ void GcodeSuite::M125() {
#endif #endif
; ;
// Lift Z axis point_t park_point = NOZZLE_PARK_POINT;
if (parser.seenval('Z'))
park_point.z = parser.linearval('Z');
// Move XY axes to filament change position or given position // Move XY axes to filament change position or given position
if (parser.seenval('X')) if (parser.seenval('X')) park_point.x = parser.linearval('X');
park_point.x = parser.linearval('X'); if (parser.seenval('Y')) park_point.y = parser.linearval('Y');
if (parser.seenval('Y')) // Lift Z axis
park_point.y = parser.linearval('Y'); if (parser.seenval('Z')) park_point.z = parser.linearval('Z');
#if HOTENDS > 1 && DISABLED(DUAL_X_CARRIAGE) #if HOTENDS > 1 && DISABLED(DUAL_X_CARRIAGE)
park_point.x += (active_extruder ? hotend_offset[X_AXIS][active_extruder] : 0); park_point.x += (active_extruder ? hotend_offset[X_AXIS][active_extruder] : 0);

View file

@ -2285,7 +2285,7 @@ void kill_screen(const char* lcd_msg) {
* Save Bed Mesh * Save Bed Mesh
*/ */
void _lcd_ubl_storage_mesh() { void _lcd_ubl_storage_mesh() {
int16_t a = settings.calc_num_meshes(); uint16_t a = settings.calc_num_meshes();
START_MENU(); START_MENU();
MENU_BACK(MSG_UBL_LEVEL_BED); MENU_BACK(MSG_UBL_LEVEL_BED);
if (!WITHIN(ubl_storage_slot, 0, a - 1)) { if (!WITHIN(ubl_storage_slot, 0, a - 1)) {

View file

@ -141,7 +141,7 @@
* 539 M200 D parser.volumetric_enabled (bool) * 539 M200 D parser.volumetric_enabled (bool)
* 540 M200 T D planner.filament_size (float x5) (T0..3) * 540 M200 T D planner.filament_size (float x5) (T0..3)
* *
* HAVE_TMC2130: 22 bytes * HAS_TRINAMIC: 22 bytes
* 560 M906 X Stepper X current (uint16_t) * 560 M906 X Stepper X current (uint16_t)
* 562 M906 Y Stepper Y current (uint16_t) * 562 M906 Y Stepper Y current (uint16_t)
* 564 M906 Z Stepper Z current (uint16_t) * 564 M906 Z Stepper Z current (uint16_t)
@ -155,28 +155,28 @@
* 580 M906 E4 Stepper E4 current (uint16_t) * 580 M906 E4 Stepper E4 current (uint16_t)
* *
* SENSORLESS HOMING 4 bytes * SENSORLESS HOMING 4 bytes
* 580 M914 X Stepper X and X2 threshold (int16_t) * 582 M914 X Stepper X and X2 threshold (int16_t)
* 582 M914 Y Stepper Y and Y2 threshold (int16_t) * 584 M914 Y Stepper Y and Y2 threshold (int16_t)
* *
* LIN_ADVANCE: 8 bytes * LIN_ADVANCE: 8 bytes
* 582 M900 K extruder_advance_k (float) * 586 M900 K extruder_advance_k (float)
* 586 M900 WHD advance_ed_ratio (float) * 590 M900 WHD advance_ed_ratio (float)
* *
* HAS_MOTOR_CURRENT_PWM: * HAS_MOTOR_CURRENT_PWM:
* 590 M907 X Stepper XY current (uint32_t) * 594 M907 X Stepper XY current (uint32_t)
* 594 M907 Z Stepper Z current (uint32_t) * 598 M907 Z Stepper Z current (uint32_t)
* 598 M907 E Stepper E current (uint32_t) * 602 M907 E Stepper E current (uint32_t)
* *
* CNC_COORDINATE_SYSTEMS 108 bytes * CNC_COORDINATE_SYSTEMS 108 bytes
* 602 G54-G59.3 coordinate_system (float x 27) * 606 G54-G59.3 coordinate_system (float x 27)
* *
* SKEW_CORRECTION: 12 bytes * SKEW_CORRECTION: 12 bytes
* 710 M852 I planner.xy_skew_factor (float) * 714 M852 I planner.xy_skew_factor (float)
* 714 M852 J planner.xz_skew_factor (float) * 718 M852 J planner.xz_skew_factor (float)
* 718 M852 K planner.yz_skew_factor (float) * 722 M852 K planner.yz_skew_factor (float)
* *
* 722 Minimum end-point * 726 Minimum end-point
* 2251 (722 + 208 + 36 + 9 + 288 + 988) Maximum end-point * 2255 (726 + 208 + 36 + 9 + 288 + 988) Maximum end-point
* *
* ======================================================================== * ========================================================================
* meshes_begin (between max and min end-point, directly above) * meshes_begin (between max and min end-point, directly above)
@ -290,7 +290,7 @@ void MarlinSettings::postprocess() {
bool MarlinSettings::eeprom_error; bool MarlinSettings::eeprom_error;
#if ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_UBL)
int MarlinSettings::meshes_begin; int16_t MarlinSettings::meshes_begin;
#endif #endif
/** /**
@ -1256,7 +1256,7 @@ void MarlinSettings::postprocess() {
} }
#endif #endif
int MarlinSettings::calc_num_meshes() { uint16_t MarlinSettings::calc_num_meshes() {
//obviously this will get more sophisticated once we've added an actual MAT //obviously this will get more sophisticated once we've added an actual MAT
if (meshes_begin <= 0) return 0; if (meshes_begin <= 0) return 0;
@ -1264,10 +1264,10 @@ void MarlinSettings::postprocess() {
return (meshes_end - meshes_begin) / sizeof(ubl.z_values); return (meshes_end - meshes_begin) / sizeof(ubl.z_values);
} }
void MarlinSettings::store_mesh(int8_t slot) { void MarlinSettings::store_mesh(const int8_t slot) {
#if ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_UBL)
const int a = calc_num_meshes(); const int16_t a = calc_num_meshes();
if (!WITHIN(slot, 0, a - 1)) { if (!WITHIN(slot, 0, a - 1)) {
#if ENABLED(EEPROM_CHITCHAT) #if ENABLED(EEPROM_CHITCHAT)
ubl_invalid_slot(a); ubl_invalid_slot(a);
@ -1280,11 +1280,10 @@ void MarlinSettings::postprocess() {
} }
uint16_t crc = 0; uint16_t crc = 0;
bool status;
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
HAL::PersistentStore::access_start(); HAL::PersistentStore::access_start();
status = HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc); const bool status = HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc);
HAL::PersistentStore::access_finish(); HAL::PersistentStore::access_finish();
if (status) if (status)
@ -1304,7 +1303,7 @@ void MarlinSettings::postprocess() {
#endif #endif
} }
void MarlinSettings::load_mesh(int8_t slot, void *into /* = 0 */) { void MarlinSettings::load_mesh(const int8_t slot, void * const into/*=NULL*/) {
#if ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_UBL)
@ -1320,10 +1319,9 @@ void MarlinSettings::postprocess() {
uint16_t crc = 0; uint16_t crc = 0;
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values; uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values;
uint16_t status;
HAL::PersistentStore::access_start(); HAL::PersistentStore::access_start();
status = HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc); const uint16_t status = HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc);
HAL::PersistentStore::access_finish(); HAL::PersistentStore::access_finish();
if (status) if (status)
@ -1373,17 +1371,13 @@ void MarlinSettings::reset() {
planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION; planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION; planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE; planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE;
planner.min_segment_time_us = DEFAULT_MINSEGMENTTIME;
planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE; planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE;
planner.min_segment_time_us = DEFAULT_MINSEGMENTTIME;
planner.max_jerk[X_AXIS] = DEFAULT_XJERK; planner.max_jerk[X_AXIS] = DEFAULT_XJERK;
planner.max_jerk[Y_AXIS] = DEFAULT_YJERK; planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK; planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
planner.max_jerk[E_AXIS] = DEFAULT_EJERK; planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
new_z_fade_height = 0.0;
#endif
#if HAS_HOME_OFFSET #if HAS_HOME_OFFSET
ZERO(home_offset); ZERO(home_offset);
#endif #endif
@ -1405,7 +1399,14 @@ void MarlinSettings::reset() {
LOOP_XYZ(i) HOTEND_LOOP() hotend_offset[i][e] = tmp4[i][e]; LOOP_XYZ(i) HOTEND_LOOP() hotend_offset[i][e] = tmp4[i][e];
#endif #endif
// Applies to all MBL and ABL //
// Global Leveling
//
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
new_z_fade_height = 0.0;
#endif
#if HAS_LEVELING #if HAS_LEVELING
reset_bed_level(); reset_bed_level();
#endif #endif
@ -1466,10 +1467,6 @@ void MarlinSettings::reset() {
lcd_preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED; lcd_preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED;
#endif #endif
#if HAS_LCD_CONTRAST
lcd_contrast = DEFAULT_LCD_CONTRAST;
#endif
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1 #if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
HOTEND_LOOP() HOTEND_LOOP()
@ -1493,6 +1490,10 @@ void MarlinSettings::reset() {
thermalManager.bedKd = scalePID_d(DEFAULT_bedKd); thermalManager.bedKd = scalePID_d(DEFAULT_bedKd);
#endif #endif
#if HAS_LCD_CONTRAST
lcd_contrast = DEFAULT_LCD_CONTRAST;
#endif
#if ENABLED(FWRETRACT) #if ENABLED(FWRETRACT)
fwretract.reset(); fwretract.reset();
#endif #endif
@ -1579,10 +1580,6 @@ void MarlinSettings::reset() {
stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q])); stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q]));
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_UBL)
ubl.reset();
#endif
#if ENABLED(SKEW_CORRECTION_GCODE) #if ENABLED(SKEW_CORRECTION_GCODE)
planner.xy_skew_factor = XY_SKEW_FACTOR; planner.xy_skew_factor = XY_SKEW_FACTOR;
#if ENABLED(SKEW_CORRECTION_FOR_Z) #if ENABLED(SKEW_CORRECTION_FOR_Z)

View file

@ -37,11 +37,11 @@ class MarlinSettings {
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system #if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
// That can store is enabled // That can store is enabled
FORCE_INLINE static int get_start_of_meshes() { return meshes_begin; } FORCE_INLINE static int16_t get_start_of_meshes() { return meshes_begin; }
FORCE_INLINE static int get_end_of_meshes() { return meshes_end; } FORCE_INLINE static int16_t get_end_of_meshes() { return meshes_end; }
static int calc_num_meshes(); static uint16_t calc_num_meshes();
static void store_mesh(int8_t slot); static void store_mesh(const int8_t slot);
static void load_mesh(int8_t slot, void *into = 0); static void load_mesh(const int8_t slot, void * const into=NULL);
//static void delete_mesh(); // necessary if we have a MAT //static void delete_mesh(); // necessary if we have a MAT
//static void defrag_meshes(); // " //static void defrag_meshes(); // "
@ -66,9 +66,9 @@ class MarlinSettings {
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system #if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
// That can store is enabled // That can store is enabled
static int meshes_begin; static int16_t meshes_begin;
const static int meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always const static int16_t meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always
// live at the very end of the eeprom // live at the very end of the eeprom
#endif #endif

View file

@ -30,8 +30,11 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu." #error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif #endif
#define BOARD_NAME "GT2560 Rev.A" #ifndef BOARD_NAME
#define BOARD_NAME "GT2560 Rev.A"
#endif
#define DEFAULT_MACHINE_NAME "Prusa i3 Pro B" #define DEFAULT_MACHINE_NAME "Prusa i3 Pro B"
// //
// Limit Switches // Limit Switches
// //

View file

@ -24,13 +24,12 @@
* Geeetech GT2560 Revision A+ board pin assignments * Geeetech GT2560 Revision A+ board pin assignments
*/ */
#define BOARD_NAME "GT2560 Rev.A+"
#include "pins_GT2560_REV_A.h" #include "pins_GT2560_REV_A.h"
#undef BOARD_NAME
#define BOARD_NAME "GT2560 Rev.A+"
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
#define SERVO0_PIN 32
#else
#define SERVO0_PIN 11 #define SERVO0_PIN 11
#else
#define SERVO0_PIN 32
#endif #endif