Auto Bed Leveling



  • Hi everyone,

    I have finally got my printer working and have been doing some calibration cubes to get everything set as best as I can. One issue I am having is with Auto Bed Leveling.

    My printer is a Core XY with 3 independent lead screws. It has one at almost the left front and right front and one at the back. I have spent a lot of time measuring and remeasuring the locations of the lead screws and I am confident that they are correct from the origin of X0 Y0. I have also set the bed.g file up and it probes at the front two corners of the build area and right in front of the back lead screw. However, when it does its adjustment, it never seems to work and the build plate is on an angle. When I do the bed mesh compensation, it shows this as the plate is angled up in one direction.

    Here are the settings for the bed.g file:

    M561 ; clear any bed transform
    G29 S2 ; Clear bed height map

    ;Probe 3-point
    G1 X0 Y0 Z30
    M561 ; clear any bed transform
    G29 S2 ; Clear bed height map
    G1 X365 Y50 F4000
    M401 ; Deploy probe - deployprobe.g
    G30 P0 X357 Y-5 Z-9999 ; Front Right
    G30 P1 X0 Y-5 Z-9999 ; Front Left
    G30 P2 X158.5 Y339.5 Z-9999 S3 ;Center Rear
    M402 ; Retract Probe - retractprobe.g

    and the config.g file;

    M671 X383.0:-61:165 Y89:86:410 S2.5

    My question is there anything anyone can see that could be causing me problems? I see that in the setting up document for the duet with multiple z lead screws, it cause you need at least the same amount of points as lead screws. Am I better to probe all corners?

    Kind Regards,
    Sam



  • I have changed the bed.g file to as follows:

    M561 ; clear any bed transform
    G29 S2 ; Clear bed height map

    ;Probe 3-point
    G1 X0 Y0 Z30
    M561 ; clear any bed transform
    G29 S2 ; Clear bed height map
    G1 X365 Y50 F4000
    M401 ; Deploy probe - deployprobe.g
    G30 P0 X357 Y-5 Z-9999 ; Front Right
    G30 P1 X0 Y-5 Z-9999 ; Front Left
    G30 P2 X0 Y339.5 Z-9999 ; Back Left
    G30 P3 X357 Y339.5 Z-9999 ; Back Right
    M402 ; Retract Probe - retractprobe.g

    and it does the probes but does not do anything with the bed even though the bed is definitely not flat.



  • you got the 2 sample points a Y=-5 but your motor is located at +89 and +86 that doesn't sound right should the be at a negative coordinate maybe -89?



  • For some reason as my probe is offset it seems to probe at the probe x and y location not at the nozzle. Due to the offset, I am able to probe behind 0,0.



  • Does anyone else have experience with this?



  • Managed to sort it. Turns out it is not a good idea to work on setting up a 3d printer when you are on bed rest for a concussion. You end up plugging the wrong motor into the wrong driver.


  • administrators

    @samlogan87 i am glad you got it sorted!



  • @T3P3Tony I have two other quick question about this.

    When i am probing the 3 points for the leveling, what I have found is that there is no compensation for the location of the probe on the X axis (Maybe the Y as well. I don't have the printer in front of me at the moment). I probe at the back of the bed which is the center of the build plate. The coordinates are x165 y367. My probe is offset from the nozzle by x-4.5 y -32.5. When it goes to probe the back point (X165), it is actually probing X161.5 not X165. Does this mean that the firmware is compensating for these values and although the machine is saying it is at X165 but when it does its calculations, it is using X161.5?

    Does that make any sense?

    Also, is there anyway to make a macro that will do the bed compensation multiple times until the deviation is less than a certain value or can this be implemented some other way? I saw this brought up in a post a while ago. I have a completely rigid build plate with no manual adjustment as I was sort of relying on the auto adjustment, which now works quite well. However it can take 2-3 iterations to get it to a level that I am happy with and is in line with the deviation the mesh bed profile that I have was done at.


  • administrators

    @samlogan87 yes, the probe is offset from the nozzle so it will apply that offset for probing otherwise you could command it to probe points in the bed that were reachable by the nozzle but not the probe. The offset is taken into account when the levelling is calculated.

    Currently there is no conditional execution in macros like you suggest. Either you need to run it until you are happy with the levelling (although then it should stay relatively level I hope) or if you know it takes 2-3 times then write a macro with 3 runs of levelling and always use that.

    Conditional execution is in the wishlist but to be fair it's a massive change so not likely any time soon.



  • @T3P3Tony Excellent. Thanks for clarifying that. I thought it might be the case.

    In regards to the iterations, do you think I can just copy and past the probe points several times in the bed.g file or do i make a macro with the bed compensation g code in it several times?


  • administrators

    @samlogan87 said in Auto Bed Leveling:

    In regards to the iterations, do you think I can just copy and past the probe points several times in the bed.g file or do i make a macro with the bed compensation g code in it several times?

    You can copy and paste the points several times.



  • Just tried it and it works well. Because my bed is so heavy it drops ever so slightly when the stepper motors are powered down and it takes 2-3 goes to actually level it out to a level that I am happy with. Usually the deviation is about 0.2mm and then works its way down to about 0.11mm and then to about 0.01mm. Just was not sure if it would get confused. Once again thank you @T3P3Tony and @dc42. You guys are awesome.