[Solved] On the fly G31 zprobe height adjustment



  • In config.g you can find the G31 command to set the zprobe height.
    I would like to adjust this setting while printing because it makes initial setup after a nozzle change so much easier.
    With this feature you could optimize the zprobe height to get a perfect first layer without having to retry it again and again, everytime rebooting your printer.



  • This isn't exactly what you're asking for: I use a set of macros that I call for setting the zprobe height for different filaments and call them in the slicer's start gcode before the homing.

    You could do the something similar for the nozzle change.



  • I don't think adjusting the zprobe height while printing will help you with that since it is only used while calibration.
    I use G92 Z## to set the z height while printing the first layer to adjust the height.



  • I tried using G92 Z0.3 and even higher values (Z1.0) while printing a first 0.2mm layer.
    The Z reading in the upper right part of the DuetWebControl adapts accordingly after a few seconds.
    However I can't notice any difference in layer height.

    The tip with the filament specific macros is nice. Do you still use the paper method to get the zprobe height for the macros?



  • The adjustment with G92 Z## will take place at the next G1 X## Y## Z## command.



  • @nokian:

    The tip with the filament specific macros is nice. Do you still use the paper method to get the zprobe height for the macros?

    I used the paper method for the initial setting. Then run a print to see how the first layer ends up and adjust as needed. Also, if the print ends being super stuck to the bed, I reduce the offset a bit.



  • @AndreS:

    The adjustment with G92 Z## will take place at the next G1 X## Y## Z## command.

    That's when the next layer starts… So I have to write a special .gcode file by hand that includes some Z## in every G1 command

    @StephenRC:

    Then run a print to see how the first layer ends up and adjust as needed. Also, if the print ends being super stuck to the bed, I reduce the offset a bit.

    Adjusting as needed means, changing config.g and restarting the printer each time.



  • nokian, you don't need to change every G1 line to achieve what you want.
    If your first layer is z=0.2 and you want it lower by 0.1
    send G92 0.3 followed by G1 Z0.2 would set the print head where you wanted it to be.
    It will stay correct as long as you don't home or restart the printer.

    Also with StephenRC's method, you don't have to restart the printer each time
    You can change your config file without restarting and just send those changed commands to the machine (e.g. G31).

    Honestly, I am not quite sure what you are trying to achieve. I don't change nozzle often, but when I do I would do the auto-calibration and adjust the offset manually. I believe that the nozzle height might change during screwing it in and out of the hotend, therefore I don't think a pre-set macro can help me with that.



  • I think He wants Babystepping which is on David's list of things to implement.



  • @Dougal1957:

    I think He wants Babystepping which is on David's list of things to implement.

    That sounds quite like it.



  • @nokian:

    @StephenRC:

    Then run a print to see how the first layer ends up and adjust as needed. Also, if the print ends being super stuck to the bed, I reduce the offset a bit.

    Adjusting as needed means, changing config.g and restarting the printer each time.

    I adjust the G31 Z setting in the macro, I don't touch config.g.



  • I don't even know what Babystepping is. I don't want to create a macro.
    What I really want to achieve is: Testing different Z probe heights during the first layer of one print. Without the need to restart a test print.

    Afterwards I want to enter it in config.g.
    This way the setting is permanent.

    Thanks to all of you for the useful information so far. It's interesting to see what setup other people use.



  • So with the new m500 to save settings system (1.17) - tonight I have been grappling with how this works compared to before. What I can determine is that if you home, then measure your z probe offset (trigger point height minus height at which nozzle grips the paper) then use G31 Zx where x is the z probe offset, then auto-calibrate, then check your z offset with paper/feeler gauge (or just sending it to z=0) and its is correct you then send m500 to save and you're done. Provided you include an m501 to load settings at the end of your config.g for next time you power your machine up. However this is IMO the old style way of doing it.

    The better/newer way is babystepping which is a feature of marlin and probably other firmwares too. You can use the rotary encoder to jog the nozzle up or down, during printing to achieve a nice first layer. Even better you can record the amount you jogged off the LCD and use it to modify your z offset for the next print, so tuning your nozzle to bed distance. A big time-saving feature which I think David is going to include in the next release.



  • On 23.11. David wrote in the "new feature priorities" thread:
    @dc42:

    Babystepping is still on the to-be-implemented list. Grid based bed compensation got more votes.

    As he already implemented grid bed compensation it shouldn't take a long time.
    So for me the issue is solved.

    @DjDemonD:

    Provided you include an m501 to load settings at the end of your config.g for next time you power your machine up.

    The changelog says: "The M501 auto save option has been removed" so adding it to your config.g shouldn't be necessary.
    https://github.com/dc42/RepRapFirmware/blob/dev/WHATS_NEW


  • administrators

    It's only the auto-save option (S1 parameter) of M501 that has been removed, not the whole of M501.



  • Oh I thought I read more carefully but I didn't. Thanks.
    http://reprap.org/wiki/G-code#M501:_Read_parameters_from_EEPROM


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.