3 Z motor auto bed calibration weirdness



  • I have a Railcore ii 300ZL, and having an auto bed leveling issue. I've used the setup guide to enter the appropriate gcodes to use G32, set my leadscrew locations, and been trying several versions, but no matter what I enter, when it goes to probe position 2, it always tries to go to Y-30 and smashes the endstop. Any ideas? Current code:

    Bed.g
    M561 ; clear any existing bed transform
    ;G1 Z5 S2
    ;G30 P0 X15 Y45 Z-99999
    ;G30 P1 X15 Y275 Z-99999
    ;G30 P2 X275 Y150 Z-99999 S3
    ;G1 X0 Y0 F5000 ; move the head to the corner (optional)

    G28 ; home
    G30 P0 X20 Y270 Z-99999 F200 ; probe near back left
    G30 P1 X20 Y10 Z-99999 F200 ; probe near front left
    G30 P2 X290 Y180 Z-99999 F200 S3 ; probe near right and calibrate 3 motors

    Config.g
    M584 X0 Y1 Z5:6:7 E3:4:8:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
    ;Leadscrew locations
    M584 X0 Y1 Z5:6:7 E3:4:8:9 ; three Z motors connected to driver outputs 2, 5 and 6
    M671 X-15:-15:315 Y10:290:190 S2.0 ; leadscrews at back left, front left, and right

    Firmware:
    Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
    Firmware Electronics: Duet WiFi 1.02 or later + DueX5
    Firmware Version: 2.03 (2019-06-13b2)
    WiFi Server Version: 1.23
    Web Interface Version: 1.22.6



  • Where is your origin (ie X0 Y0)? Is it front left of the bed, or back left? Generally is should be front left of the bed. If it is, this means some of your descriptions are wrong, which might be throwing you off:

    G28 ; home
    G30 P0 X20 Y270 Z-99999 F200 ; probe near back left - this position is front right
    G30 P1 X20 Y10 Z-99999 F200 ; probe near front left
    G30 P2 X290 Y180 Z-99999 F200 S3 ; probe near right and calibrate 3 motors - this is back middle-right

    The second move goes from Y270 to Y10. If the carriage is going to Y-30, I'd guess you have a large probe offset and you can't probe at Y10, the probe offset is set incorrectly (perhaps positive Y when is should be negative). Post the 'Probe' section of your config.g to check.

    If your origin is in the wrong place, you probably have a motor reversed; check by following this guide: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter?revisionid=HEAD#Section_Testing_motor_movement

    M671 X-15:-15:315 Y10:290:190 S2.0 ; leadscrews at back left, front left, and right
    If your origin is front left, this should be "leadscrews at front left, back left, and right". The important thing is that the Z motor connections match the leadscrew definition, ie Z motors are mapped to drivers 5, 6 and Z, so motor connection 5 should be to the front left leadscrew, 6 to back left leadscrew, and 7 to right leadscrew. If you get them in the wrong order, the Z levelling will move the wrong way!

    Ian


  • administrators

    What Z probe offsets have you set in G31? The locations you specify in G30 are the locations of the probe at those points, not the nozzle. The nozzle will be at those coordinates minus the Z probe X and Y offsets.



  • @dc42 You were spot on with my G31 positioning. This is my first Duet, and I've been a bit overwhelmed moving from OctoPrint to this, but that solved my issue. The Z offset in that same line, is that meant to mean that the nozzle is say, Z2.00 LOWER than the probe? Haven't seen much that clarifies that for me. But how does the Z "trigger" play into that? The BLTouch is so new to me. I'm used to just using paper and turning a knob haha.

    Also, @droftarts, front left is my zero (when looking at the front of the machine), and when I move to X0 Y300, the carriage slides straight to the rear of the machine, so that probe point is my back left. Is something set up wrong with that? To me, that makes sense for the XY Cartesian method (from a math graph perspective), but it may not be how it was intended?

    Thanks for all the help!



  • @txageod said in 3 Z motor auto bed calibration weirdness:

    is that meant to mean that the nozzle is say, Z2.00 LOWER than the probe?

    Yes. The G31 Z parameter is the trigger height of the probe. That means that the probe triggers when the nozzle is that far from the bed surface. It uses that offset to determine Z0.

    See here: https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe

    front left is my zero (when looking at the front of the machine), and when I move to X0 Y300, the carriage slides straight to the rear of the machine, so that probe point is my back left. Is something set up wrong with that?

    That sounds correct.



  • @Phaedrux I see now, thanks for the reference article. I'm using that now to see about proper Z offset.



  • @Phaedrux Question regarding the article for Z probe offset calibrating. I went through the whole thing, and reliably got a Z0.87 offset, even with a power cycle. But now when I go to print, I have to babystep -0.70 to get the proper print height. Any suggestions?



  • Can you post your config.g and homing files?
    What is the order of operations for homing and leveling the bed before the print?
    Did you have a heightmap for mesh compensation loaded before you measured the trigger height?



  • @Phaedrux config.g bed.g homeall.g

    This should be my config.g, homeall.g, and bed.g

    I usually home XY and Z, then run G32 to run the bed.g, and I verified it with paper after it was done by setting it to Z0.00 and it was good. But when I hit start, it's 0.9mm above instead of 0.2mm.


  • administrators

    After you run bed.g, assuming that you have set the Z probe trigger height correctly in G31, the Z=0 point should be correct at the three probe points you used in bed.g. However, if the bed isn't flat or the gantry sags, then Z=0 may not be correct at bed centre, which is more important. Have you tried running G32 to level the bed, then checking whether at bed centre the Z=0 level is correct?

    In your bed.g file, after the final G30 command with the S parameter, you may wish to move the probe over bed centre and do a single G30 probe, in order to reset the Z=0 level at that point.


Log in to reply