1

Recently added a probe to my Anet A8 for auto bed levelling, calculations have been added based on position of probe to hotend as required. I'm using Marlin 1.1.9.

When I go into 'Prepare' in the printer settings to select auto home, it doesn't centre on the bed, seems to go to the back right. I presume this should be to the centre of the bed? I can't find where to change this in the config. Note the LCD screen shows X:153, Y:114. Config below.

//============================== Endstop Settings ===========================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. #define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUG //#define USE_XMAX_PLUG //#define USE_YMAX_PLUG //#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS #if DISABLED(ENDSTOPPULLUPS) // Disable ENDSTOPPULLUPS to set pullups individually //#define ENDSTOPPULLUP_XMAX //#define ENDSTOPPULLUP_YMAX //#define ENDSTOPPULLUP_ZMAX //#define ENDSTOPPULLUP_XMIN //#define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN //#define ENDSTOPPULLUP_ZMIN_PROBE #endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). #define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. #define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. #define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. #define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.

// Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. //#define ENDSTOP_INTERRUPTS_FEATURE

/**

  • Endstop Noise Filter
  • Enable this option if endstops falsely trigger due to noise.
  • NOTE: Enabling this feature means adds an error of +/-0.2mm, so homing
  • will end up at a slightly different position on each G28. This will also
  • reduce accuracy of some bed probes.
  • For mechanical switches, the better approach to reduce noise is to install
  • a 100 nanofarads ceramic capacitor in parallel with the switch, making it
  • essentially noise-proof without sacrificing accuracy.
  • This option also increases MCU load when endstops or the probe are enabled.
  • So this is not recommended. USE AT YOUR OWN RISK.
  • (This feature is not required for common micro-switches mounted on PCBs
  • based on the Makerbot design, since they already include the 100nF capacitor.)

*/ //#define ENDSTOP_NOISE_FILTER

//============================================================================= //============================== Movement Settings ============================ //============================================================================= // @section motion

/**

  • Default Settings
  • These settings can be reset by M502
  • Note that if EEPROM is enabled, saved values will override these.

*/

/**

  • With this option each E stepper can have its own factors for the
  • following movement settings. If fewer factors are given than the
  • total number of extruders, the last value applies to the rest.

*/ //#define DISTINCT_E_FACTORS

/**

  • Default Axis Steps Per Unit (steps/mm)
  • Override with M92
  •                                  X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
    

*/ #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 100 }

/**

  • Default Max Feed Rate (mm/s)
  • Override with M203
  •                                  X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
    

*/ #define DEFAULT_MAX_FEEDRATE { 400, 400, 8, 50 }

/**

  • Default Max Acceleration (change/s) change = mm/s
  • (Maximum start speed for accelerated moves)
  • Override with M201
  •                                  X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
    

*/ #define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 10000 }

/**

  • Default Acceleration (change/s) change = mm/s
  • Override with M204
  • M204 P Acceleration
  • M204 R Retract Acceleration
  • M204 T Travel Acceleration

*/ #define DEFAULT_ACCELERATION 400 // X, Y, Z and E acceleration for printing moves #define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts #define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves

/**

  • Default Jerk (mm/s)
  • Override with M205 X Y Z E
  • "Jerk" specifies the minimum speed change that requires acceleration.
  • When changing speed and direction, if the difference is less than the
  • value set here, it may happen instantaneously.

*/ #define DEFAULT_XJERK 10.0 #define DEFAULT_YJERK 10.0 #define DEFAULT_ZJERK 0.3 #define DEFAULT_EJERK 5.0

/**

  • S-Curve Acceleration
  • This option eliminates vibration during printing by fitting a Bézier
  • curve to move acceleration, producing much smoother direction changes.
  • See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained

*/ //#define S_CURVE_ACCELERATION

//=========================================================================== //============================= Z Probe Options ============================= //=========================================================================== // @section probes

// // See http://marlinfw.org/docs/configuration/probes.html //

/**

  • Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
  • Enable this option for a probe connected to the Z Min endstop pin.

*/ #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**

  • Z_MIN_PROBE_ENDSTOP
  • Enable this option for a probe connected to any pin except Z-Min.
  • (By default Marlin assumes the Z-Max endstop pin.)
  • To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
    • The simplest option is to use a free endstop connector.
    • Use 5V for powered (usually inductive) sensors.
    • RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
    • For simple switches connect...
  •  - normally-closed switches to GND and D32.
    
  •  - normally-open switches to 5V and D32.
    
  • WARNING: Setting the wrong pin may have unexpected and potentially
  • disastrous consequences. Use with caution and do your homework.

*/ //#define Z_MIN_PROBE_ENDSTOP

/**

  • Probe Type
  • Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
  • Activate one of these to use Auto Bed Leveling below.

*/

/**

  • The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
  • Use G29 repeatedly, adjusting the Z height at each point with movement commands
  • or (with LCD_BED_LEVELING) the LCD controller.

*/ //#define PROBE_MANUALLY //#define MANUAL_PROBE_START_Z 0.2

/**

  • A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
  • (e.g., an inductive probe or a nozzle-based probe-switch.)

*/ #define FIX_MOUNTED_PROBE

/**

  • Z Servo Probe, such as an endstop switch on a rotating arm.

*/ //#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. //#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

/**

  • The BLTouch probe uses a Hall effect sensor and emulates a servo.

*/ //#define BLTOUCH #if ENABLED(BLTOUCH) //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed #endif

/**

  • Enable one or more of the following if probing seems unreliable.
  • Heaters and/or fans can be disabled during probing to minimize electrical
  • noise. A delay can also be added to allow noise and vibration to settle.
  • These options are most useful for the BLTouch probe, but may also improve
  • readings with inductive probes and piezo sensors.

*/ //#define PROBING_HEATERS_OFF // Turn heaters off when probing #if ENABLED(PROBING_HEATERS_OFF) //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) #endif //#define PROBING_FANS_OFF // Turn fans off when probing //#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors

// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) //#define SOLENOID_PROBE

// A sled-mounted probe like those designed by Charles Bell. //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

// // For Z_PROBE_ALLEN_KEY see the Delta example configurations. //

/**

  • Z Probe to nozzle (X,Y) offset, relative to (0, 0).
  • X and Y offsets must be integers.
  • In the following example the X and Y offsets are both positive:
  • #define X_PROBE_OFFSET_FROM_EXTRUDER 10
  • #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
  •  +-- BACK ---+
    
  •  |           |
    
  • L | (+) P | R <-- probe (20,20)
  • E | | I
  • F | (-) N (+) | G <-- nozzle (10,10)
  • T | | H
  •  |    (-)    | T
    
  •  |           |
    
  •  O-- FRONT --+
    
  • (0,0)

*/ #define X_PROBE_OFFSET_FROM_EXTRUDER -43 #define Y_PROBE_OFFSET_FROM_EXTRUDER -4 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] // Y offset: -front +behind [the nozzle] // Z offset: -below +above [the nozzle]

// Certain types of probes need to stay away from edges #define MIN_PROBE_EDGE 10

// X and Y axis travel speed (mm/m) between probes #define XY_PROBE_SPEED 6000

// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

// Feedrate (mm/m) for the "accurate" probe of each point #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

// The number of probes to perform at each point. // Set to 2 for a fast/slow probe, using the second probe result. // Set to 3 or more for slow probes, averaging the results. #define MULTIPLE_PROBING 3

/**

  • Z probes require clearance when deploying, stowing, and moving between
  • probe points to avoid hitting the bed and other hardware.
  • Servo-mounted probes require extra space for the arm to rotate.
  • Inductive probes need space to keep from triggering early.
  • Use these settings to specify the distance (mm) to raise the probe (or
  • lower the bed). The values set here apply over and above any (negative)
  • probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
  • Only integer values >= 1 are valid here.
  • Example: M851 Z-5 with a CLEARANCE of 4 => 9mm from bed to nozzle.
  • But: `M851 Z+1` with a CLEARANCE of 2  =&gt;  2mm from bed to nozzle.
    

*/ #define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes //#define Z_AFTER_PROBING 5 // Z position after probing is done

#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping

// For M851 give a range for adjusting the Z probe offset #define Z_PROBE_OFFSET_RANGE_MIN -20 #define Z_PROBE_OFFSET_RANGE_MAX 20

// Enable the M48 repeatability test to test probe accuracy //#define Z_MIN_PROBE_REPEATABILITY_TEST

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // :{ 0:'Low', 1:'High' } #define X_ENABLE_ON 0 #define Y_ENABLE_ON 0 #define Z_ENABLE_ON 0 #define E_ENABLE_ON 0 // For all extruders

// Disables axis stepper immediately when it's not being used. // WARNING: When motors turn off there is a chance of losing position accuracy! #define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z false // Warn on display about possibly reduced accuracy //#define DISABLE_REDUCED_ACCURACY_WARNING

// @section extruder

#define DISABLE_E false // For all extruders #define DISABLE_INACTIVE_EXTRUDER true // Keep only the active extruder enabled.

// @section machine

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. #define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR true

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false. #define INVERT_E0_DIR false #define INVERT_E1_DIR false #define INVERT_E2_DIR false #define INVERT_E3_DIR false #define INVERT_E4_DIR false

// @section homing

//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed

//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.

//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case.

// Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1

// @section machine

// The size of the print bed #define X_BED_SIZE 220 #define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions. #define X_MIN_POS -33 #define Y_MIN_POS -10 #define Z_MIN_POS 0 #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE #define Z_MAX_POS 240

/**

  • Software Endstops
    • Prevent moves outside the set machine bounds.
    • Individual axes can be disabled, if desired.
    • X and Y only apply to Cartesian robots.
    • Use 'M211' to set software endstops on/off or report current state

*/

// Min software endstops constrain movement within minimum coordinate bounds #define MIN_SOFTWARE_ENDSTOPS #if ENABLED(MIN_SOFTWARE_ENDSTOPS) #define MIN_SOFTWARE_ENDSTOP_X #define MIN_SOFTWARE_ENDSTOP_Y #define MIN_SOFTWARE_ENDSTOP_Z #endif

// Max software endstops constrain movement within maximum coordinate bounds #define MAX_SOFTWARE_ENDSTOPS #if ENABLED(MAX_SOFTWARE_ENDSTOPS) #define MAX_SOFTWARE_ENDSTOP_X #define MAX_SOFTWARE_ENDSTOP_Y #define MAX_SOFTWARE_ENDSTOP_Z #endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS) //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #endif

/**

  • Filament Runout Sensors
  • Mechanical or opto endstops are used to check for the presence of filament.
  • RAMPS-based boards use SERVO3_PIN for the first runout sensor.
  • For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
  • By default the firmware assumes HIGH=FILAMENT PRESENT.

*/ //#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. #define FILAMENT_RUNOUT_SCRIPT "M600" #endif

//=========================================================================== //=============================== Bed Leveling ============================== //=========================================================================== // @section calibrate

/**

  • Choose one of the options below to enable G29 Bed Leveling. The parameters
  • and behavior of G29 will change depending on your selection.
  • If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
    • AUTO_BED_LEVELING_3POINT
  • Probe 3 arbitrary points on the bed (that aren't collinear)
  • You specify the XY coordinates of all 3 points.
  • The result is a single tilted plane. Best for a flat bed.
    • AUTO_BED_LEVELING_LINEAR
  • Probe several points in a grid.
  • You specify the rectangle and the density of sample points.
  • The result is a single tilted plane. Best for a flat bed.
    • AUTO_BED_LEVELING_BILINEAR
  • Probe several points in a grid.
  • You specify the rectangle and the density of sample points.
  • The result is a mesh, best for large or uneven beds.
    • AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
  • A comprehensive bed leveling system combining the features and benefits
  • of other systems. UBL also includes integrated Mesh Generation, Mesh
  • Validation and Mesh Editing systems.
    • MESH_BED_LEVELING
  • Probe a grid manually
  • The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
  • For machines without a probe, Mesh Bed Leveling provides a method to perform
  • leveling in steps so you can manually adjust the Z height at each grid-point. With an LCD controller the process is guided step-by-step.

*/ //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR #define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING

/**

  • Normally G28 leaves leveling disabled on completion. Enable
  • this option to have G28 restore the prior leveling state.

*/ //#define RESTORE_LEVELING_AFTER_G28

/**

  • Enable detailed logging of G28, G29, M48, etc.
  • Turn on with the command 'M111 S32'.
  • NOTE: Requires a lot of PROGMEM!

*/ //#define DEBUG_LEVELING_FEATURE

#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) // Gradually reduce leveling correction until a set height is reached, // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z<height> #define ENABLE_LEVELING_FADE_HEIGHT

// For Cartesian machines, instead of dividing moves on mesh boundaries, // split up moves into short segments like a Delta. This follows the // contours of the bed more closely than edge-to-edge straight moves. #define SEGMENT_LEVELED_MOVES #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)

/**

  • Enable the G26 Mesh Validation Pattern tool.

*/ //#define G26_MESH_VALIDATION #if ENABLED(G26_MESH_VALIDATION) #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool. #define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool. #define MESH_TEST_BED_TEMP 60.0 // (°C) Default bed temperature for the G26 Mesh Validation Tool. #endif

#endif

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

// Set the number of grid points per dimension. #define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

// Set the boundaries for probing (where the probe can reach). //#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE 10 //#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE) 167 //#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE 10 //#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE) 202 #define LEFT_PROBE_BED_POSITION 10 #define RIGHT_PROBE_BED_POSITION 167 #define FRONT_PROBE_BED_POSITION 10 #define BACK_PROBE_BED_POSITION 206

// Probe along the Y axis, advancing X after each column //#define PROBE_Y_FIRST

#if ENABLED(AUTO_BED_LEVELING_BILINEAR)

// Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge.
//#define EXTRAPOLATE_BEYOND_GRID

//
// Experimental Subdivision of the grid by Catmull-Rom method.
// Synthesizes intermediate points to produce a more detailed mesh.
//
//#define ABL_BILINEAR_SUBDIVISION
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
  // Number of subdivisions between probe points
  #define BILINEAR_SUBDIVISIONS 3
#endif

#endif

#elif ENABLED(AUTO_BED_LEVELING_UBL)

//=========================================================================== //========================= Unified Bed Leveling ============================ //===========================================================================

//#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh

#define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500

//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used // as the Z-Height correction value.

#elif ENABLED(MESH_BED_LEVELING)

//=========================================================================== //=================================== Mesh ================================== //===========================================================================

#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed #define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited. #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS

#endif // BED_LEVELING

/**

  • Points to probe for all 3-point Leveling procedures.
  • Override if the automatically selected points are inadequate.

*/ #if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL) #define PROBE_PT_1_X 20 #define PROBE_PT_1_Y 160 #define PROBE_PT_2_X 20 #define PROBE_PT_2_Y 10 #define PROBE_PT_3_X 180 #define PROBE_PT_3_Y 10 #endif

/**

  • Add a bed leveling sub-menu for ABL or MBL.
  • Include a guided procedure if manual probing is enabled.

*/ //#define LCD_BED_LEVELING

#if ENABLED(LCD_BED_LEVELING) #define MBL_Z_STEP 0.025 // Step size while manually probing Z axis. #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment #endif

// Add a menu item to move between bed corners for manual bed adjustment //#define LEVEL_BED_CORNERS

#if ENABLED(LEVEL_BED_CORNERS) #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling //#define LEVEL_CENTER_TOO // Move to the center after the last corner #endif

/**

  • Commands to execute at the end of G29 probing.
  • Useful to retract or move the Z probe out of the way.

*/ //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

// @section homing

// The center of the bed is at (X=0, Y=0) //#define BED_CENTER_AT_0_0

// Manually set the home position. Leave these undefined for automatic settings. // For DELTA this is the top-center of the Cartesian print volume. //#define MANUAL_X_HOME_POS 0 //#define MANUAL_Y_HOME_POS 0 //#define MANUAL_Z_HOME_POS 0

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. // // With this feature enabled: // // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. // - If stepper drivers time out, it will need X and Y homing again before Z homing. // - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28). // - Prevent Z homing when the Z probe is outside bed area. // #define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28). #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28). #endif

// Homing speeds (mm/m) #define HOMING_FEEDRATE_XY (10060) #define HOMING_FEEDRATE_Z (460)

// @section calibrate

/**

  • Bed Skew Compensation
  • This feature corrects for misalignment in the XYZ axes.
  • Take the following steps to get the bed skew in the XY plane:
    1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
    1. For XY_DIAG_AC measure the diagonal A to C
    1. For XY_DIAG_BD measure the diagonal B to D
    1. For XY_SIDE_AD measure the edge A to D
  • Marlin automatically computes skew factors from these measurements.
  • Skew factors may also be computed and set manually:
    • Compute AB : SQRT(2ACAC+2BDBD-4ADAD)/2
    • XY_SKEW_FACTOR : TAN(PI/2-ACOS((ACAC-ABAB-ADAD)/(2AB*AD)))
  • If desired, follow the same procedure for XZ and YZ.
  • Use these diagrams for reference:
  • Y Z Z
  • ^ B-------C ^ B-------C ^ B-------C
  • | / / | / / | / /
  • | / / | / / | / /
  • | A-------D | A-------D | A-------D
  • +-------------->X +-------------->X +-------------->Y
  • XY_SKEW_FACTOR        XZ_SKEW_FACTOR        YZ_SKEW_FACTOR
    

*/ //#define SKEW_CORRECTION

#if ENABLED(SKEW_CORRECTION) // Input all length measurements here: #define XY_DIAG_AC 282.8427124746 #define XY_DIAG_BD 282.8427124746 #define XY_SIDE_AD 200

// Or, set the default skew factors directly here // to override the above measurements: #define XY_SKEW_FACTOR 0.0

//#define SKEW_CORRECTION_FOR_Z #if ENABLED(SKEW_CORRECTION_FOR_Z) #define XZ_DIAG_AC 282.8427124746 #define XZ_DIAG_BD 282.8427124746 #define YZ_DIAG_AC 282.8427124746 #define YZ_DIAG_BD 282.8427124746 #define YZ_SIDE_AD 200 #define XZ_SKEW_FACTOR 0.0 #define YZ_SKEW_FACTOR 0.0 #endif

// Enable this option for M852 to set skew at runtime //#define SKEW_CORRECTION_GCODE #endif

Raynbow
  • 13
  • 3

1 Answers1

0

Your config looks fine for the most of the definitions that have been compared to the known settings when using a probe.

You should be aware that with #define Z_SAFE_HOMING you define that the sensor is in the middle of the bed, however, the nozzle is then offset from the middle of the bed per the #define X_PROBE_OFFSET_FROM_EXTRUDER -43 and #define Y_PROBE_OFFSET_FROM_EXTRUDER -4 defined offsets.

So, when G28 is commanded, the carriage will move to (110, 110) for the probe which is displayed as (110 - -43, 110 - -4) = (153, 114) for the nozzle.

So there is nothing wrong with the configuration, it works as it should.

0scar
  • 37,446
  • 12
  • 68
  • 156