G29 Bed compensation

  • I have recently switched over to the Duet WiFi and I'm having an issue with the G29 command not always running when I start a print.
    The auto compensation works every time with no issues from the Duet WiFi Web interface.
    I always run it before each print as seen below in my Simplify3D starting script.
    The problem is sometimes it runs and sometimes it doesn't. I never change my starting script.
    My firmware version is 1.18.1

    zprobe settings

    M558 P4 X0 Y0 Z1 H2 I1 F120 T6000 					
    G31 P1000 X0 Y53 Z6.631 		

    bed.g file

    M561				       ;Clear any bed transform
    G28				               ;Home all axes
    G90 				               ; Back to absolute positioning
    M557 X10:210 Y0:210 S40      ;Define mesh grid 
    G29 S0				      ;Probe the bed and save height map to file
    M374 				     ; Save calibration data. Default is sys/heightmap.csv

    Simplify3D starting Script

    G21 ;metric values 
    G90 ;absolute positioning 
    M107 ;start with the fan off 
    G28 ;home all 
    G29 ;run bed compensation
    G0 X5 Y5 F5000 ;move to x5 y5
    G1 Z0.4
    G92 E0 ;zero the extruded length
    G1 X40 E25 F500 ;extrude 25mm filament in a 40mm line
    G92 E0 ;zero the extruded length 
    G1 E-1 F500 ;retract a little
    G1 X80 F4000 ;quick wipe

  • Pretty sure you need to change the G29 in your start script to G32 for it to run the Bed.g file. (It may be different for a cartesian such as yours but don't think so)



  • so the G32 command just calls the bed.g file to run which has the G29 command in it right?

  • Think so? as I say I use a delta so it is called from the Autocal button
    it may be different on a cartesian but don't think so Maybe David will be along soon to either confirm or otherwise

  • Also you don't need to run G29 before each print you could just use G29 S1 which will recall the saved bedmesh file?

  • administrators

    To use that S3D starting script, the grid needs to be defined using M577 first.

  • @dc42:

    To use that S3D starting script, the grid needs to be defined using M577 first.

    Did you mean M557? M577 is Wait until endstop is triggered

    As you can see in my bed file I posted above I do use M557 command to define the grid.
    Do you mean I need the M557 command in my starting script?

  • administrators

    Sorry yes I mean M557. Your bed.g file has a M557 command, but your S3D start script doesn't. So if you run G32 first, then the start script will work because M557 will have defined the grid. If you don't run G32 between starting the Duet and running the S3D start script, no grid will have been defined, so G29 will just report "no grid defined" to the console.

    If you intend to use the same grid always, you can put the M557 command in config.g. Or you can add it to your S3D start script, before the G29 command. Or, since you have written a bed.g file that contains both M557 and G29, you can have the S3D start script use G32 instead of G29.

  • Thanks!! Makes a lot more sense now.

Log in to reply