Browse Source

M48 Fix for Delta Configuration Files & UBL G29 only homes when necessary (#6757)

* Fix M48 for Delta's  There was a scope issue: DELTA_PROBEABLE_RADIUS wasn't getting defined.

* Check if the specified G29 command requires homing
pull/1/head
Roxy-3D 8 years ago
committed by GitHub
parent
commit
8606644343
  1. 6
      Marlin/example_configurations/delta/generic/Configuration.h
  2. 6
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  3. 6
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  4. 6
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  5. 27
      Marlin/ubl_G29.cpp

6
Marlin/example_configurations/delta/generic/Configuration.h

@ -922,6 +922,10 @@
// at which point movement will be level to the machine's XY plane. // at which point movement will be level to the machine's XY plane.
// The height can be set with M420 Z<height> // The height can be set with M420 Z<height>
//#define ENABLE_LEVELING_FADE_HEIGHT //#define ENABLE_LEVELING_FADE_HEIGHT
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -931,8 +935,6 @@
#define GRID_MAX_POINTS_X 9 #define GRID_MAX_POINTS_X 9
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)

6
Marlin/example_configurations/delta/kossel_mini/Configuration.h

@ -920,6 +920,10 @@
// at which point movement will be level to the machine's XY plane. // at which point movement will be level to the machine's XY plane.
// The height can be set with M420 Z<height> // The height can be set with M420 Z<height>
//#define ENABLE_LEVELING_FADE_HEIGHT //#define ENABLE_LEVELING_FADE_HEIGHT
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -929,8 +933,6 @@
#define GRID_MAX_POINTS_X 9 #define GRID_MAX_POINTS_X 9
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)

6
Marlin/example_configurations/delta/kossel_pro/Configuration.h

@ -926,6 +926,10 @@
// at which point movement will be level to the machine's XY plane. // at which point movement will be level to the machine's XY plane.
// The height can be set with M420 Z<height> // The height can be set with M420 Z<height>
//#define ENABLE_LEVELING_FADE_HEIGHT //#define ENABLE_LEVELING_FADE_HEIGHT
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -935,8 +939,6 @@
#define GRID_MAX_POINTS_X 7 #define GRID_MAX_POINTS_X 7
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 25)
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)

6
Marlin/example_configurations/delta/kossel_xl/Configuration.h

@ -989,6 +989,10 @@
// at which point movement will be level to the machine's XY plane. // at which point movement will be level to the machine's XY plane.
// The height can be set with M420 Z<height> // The height can be set with M420 Z<height>
//#define ENABLE_LEVELING_FADE_HEIGHT //#define ENABLE_LEVELING_FADE_HEIGHT
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -998,8 +1002,6 @@
#define GRID_MAX_POINTS_X 5 #define GRID_MAX_POINTS_X 5
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
#define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20) #define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)

27
Marlin/ubl_G29.cpp

@ -135,9 +135,12 @@
* a subsequent G or T leveling operation for backward compatibility. * a subsequent G or T leveling operation for backward compatibility.
* *
* P1 Phase 1 Invalidate entire Mesh and continue with automatic generation of the Mesh data using * P1 Phase 1 Invalidate entire Mesh and continue with automatic generation of the Mesh data using
* the Z-Probe. Depending upon the values of DELTA_PROBEABLE_RADIUS and * the Z-Probe. Usually the probe can not reach all areas that the nozzle can reach.
* DELTA_PRINTABLE_RADIUS some area of the bed will not have Mesh Data automatically * In Cartesian printers, mesh points within the X_OFFSET_FROM_EXTRUDER and Y_OFFSET_FROM_EXTRUDER
* generated. This will be handled in Phase 2. If the Phase 1 command is given the * area can not be automatically probed. For Delta printers the area in which DELTA_PROBEABLE_RADIUS
* and DELTA_PRINTABLE_RADIUS do not overlap will not be automatically probed.
*
* These points will be handled in Phase 2 and Phase 3. If the Phase 1 command is given the
* C (Continue) parameter it does not invalidate the Mesh prior to automatically * C (Continue) parameter it does not invalidate the Mesh prior to automatically
* probing needed locations. This allows you to invalidate portions of the Mesh but still * probing needed locations. This allows you to invalidate portions of the Mesh but still
* use the automatic probing capabilities of the Unified Bed Leveling System. An X and Y * use the automatic probing capabilities of the Unified Bed Leveling System. An X and Y
@ -254,13 +257,13 @@
* to reconstruct the current mesh on another machine. * to reconstruct the current mesh on another machine.
* *
* T Topology Display the Mesh Map Topology. * T Topology Display the Mesh Map Topology.
* 'T' can be used alone (e.g., G29 T) or in combination with some of the other commands. * 'T' can be used alone (e.g., G29 T) or in combination with most of the other commands.
* This option works with all Phase commands (e.g., G29 P4 R 5 X 50 Y100 C -.1 O) * This option works with all Phase commands (e.g., G29 P4 R 5 T X 50 Y100 C -.1 O)
* This parameter can also specify a Map Type. T0 (the default) is user-readable. T1 can * This parameter can also specify a Map Type. T0 (the default) is user-readable. T1 can
* is suitable to paste into a spreadsheet for a 3D graph of the mesh. * is suitable to paste into a spreadsheet for a 3D graph of the mesh.
* *
* U Unlevel Perform a probe of the outer perimeter to assist in physically leveling unlevel beds. * U Unlevel Perform a probe of the outer perimeter to assist in physically leveling unlevel beds.
* Only used for G29 P1 O U. This speeds up the probing of the edge of the bed. Useful * Only used for G29 P1 T U. This speeds up the probing of the edge of the bed. Useful
* when the entire bed doesn't need to be probed because it will be adjusted. * when the entire bed doesn't need to be probed because it will be adjusted.
* *
* V # Verbosity Set the verbosity level (0-4) for extra details. (Default 0) * V # Verbosity Set the verbosity level (0-4) for extra details. (Default 0)
@ -317,10 +320,18 @@
return; return;
} }
// Don't allow auto-leveling without homing first // Check for commands that require the printer to be homed.
if (axis_unhomed_error()) { if (axis_unhomed_error()) {
if (code_seen('P') && !code_seen('P6') || code_seen('J')) { if (code_seen('J'))
home_all_axes(); home_all_axes();
else
if (code_seen('P')) {
int p_val;
if (code_has_value()) {
p_val = code_value_int();
if ( p_val==1 || p_val==2 || p_val==4 )
home_all_axes();
}
} }
} }

Loading…
Cancel
Save