UNSOLVED Autotramming minor issue (Cartesian machine)

  • Hello all,

    Wondering if anyone has any suggestions for me: currently my pre-print routine consists of zeroing all axes, running an autotramming of the gantry 3x times, and then running a mesh bed compensation.

    What I have noticed is that the right side of my build plate is always closer to the nozzle, and the left side farther away at the beginning of the print. I am using a BLtouch, multiple probes per point. I had assumed probing multiple times per point, along with autotramming three times, would ensure that my gantry is planar to my build plate, but it seems this is not the case.

    Does this seem like a mechanical issue, or possible due to the multiple probings/accuracy issues with the BLtouch?

  • @Red-Sand-Robot If it is a very repeatable issue, then the chances are that it is something systematic, not a mneasurement accuracy issue.

    Things that spring to mind:

    • ensure that mesh compensation is disabled and stays disabled before doing any homing or autotramming. I have an M561 at the start of all my homing & levelling files to be doubly certain.
    • are you recreating a new heightmap each time or just loading an old one? If an old one, was the bed homed & fully levelled/trammed before being created?
    • are you re-probing/homing Z with a G30 to reset the Z height after autotramming?
    • how confident are you on your probe offsets and lead screw positions in your config? If they're off a bit (particularly the probe offsets), that can cause several issues!

    If those don't help, probably best to post your config, homing and bed levelling files so we can take a closer look at what is going on.

  • @engikeneer

    The heightmap is cleared before every print as a start, and mesh leveling only happens after homing and tramming. However, I am not resetting my z-axis zero after every tramming command. I can see now how that would be an issue. Probe offsets should be optimal, as well as leadscrew positions.

    First thing I will try will be to insert a G28 Z command after every tramming attempt and see if that solves the issue.

    It is strange, though, as I do not remember this being an issue when I first switched to independent dual z-axis stepper control.

    If that does not work I will post relevant files to see if someone can spot an error in what I have configured.

  • Moderator

    Please share your g files so we can see exactly what is executed and in what order, without that we can only speculate.

  • @Phaedrux @engikeneer

    M307 H3 A-1 C-1 D-1	             ; Enables usage of expansion header pins for BL Touch 
    M558 P9 H3 F150 T5500 R0.2 A15 S0.01 ; BLTouch, set dive height, probe speed, travel speed, 
    				     ;number of times to probe a single point, tolerance when probing multiple times
    G31 X-16 Y-42 Z1.49 P25              ; X,Y offset, Z trigger height, P is signal threshold
    M557 X-74:74 Y-42:42 S37:21          ; Define mesh grid
    M376 H2.2			     ; Define mesh taper height (2.2mm), removes compensation above this height
    ; Axis Limits
    M584 X0 Y1 Z4:2 E3 	       ; two Z motors connected to driver outputs Z and E1
    M671 X-158:152 Y0:0            ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
    M208 X-102 Y-106 Z-0.05 S1     ; Set axis minima and low homing switch position
    M208 X100 Y100 Z200 S0         ; Set axis maxima

    Lead screw positions are relative to 0,0, and by buildplate is slightly off center. Possibly this is the main issue?

    ; bed.g
    ; called to perform automatic bed compensation via G32
    M561 ; clear any bed transform
    G30 P0 X-100 Y0 Z-99999    ; probe near a leadscrew, half way along Y axis
    G30 P1 X84 Y0 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
    ; --> Start G-code <--
    G21     ;metric values
    G90     ;absolute positioning
    M107    ;start with the fan off
    G29 S2  ;clears existing bed heightmap
    G28     ;home all 
    G32     ;motorized gantry plane correction
    G32     ;
    G32     ;repeated 3 times 
    G29     ;mesh bed compensation 
    G1 Z20 F6000 ;move the nozzle to Z=20mm
    G1 F100 E5 ;extrude 5mm of filament
    G92 E0  ;zero the extruded length

  • @Red-Sand-Robot I see you've got a M561 in your bed.g file so all good there. Your probe points and leadscrew positions look sensible if your origin is in the middle of your bed. Doesn't really matter where the bed is in reality, as long as everything is correct to where the Duet thinks the origin is.

    Other ideas, prepare for a brain fart...

    If you run autotramming (G28) on it's own from console, does it run okay? Does it have issues with needing too much correction (S parameter in M671 which defaults to 1mm)? If you repeat it, do the results converge quickly?
    If you then do a paper test at either end of the x-axis, does it show the same high-nozzle-issue at one end? this might show whether it is G28 or G29 related

    Just to double check, the motor connected to your left leadscrew (at X -158) is on Driver 4 whilst the right one (at X 152) is on Driver 2? Been there, done that, got the bent leadscrew... 😛

    On your heightmap, have you tried running a more detailed one to see what the bed surface actually looks like? Maybe also post a screenshot of a typical heightmap? I've had some weird results when probing a dimple in my bed from a few nozzle crashes.
    You may get better results if you just do one detailed heightmap (e.g. 400 points) and keep reloading it with G29 S1? This is what I do on my coreXY (I only rerun if I disassemble parts) but it is pretty rigid...

    Would definitely recommend rehoming Z after bed.g, though I think this will mainly cause an offset in the heightmap, not a tilt. I just call 'G28 Z' as the last line in bed.g

    Edit: one final thought... Is there any play in your x-carriage bearings/rails? this might cause some error in your probe measurements depending on the travel direction?