Manual probing bed height & storing Z offset



  • I am trying to upgrade an Ultimaker 2 to Duet. I have the basic machine running but I'm trying to tidy up a couple configuration details.

    The original firmware had a "bed height adjust" which lets the user set the bed height by jogging the machine to touch the nozzle to the bed. It lets me store it and it remembers it until I adjust it again. I do this process whenever I swap the nozzle or bed plate.

    I have a probe type of zero in my Duet, which means I manually jog the machine until the nozzle touches the bed.

    My carriage and machine doesn't offer me much room to install a probe.

    I am trying to do a "probe once" of my bed center to get a height offset, I would like to have it store that offset for me, and load that offset later like after a machine is powered on again.

    G30 seems to fit the bill but there's no way to store the Z offset or load it later.

    Also, in my experimentation, I tried this:

    G30 S-2 ; Probe the bed at the current XY position. When the probe is triggered, adjust the Z offset of the current tool to make the current position Z=0.

    In my test, this is not setting the current Z position to zero when it finishes.

    Should I just set up a 1x1 "mesh" system?

    As an aside, it seems there's no way to cancel or abort a manual probe operation short of resetting or turning off the controller.



  • I'm not sure what you mean by the Z offset.

    What is in your homez.g and homeall.g macros?

    If you have P0 set, when you home the Z axis using G30 it will ask you to job the nozzle to the bed, and that will set Z=0. This will have to be done every time you power off the printer because the motors turn off an lose their positioning. I don't understand what you want to load later?



  • @phaedrux said in Manual probing bed height & storing Z offset:

    I don't understand what you want to load later?

    The offset setting that defines the position of the bed surface relative to the nozzle tip.

    So I don't have to either:

    1. manually change config files every time I change nozzles or bed places to have the correct offset
      or
    2. do the jog touch off every time the machine is powered up


  • Do you have an endstop on the z axis as well?

    There has to be a way for the machine to locate itself at power up. It must be homed. If you don't want to use the probe less probing method of jogging the nozzle to zero you would need at least an endstop.

    Perhaps sensorless stall detection could work in your case. How is the z axis configured?



  • I do have a Z endstop. But it's at the bottom end of the travel and the nozzle is at the top end.

    And the distance between the nozzle and bed surface can change a little bit whenever the nozzle or bed are swapped.



  • Yes I can see how zmax would be unattractive as a homing position.

    I'm not familiar with how ultimaker does it, but I can see a few options for you. Somehow the printer must be homed before a print can start, there's no way around that, but there are many options for how to accomplish that.

    Option 1. Add a zprobe. This opens the option of using mesh grid compensation to adjust for an uneven print surface. You'd still have to remeasure the z offset between where the nozzle is and where the probe triggers if you change the nozzle. No way around that I'm afraid.

    Option 2. Add an endstop to zmin. Saves the travel time to zmax. Less complex than a probe. Cheap. Still requires that you at least calibrate the zoffset at switch trigger at least occasionally.

    Option 3. Try using stall detection as an endstop. This uses the drivers stall detection feature to act as an endstop. It does this by crashing the nozzle into the bed. If configured correctly and your hardware is suitable for it it can work well. Though it is tricky. I believe this is probe type 10. No other hardware required, it uses the nozzle as the probe so no offset is needed and it won't matter if you change the nozzle. Works best with a single motor z axis with a fairly high steps per mm for best accuracy and a stiff bed. Takes some trial and error and can be affected by motor temps.

    Option 4. Continue to use probe type 0 and jog the nozzle to touch the bed each time. It's a little time consuming but at least it's accurate.

    I'm curious what config files you are editing each time. What are you changing?



  • @phaedrux said in Manual probing bed height & storing Z offset:

    I'm curious what config files you are editing each time. What are you changing?

    Currently, it involves manually changing a z offset in the z home routine.



  • Can you post your homing files?

    If you're touching the nozzle to the bed, there should be no offset, so I still don't understand what you're changing or why.

    https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_files


  • administrators

    @jrdm said in Manual probing bed height & storing Z offset:

    @phaedrux said in Manual probing bed height & storing Z offset:

    I'm curious what config files you are editing each time. What are you changing?

    Currently, it involves manually changing a z offset in the z home routine.

    If you are homing to Z Max then you shouldn't be adding an offset in the Z home routine. Adjust the M208 upper Z limit instead.

    If you have only a single tool then G30 S-2 should do what you want, if you upgrade to firmware 2.02RC4.


 

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