G29 or G32



  • Hi everyone,
    Im most new to building printers and Im having a hard time with autobed compensation.

    I have a Cartesian 500x500 bed... Think of a CR-10S 5.
    I have set the 2nd extruder to power the 2nd Z stepper motor so that they can run independently.

    I have set up G32 to run on a 3 point calibration, but also run G29 on 25 points. I have an issue though, no matter how much I try to level, I cant get the heightmap to show level, even though if I do it manually with a feeler gauge and start a print it goes off without a hitch.
    I cant help but feel that using both the G29 and G32 commands are causing a problem. Should or can they even be used together?? Or should you manually square the X gantry and then just use G29?



  • What problems are you encountering?



  • Hi,

    G29 for probing for mesh compensation.

    G30 for setting the Z=0 position, assuming you have a Z probe.

    I have two macros using G29 and G30.

    One does a 4 point mesh at the corners for doing a quick verification of bed level.

    Once manual leveling yields a good height map from the 4 point probing I do a full probing at 20mm spacing.

    Frederick



  • @fcwilt please can you show me what your bed.g file looks like and the macro?



  • @GT1Za said in G29 or G32:

    @fcwilt please can you show me what your bed.g file looks like and the macro?

    I wouldn’t mind seeing it as well. I have switched to independent Zs and am using a g32 before my g29 with mixed results.



  • @RyanP This is exactly my problem...
    I manually level the bed.
    Run G32 and adjust the z screws if needed and then run G29
    But I can never actually get a level bed according to the probe.

    But I do a manual level and print... perfect print.

    This is why I think it must be something Im doing wrong.



  • @GT1Za said in G29 or G32:

    @fcwilt please can you show me what your bed.g file looks like and the macro?

    I cannot show you my bed.g file because I don't use one.

    This is the essence of the macro used for the 4 point probing:

    M98 P"configprobe.g" ; configure Z probe
    M98 P"probez.g" ; set Z=0 datum
    M208 Y-155:145 ; adjust axis min/max values to allow for Z probe offset
    M557 X-140:140 Y-130:130 P2:2 ; define 4 point mesh for G29
    G29 ; do probing
    G29 S3 P"heightmap_FAST.csv" ; save file with unique name
    G29 S2 ; cancel mesh bed compensation
    M208 X-140:140 Y-145:145 ; reset axis min/max values
    G90 ; absolute moves
    G1 Z5 F600 ; move nozzle away from bed

    I don't like to repeat code so I use M98 to call other macros to perform tasks that I use in two or more places, such as the macros for configuring the Z probe and using the Z probe to set the Z=0 datum.



  • @GT1Za in answer to your question: BOTH

    I use this on a few of my dual Z machines. here is my G code for one of my Chiron's

    M584 X0 Y1 Z2:4 E3 ; Custom drive mapping

    M671 X-40:440 Y206:206 S2 ; Lead screw positions at right and left of the X axis

    I have that in the "drives" section of my config.g

    That works in conjunction with my bed.g file which is executed by G32 Which I set in motion by means of a macro entitled "all in one leveling" it first levels the X gantry ( I do it twice to reduce the amount of error correction) then I have it probe the bed by calling G29 that uses the info from my M557 Command


    contents on my bed.g

    ; bed.g
    ; called to perform automatic bed compensation via G32

    M561 ; Clear any bed transform
    G28 ; Home All
    G30 P0 X15 Y206 Z-99999 ; Probe near a lead screw, half way along the Y axis (1st motor)
    G30 P1 X400 Y206 Z-99999 S2 ; Probe near a lead screw and calibrate 2 motors (2nd motor)
    G30 P0 X15 Y206 Z-99999 ; Probe near a lead screw, half way along the Y axis (1st motor)
    G30 P1 X400 Y206 Z-99999 S2 ; Probe near a lead screw and calibrate 2 motors (2nd motor)
    G1 H0 X20 Y61 F7000 ; Move the head to the front left corner
    G29 ; Carry out mesh leveling


    M557 X12:420 Y10:460 S30 ; define mesh grid


Log in to reply