Welcome! Log In Create A New Profile

Advanced

Auto bed level 3-point

Posted by james_III 
Auto bed level 3-point
February 23, 2015 11:56AM
How do I enable this old style 3 point for bed leveling, answer should be somewhere under here, but can't see it?

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

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

#ifdef ENABLE_AUTO_BED_LEVELING

// There are 2 different ways to pick the X and Y locations to probe:

//  - "grid" mode
//    Probe every point in a rectangular grid
//    You must specify the rectangle, and the density of sample points
//    This mode is preferred because there are more measurements.
//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive

//  - "3-point" mode
//    Probe 3 arbitrary points on the bed (that aren't colinear)
//    You must specify the X & Y coordinates of all 3 points

  #define AUTO_BED_LEVELING_GRID
  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
  // and least squares solution is calculated
  // Note: this feature occupies 10'206 byte
    #ifdef AUTO_BED_LEVELING_GRID

    // set the rectangle in which to probe
    #define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS-40)  //
    #define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
    #define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
    #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
    #define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS

    // probe at the points of a lattice grid
    #define AUTO_BED_LEVELING_GRID_POINTS 2    // oli 7
    #define AUTO_BED_LEVELING_GRID_X ((RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1))
    #define AUTO_BED_LEVELING_GRID_Y ((BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1))

    // NONLINEAR_BED_LEVELING means: don't try to calculate linear coefficients but instead
    // compensate by interpolating between the nearest four Z probe values for each point.
    // Useful for deltabots where the print surface may appear like a bowl or dome shape.
    // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
    #define NONLINEAR_BED_LEVELING

  #else    // not AUTO_BED_LEVELING_GRID
    // with no grid, just probe 3 arbitrary points.  A simple cross-product
    // is used to esimate the plane of the print bed

      #define ABL_PROBE_PT_1_X 15
      #define ABL_PROBE_PT_1_Y 100
      #define ABL_PROBE_PT_2_X 15
      #define ABL_PROBE_PT_2_Y 20
      #define ABL_PROBE_PT_3_X 100
      #define ABL_PROBE_PT_3_Y 20

  #endif // AUTO_BED_LEVELING_GRID

Edited 1 time(s). Last edit at 02/23/2015 11:58AM by james_III.
Re: Auto bed level 3-point
February 23, 2015 12:51PM
 #define AUTO_BED_LEVELING_GRID
Comment this line.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Auto bed level 3-point
February 23, 2015 01:03PM
Result for commenting #define AUTO_BED_LEVELING_GRID out
  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Mega 2560 or Mega ADK"
Marlin_main.cpp: In function 'void adjust_delta(float*)':
Marlin_main.cpp:4154: error: 'AUTO_BED_LEVELING_GRID_POINTS' was not declared in this scope
Marlin_main.cpp:4155: error: 'AUTO_BED_LEVELING_GRID_X' was not declared in this scope
Marlin_main.cpp:4156: error: 'AUTO_BED_LEVELING_GRID_Y' was not declared in this scope
Marlin_main.cpp:4161: error: 'bed_level' was not declared in this scope
Re: Auto bed level 3-point
February 24, 2015 06:28AM
Try to use the latest version from github.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Auto bed level 3-point
February 24, 2015 12:49PM
Sorry I did give too little info to begin with, my mistake.

Problem is printer type, this is Rostock delta printer and original marlin is not compatible with delta bed leveling (or so it says). This is really silly thing, Marlin is way too clever with measuring bed leveling, I have working version of marlin and it probes printing platform ok. Trouble comes with calculated level results, my printing bed comes warped at this point. If 3 point grid is used, I have high pizza slice directly from bed center x0y0 to 6 o'clock, thats no good since it really is flat. If grid is changed to 7, as suggested, I get more warped sectors. High sector moves slightly to 4:30 and two low sectors appear to print bed at 10:30 and somewhere 1:00. All i want is one level plate with simple 3 point check without any silly calculations. Reason for using bed leveling is changeable print plates, cant be too much to ask.


Printing bed is mirror and it is flat as mirror can be, machine itself is measured with dial indicator as straight as it can ever be. Rotating mirror 90 degrees does nothing to high and low sectors, everything keeps where it was originally. Seems like this is not going anywhere, after few weeks, so I'm really interested working version of marlin with working 3 point bed leveling on delta printer. There are so many versions out there eye rolling smiley
Re: Auto bed level 3-point
February 24, 2015 12:57PM
If you are just looking to change between different flat print beds with possibly different thicknesses, surely what you need is not auto bed levelling, but auto calibration of either the homed height or the delta endstop adjustments? Most delta firmwares can do these things, including some variants of Marlin I think.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Sorry, only registered users may post in this forum.

Click here to login