Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Understanding bed levelling : G29 vs G32

    Scheduled Pinned Locked Moved
    Firmware installation
    3
    9
    12.7k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • claustroundefined
      claustro
      last edited by

      I am still trying to understand the bed leveling procedure.

      Now what are the differences between G29 and G32 ?
      Which part of the configuration this 2 commands read?
      If I understand correctly the button in the web interface on "Machine Control " tab called "Auto bed compensation " run a G32 command .
      In my case this run a procedure of probing and at the end I can see the mesh grid map, so it seems to me that the G32 command run the bed.g commands, right?

      Now , with G29 command all seems to work the same except that the probel ( bltouc) doesn't deploy , so where I can add the deploy routine?

      In my other printer ,Marlin based ,I have a script that run G28 and G29 before all the printing , what script should I use for compensate bed in this case?

      Thank you for your patience

      My config.g part of bltouch
      [c];*** BLTouch
      M307 H3 A-1 C-1 D-1
      M558 P5 X0 Y0 Z1 H5 F200 T5000
      M574 E0 S0
      G31 P100 X0 Y-20 Z0.91 P1[/c]

      And my bed.g
      [c]G91
      G1 Z6 F200
      G90
      M98 Pdeployprobe.g
      G29 S2
      M557 X30:270 Y30:270 S60
      G29
      M98 Pretractprobe.g[/c]

      1 Reply Last reply Reply Quote 2
      • dc42undefined
        dc42 administrators
        last edited by

        G32 just runs bed.g. In bed.g for a Cartesian printer you put one of two things:

        1. A sequence of 3, 4 or 5 G30 commands with coordinates. This is the old way of doing it. You are limited to just 5 points, and you can specify trigger height corrections for those points.

        2. A G29 command to do mesh leveling. You don't get to choose individual points (just the grid) and you can't specify trigger height corrections. But you can have a lot more points.

        Either way, if you use a deployable probe then you need to deploy it at the start and retract it at the end.

        Your bed.g file looks good to me, a!though you don't need the G29 S2 command because the height map is cleared at the start of the G29 probing command anyway.

        HTH David

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • claustroundefined
          claustro
          last edited by

          thank you very very much for your kind answer , as usual 🙂
          Excuse me but I am still mising some concept.
          the point I am missing is :
          If I understand correctly I can make mesh levelling in 2 way

          1. run G29
          2. run G32 with a bed.g containing a M557 command

          In my case if I run G32 , the probe deploy correctly and mesh levellingwill be completed without errors , while If I run G29 the probe miss the deploy even if the deploy command is present in the bed.g routine.
          Where the Duet read the mesh levelling info while running G29 command?

          Other question.
          I can't undestand how bed compensation is achieved during printing.
          What I undrestand is that the mesh levelling map is stored in the firmware , is this map checked every print if not cancelled?
          Do I have to make mesh levelling every print as I am doing on my marlin based printer?

          My start printing script should contain G32 only for bed levelling compensation to work ?

          Please be patient with my bad English and my dumb questions .
          Regards
          Andrea

          1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators
            last edited by

            At present, G29 does not deploy and retract the probe. I may change this in a future release; but it is no big deal because you can wrap the G29 command in either bed.g or another macro file that deploys the probe, does G29, and retracts the probe.

            The height map generated when you run G29 is stored in a file on the SD card. The default filename is sys/heightmap.csv. If you don't want to probe each time you turn the printer on, you can use the existing height map by running G29 S1. This loads the height map from the file on the SD card.

            Once you have a height map stored in memory, it will be retained until you turn the printer off, or run G20 to probe again, or run G29 S1 to load a height map from file, or run G29 S2 or M561 to clear the height map, or perform old-style bed probing using G30 Pnnn commands.

            Most of this is covered at https://duet3d.com/wiki/Using_mesh_bed_compensation.

            HTH David

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • claustroundefined
              claustro
              last edited by

              Thank you for your answer ; i read the wiki many times but many basic concept is supposed as "already know " and not explained from the basics. I am reading the reprap site also and I am starting to understand.
              Please can you answer to the last question regarding this subject,
              If I want to use a fresh bed level for every print it is sufficient put G32 in the slicing software start script

              1 Reply Last reply Reply Quote 1
              • dc42undefined
                dc42 administrators
                last edited by

                Yes you can use G32 in your slicer start gcode, with the bed.g file set up as you listed in your earlier post. Or use G29 S1 in your start script to load the most recent height map you generated.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                1 Reply Last reply Reply Quote 0
                • digiex_chrisundefined
                  digiex_chris
                  last edited by

                  Is it sane to use G29 S1 in config.g? I'd like it to load the heightmap when the machine is turned on, rather than in my start gcode, since I like to run the same print file on multiple machines.

                  1 Reply Last reply Reply Quote 0
                  • claustroundefined
                    claustro
                    last edited by

                    Perfect now it seems clear thank you dc42!

                    1 Reply Last reply Reply Quote 0
                    • dc42undefined
                      dc42 administrators
                      last edited by

                      @digiex_chris:

                      Is it sane to use G29 S1 in config.g? I'd like it to load the heightmap when the machine is turned on, rather than in my start gcode, since I like to run the same print file on multiple machines.

                      Yes that should be ok. Or you could put it at the end of homeall.g.

                      Duet WiFi hardware designer and firmware engineer
                      Please do not ask me for Duet support via PM or email, use the forum
                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA