Welcome! Log In Create A New Profile

Advanced

Auto bed leveling: XY home position after probe messed up

Posted by hello_tom 
Auto bed leveling: XY home position after probe messed up
January 17, 2016 05:30AM
Hello everyone,

I m dealing with that problem already a couple of days / nights and feel like I was reading already every possible post about it, but did not find a solution yet.

When I start to print, the printer is homing and from that he goes for the auto bed leveling procedure, great. I m using the grid mode and he should go for 4 points to test. Then it starts to get messy with the XY positions to probe. The points are always different from the previous test and just sometimes the one I actually put in. For me it feels like he is losing it s home position in the auto bed leveling.

I would be so thankful for help, I just don t know what as to try...

I attached my Cura and Marlin settings in a separat file to not mess up the post.

Takes a lot for your help and time. Have a nice Sunday.


Tom
Attachments:
open | download - Cura: Marlin settings.odt (22.1 KB)
Re: Auto bed leveling: XY home position after probe messed up
January 17, 2016 07:56AM
Some more information about your printer would also help, what is it? where are your endstops located? do you home it before probing?

Ben
Re: Auto bed leveling: XY home position after probe messed up
January 17, 2016 12:26PM
The only time I've lost home position is when an axis hit an endstop and isn't able go past the endstop, so the motor skips steps and home is lost. Adjust the probe positions to keep the hotend & z-stop inside the bed during autoleveling.
Re: Auto bed leveling: XY home position after probe messed up
January 17, 2016 06:09PM
You should also check for loose pulleys that might be slipping on the motor drive shaft - it's surprisingly easy to miss.
Re: Auto bed leveling: XY home position after probe messed up
January 21, 2016 02:07AM
Sorry for the late response.

I have a Prusa i3 and my endstops are MAX for axes X and Y and for Z it s MIN. Yes I home before the probe.

Yes I will try to play a bit with the probe positions. Right now when I m probing X and Y endstops are touched.

Thanks a lot - I will come back after testing different Probe positions.
Re: Auto bed leveling: XY home position after probe messed up
January 24, 2016 02:04PM
From what I've read, the auto bed leveling routine in Marlin won't work with MAX X endstop. It has to be Min. I'm in the short strokes of installing a BLTouch myself so we shall see.


Folger Tech 2020 i3 and FT-5 as well as modified JGAurora A5 with direct drive E3D/Titan. All running the BLTOUCH.
Great kits. Having fun and running the heck out of them.
Running Marlin 1.1.0 RC8 on the i3 and FT5. Custom firmware on A5.
Folger Tech Wiki board >[folgertech.wikia.com]
Re: Auto bed leveling: XY home position after probe messed up
January 24, 2016 03:17PM
Hello tjnamtiw,

May you are right. Because I was doing the following test by using pronterface
- homing (X 200, Y 200, Z 0)
- move printhead to zero 0, 0, 0
- run G 29
- works great.

Does it mean that I can not use auto bed levelling with x and y max end stops? For me that sounds a bit of stupid...
Re: Auto bed leveling: XY home position after probe messed up
January 24, 2016 10:24PM
Yea, I was perfectly happy having my X on the right (max) until I decided to put in ABL. I don't know about Y but my guess would be the same. I just put some code in the end of the slice file to move the bed front at the end of the run. No big deal.


Folger Tech 2020 i3 and FT-5 as well as modified JGAurora A5 with direct drive E3D/Titan. All running the BLTOUCH.
Great kits. Having fun and running the heck out of them.
Running Marlin 1.1.0 RC8 on the i3 and FT5. Custom firmware on A5.
Folger Tech Wiki board >[folgertech.wikia.com]
Re: Auto bed leveling: XY home position after probe messed up
January 27, 2016 02:20AM
Soo my home position now is (0,0,0) but it s still not working properly. When I send a g29 using pronterface he says that z probe is out of the bed... and when I want to start printing he is probing three times at the same point (at home position).

I quite frustated with that - can me someone? That would be incredible.

Thanks Tom
Re: Auto bed leveling: XY home position after probe messed up
January 27, 2016 12:03PM
Did you move your x stop to the left and your Y stop to the back?

Remember that you must send G28 just before you send G29


Folger Tech 2020 i3 and FT-5 as well as modified JGAurora A5 with direct drive E3D/Titan. All running the BLTOUCH.
Great kits. Having fun and running the heck out of them.
Running Marlin 1.1.0 RC8 on the i3 and FT5. Custom firmware on A5.
Folger Tech Wiki board >[folgertech.wikia.com]
Re: Auto bed leveling: XY home position after probe messed up
January 28, 2016 09:38AM
On my I3 I have an x_max endstop (right) and a y_min endstop (back) and use Marlin ABL without any issues (aside from the normal limitations of ABL itself).

Defining the grid was a PITA and I was hitting endstops during the process but eventually I found coordinates that worked, bear in mind you can define negative values for the probing grid. During probing the firmware considers the coordinates as the coordinates of the nozzle but your probe is offset, unless you can use your nozzle as the probe which I am a huge advocate for, not easy to do on most cartesian printers). So move the print head around manually and write down the 4 coordinates where your probe is fully within the bed area but as near to the edges as possible. Then modify the coordinates to include your probe offset. This should then make the grid make sense.
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 06:37AM
Hello DjDemonD,

thanks - I will install my stops like you do. Would you mind to post your ABL code section here, so I can try your settings. That would be great!

The hint with the negative values is very good as well - I will try that.

Tom
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 06:52AM
I've only just compiled and uploaded Marlin 1.1.0 rc3 so I haven't extensively tested if these settings work, but they are a direct port over from 1.0.2 which I was using until this week and which was working perfectly.

Feedrate at 8000 might be a bit ambitious, slow it down if it isn't performing well. Also I notice the default z- feedrate on this version is higher than I had before.

The most likely value to need a negative in your grid might be the values I currently have set to 5, left and front probe position. My probe is to the left of nozzle in X, and in front of the nozzle in the Y direction. Its trigger point is above the nozzle by 3.2mm.

//===========================================================================
//============================ Bed Auto Leveling ============================
//===========================================================================

// @section bedlevel

#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
#define DEBUG_LEVELING_FEATURE
#define Z_MIN_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.

#if ENABLED(AUTO_BED_LEVELING_FEATURE)

  // There are 2 different ways to specify probing locations:
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution).
  // Note: this feature generates 10KB extra code size.
  #define AUTO_BED_LEVELING_GRID

  #if ENABLED(AUTO_BED_LEVELING_GRID)

    #define LEFT_PROBE_BED_POSITION 5
    #define RIGHT_PROBE_BED_POSITION 145
    #define FRONT_PROBE_BED_POSITION 5
    #define BACK_PROBE_BED_POSITION 170

    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.

    // Set the number of grid points per dimension.
    // You probably don't need more than 3 (squared=9).
    #define AUTO_BED_LEVELING_GRID_POINTS 3

  #else  // !AUTO_BED_LEVELING_GRID

      // Arbitrary points to probe.
      // A simple cross-product is used to estimate the plane of the bed.
      #define ABL_PROBE_PT_1_X 15
      #define ABL_PROBE_PT_1_Y 180
      #define ABL_PROBE_PT_2_X 15
      #define ABL_PROBE_PT_2_Y 20
      #define ABL_PROBE_PT_3_X 170
      #define ABL_PROBE_PT_3_Y 20

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the Z probe relative to the nozzle tip.
  // X and Y offsets must be integers.
  #define X_PROBE_OFFSET_FROM_EXTRUDER -37     // Z probe to nozzle X offset: -left  +right
  #define Y_PROBE_OFFSET_FROM_EXTRUDER -20     // Z probe to nozzle Y offset: -front +behind
  #define Z_PROBE_OFFSET_FROM_EXTRUDER 3.2  // Z probe to nozzle Z offset: -below (always!)

  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
                                        // Be sure you have this distance over your Z_MAX_POS in case.

  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min.

  #define Z_RAISE_BEFORE_PROBING 3   // How much the Z axis will be raised before traveling to the first probing point.
  #define Z_RAISE_BETWEEN_PROBINGS 3  // How much the Z axis will be raised when traveling from between next probing points.
  #define Z_RAISE_AFTER_PROBING 7    // How much the Z axis will be raised after the last probing point.

//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
                                                                            // Useful to retract a deployable Z probe.

  //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
  //#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.


  //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
  //it is highly recommended you let this Z_SAFE_HOMING enabled!!!

  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
                          // When defined, it will:
                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
                          // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28).
                          // - Block Z homing only when the Z probe is outside bed area.

  #if ENABLED(Z_SAFE_HOMING)

    #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2)    // X point for Z homing when homing all axis (G28).
    #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2)    // Y point for Z homing when homing all axis (G28).

  #endif

  // Support for a dedicated Z probe endstop separate from the Z min endstop.
  // If you would like to use both a Z probe and a Z min endstop together,
  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
  // Example: 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_MIN_PROBE_PIN
  // defined in the pins_XXXXX.h file for your control board.
  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support 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_MIN_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.
  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
  // All other boards will need changes to the respective pins_XXXXX.h file.
  //
  // WARNING:
  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
  // Use with caution and do your homework.
  //
  //#define Z_MIN_PROBE_ENDSTOP

#endif // AUTO_BED_LEVELING_FEATURE

Edited 1 time(s). Last edit at 01/29/2016 07:07AM by DjDemonD.
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 11:58AM
Thanks a lot !!! - I just downloaded the Marlin 1.1.0 rc3 version, copied my settings and your auto bed leveling config into it and now it works great when doing a G29 in Pronterface, BUT when sending a G28 followed by a G29 (Pronterface and for Cura the same) he is doing a different/ false auto bed leveling. Did anyone experienced the same problem?

I just made a video to make the problem more tangible:

[www.youtube.com]
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 01:34PM
I will try this later. I noticed in repetier the home position was wrong but it worked in pronterface. I haven't printed anything using 1.1.0 rc3 yet. My probe is getting relocated to make it closer to the nozzle.
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 04:08PM
Quote
DjDemonD
I've only just compiled and uploaded Marlin 1.1.0 rc3 so I haven't extensively tested if these settings work, but they are a direct port over from 1.0.2 which I was using until this week and which was working perfectly.

Feedrate at 8000 might be a bit ambitious, slow it down if it isn't performing well. Also I notice the default z- feedrate on this version is higher than I had before.

The most likely value to need a negative in your grid might be the values I currently have set to 5, left and front probe position. My probe is to the left of nozzle in X, and in front of the nozzle in the Y direction. Its trigger point is above the nozzle by 3.2mm.

//===========================================================================
//============================ Bed Auto Leveling ============================
//===========================================================================

// @section bedlevel

#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
#define DEBUG_LEVELING_FEATURE
#define Z_MIN_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.

#if ENABLED(AUTO_BED_LEVELING_FEATURE)

  // There are 2 different ways to specify probing locations:
  //
  // - "grid" mode
  //   Probe several points in a rectangular grid.
  //   You specify the rectangle and the density of sample points.
  //   This mode is preferred because there are more measurements.
  //
  // - "3-point" mode
  //   Probe 3 arbitrary points on the bed (that aren't colinear)
  //   You specify the XY coordinates of all 3 points.

  // Enable this to sample the bed in a grid (least squares solution).
  // Note: this feature generates 10KB extra code size.
  #define AUTO_BED_LEVELING_GRID

  #if ENABLED(AUTO_BED_LEVELING_GRID)

    #define LEFT_PROBE_BED_POSITION 5
    #define RIGHT_PROBE_BED_POSITION 145
    #define FRONT_PROBE_BED_POSITION 5
    #define BACK_PROBE_BED_POSITION 170

    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.

    // Set the number of grid points per dimension.
    // You probably don't need more than 3 (squared=9).
    #define AUTO_BED_LEVELING_GRID_POINTS 3

  #else  // !AUTO_BED_LEVELING_GRID

      // Arbitrary points to probe.
      // A simple cross-product is used to estimate the plane of the bed.
      #define ABL_PROBE_PT_1_X 15
      #define ABL_PROBE_PT_1_Y 180
      #define ABL_PROBE_PT_2_X 15
      #define ABL_PROBE_PT_2_Y 20
      #define ABL_PROBE_PT_3_X 170
      #define ABL_PROBE_PT_3_Y 20

  #endif // AUTO_BED_LEVELING_GRID

  // Offsets to the Z probe relative to the nozzle tip.
  // X and Y offsets must be integers.
  #define X_PROBE_OFFSET_FROM_EXTRUDER -37     // Z probe to nozzle X offset: -left  +right
  #define Y_PROBE_OFFSET_FROM_EXTRUDER -20     // Z probe to nozzle Y offset: -front +behind
  #define Z_PROBE_OFFSET_FROM_EXTRUDER 3.2  // Z probe to nozzle Z offset: -below (always!)

  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
                                        // Be sure you have this distance over your Z_MAX_POS in case.

  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min.

  #define Z_RAISE_BEFORE_PROBING 3   // How much the Z axis will be raised before traveling to the first probing point.
  #define Z_RAISE_BETWEEN_PROBINGS 3  // How much the Z axis will be raised when traveling from between next probing points.
  #define Z_RAISE_AFTER_PROBING 7    // How much the Z axis will be raised after the last probing point.

//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
                                                                            // Useful to retract a deployable Z probe.

  //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
  //#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.


  //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
  //it is highly recommended you let this Z_SAFE_HOMING enabled!!!

  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
                          // When defined, it will:
                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
                          // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28).
                          // - Block Z homing only when the Z probe is outside bed area.

  #if ENABLED(Z_SAFE_HOMING)

    #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2)    // X point for Z homing when homing all axis (G28).
    #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2)    // Y point for Z homing when homing all axis (G28).

  #endif

  // Support for a dedicated Z probe endstop separate from the Z min endstop.
  // If you would like to use both a Z probe and a Z min endstop together,
  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
  // Example: 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_MIN_PROBE_PIN
  // defined in the pins_XXXXX.h file for your control board.
  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support 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_MIN_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.
  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
  // All other boards will need changes to the respective pins_XXXXX.h file.
  //
  // WARNING:
  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
  // Use with caution and do your homework.
  //
  //#define Z_MIN_PROBE_ENDSTOP

#endif // AUTO_BED_LEVELING_FEATURE

Your #define Z_PROBE_OFFSET_FROM_EXTRUDER 3.2 needs to be a -3.2.


Folger Tech 2020 i3 and FT-5 as well as modified JGAurora A5 with direct drive E3D/Titan. All running the BLTOUCH.
Great kits. Having fun and running the heck out of them.
Running Marlin 1.1.0 RC8 on the i3 and FT5. Custom firmware on A5.
Folger Tech Wiki board >[folgertech.wikia.com]
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 05:06PM
Cool
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 05:06PM
Cool
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 05:06PM
Cool
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 05:07PM
Cool thanks
Re: Auto bed leveling: XY home position after probe messed up
January 29, 2016 05:07PM
Cool thanks
Re: Auto bed leveling: XY home position after probe messed up
January 30, 2016 05:35AM
Lol there's smart phones for you, I pressed post message nothing happened, five times lol.

Normally it says message already posted or this message looks it was posted by a bot.

Edited 1 time(s). Last edit at 01/30/2016 05:37AM by DjDemonD.
Re: Auto bed leveling: XY home position after probe messed up
February 03, 2016 08:31AM
May to finish this topic/ to come back with my experience:

I changed the start code from G28 to G28 X0 Z0 followed by a G29 and it works great.

All the best

Tom
Sorry, only registered users may post in this forum.

Click here to login