Homing to Z-max when also using a Z-probe?



  • I belive the cruz of the problem might be this line:

    [[language]]
    M574 Z1 S2				; Define Z to use Probe. Home to Min
    
    ```But I don't see how I can change the Z1 to make the Z-max (Z2) endstop working and retain the function of my probe?
    
    Just odd as G32 (3-point probe for autolevel on my xBot) homes by itself to Z-max before it probes anything, while G29 doesn't care about the Z-space.

  • administrators

    The Z probe works independently of the Z endstop configuration. Use M574 Z2 S0 or S1 depending on the type of endstop switch.

    S2 in M574 is really intended for machines that use the Z probe to home X or Y, such as the Ormerod.



  • Dintid - So the way I do it is home to z max using the microswitch. I know the approximate height minus a small amount for safety. I send G92 Z180. Then move to Z10 and send G30 using whatever z probe I have mounted. Now the firmware knows the exact z position. Then I use G29 to grid level. Job done.

    So I apologise if I did not realise G32 goes to z max before probing and this is a problem for your setup as I rarely use it, and I apologise if I wrongly stated that I did. Would homing Z using G28 Z or G28 (all) before G32 work, presuming basic Z homing to a max switch was configured correctly? However:

    1. my statement above was meant as encouragement rather than a solution as it seemed David had provided the answer. If he had not then I appreciate it might have been annoying.

    2. I am not a paid support tech for Duet3d, although I am friendly with them, use their products and spend a considerable amount of my free time helping people on this forum. So I don't have to help you solve your problem and don't particularly appreciate being criticised for not getting to the core of it straightaway.


  • administrators

    G32 will only home first if you have a G28 command in your bed.g file.



  • @dc42:

    G32 will only home first if you have a G28 command in your bed.g file.

    That's what I thought.



  • @dc42:

    The Z probe works independently of the Z endstop configuration. Use M574 Z2 S0 or S1 depending on the type of endstop switch.

    S2 in M574 is really intended for machines that use the Z probe to home X or Y, such as the Ormerod.

    Hello DC42, Thank you again for answering.

    While I'd like to beleive what you said, the fact is that my Z-max endstop simply stops working as soon as I list Z axis as being using a probe:

    [[language]]
    M574 Z1 S2
    
    ```This might be intentional, but it is very frustrating and I simply just hope to get a code snippet or some work around as I simply _must_ get it to be able to also home to Z-max. Ie, have the Z-max endstop active.
    
    My machine is using the probe to home Z to minimum, but I must have my machine to be able to home to Z-max also, before homing to Z.
    
    My machine is an Ultimaker style machine, where we home to Z-max typically.
    
    Without the z-max endstop functioning we have to home very, very slooowly to Z-min so as not to crash into our sensor/nozzle.
    With the z-max endstop we can first home to Z-max (now our machine knows where it is a), then quickly go back to Z10 and do the last few mm slowly.
    
    On my other machine (the xBot-Medium, with autolevel) this works fine. I use G32 and it requires a z-endstop to be in place to work at all, but on this single z-machine I'm loading mesh and then do a G30\.
    
    On the G30 machine I can't get the Z-max endstop to work. I've tried making virtual axis U, but the Z-max always just reads as triggered and does not change state regardless of what I do.


  • @dc42:

    G32 will only home first if you have a G28 command in your bed.g file.

    I don't understand this solution?
    How would I make use of bed.g to make it home to Z-max first?
    I thought I didn't need bed.g at all when doing a mesh (G29) and then just a single probe G30 before each print.

    I am using bed.g to do 3-point autolevel probe on the G32 machine.

    I have read everything I could find on wiki, so please don't just linkdrop me.



  • @DjDemonD:

    Dintid - So the way I do it is home to z max using the microswitch. I know the approximate height minus a small amount for safety. I send G92 Z180. Then move to Z10 and send G30 using whatever z probe I have mounted. Now the firmware knows the exact z position. Then I use G29 to grid level. Job done.

    So I apologise if I did not realise G32 goes to z max before probing and this is a problem for your setup as I rarely use it, and I apologise if I wrongly stated that I did. Would homing Z using G28 Z or G28 (all) before G32 work, presuming basic Z homing to a max switch was configured correctly? However:

    1. my statement above was meant as encouragement rather than a solution as it seemed David had provided the answer. If he had not then I appreciate it might have been annoying.

    2. I am not a paid support tech for Duet3d, although I am friendly with them, use their products and spend a considerable amount of my free time helping people on this forum. So I don't have to help you solve your problem and don't particularly appreciate being criticised for not getting to the core of it straightaway.

    Seems you got confused now.
    The machine in question is a single z-axes machine using G30 to probe. It has disabled max endstop. This is what I want solved as my other machine, where I use G32 it requires a z-max to be in place - this one works perfectly.

    Your setup:
    You start by manually defining a position for Z, then move to Z10, and then home.
    This is what I want, except I want it to do so automatically by homing first to Z-max (then it knows where it is at) then go back to Z10 and home using G30.
    But using G30 the endstop is completely disabled. Can't even use virtual axes.

    On my other machine, using 3x z-axes I use bed.g to do a 3point autoevel probe and it requires a home to max as a part of G32. It even warns me that I must have a Z max endstop in place.

    The machine in question is just a basic Ultimaker2 mechanical machine type, where I just use G29 to generate a mesh and a single probe using G30.

    About your #2.. seriously, there are just so many people stating all the time that it's sooo easy to do this or that, but they never ever come up with actual solutions. In other words, they just pop in to gloat/brag about their own working machines, but never comes up with any form of help.. when you poke them about it, they always get rather upset and telling me they do it for free…
    I dupped you as one of those for obvious reasons, but I did not critize you but rather question your reasons for posting the way you did.
    Try looking at it from this side of the screen, no?



  • Here is the machine where it's working.
    Notice how it homes to Z-max first and THEN go back.. I want this to be possible when using G30 as well.
    Edit: I'm using axis U as Z is used for the probe, but this approach does not work on the machine with just 1 z-motor with G30
    https://youtu.be/2u84rC4EA7Y



  • My corexy works exactly as you want your machine to. I'll make a video later of it doing it, and share the config I use. I am not confused and this forum is about the most helpful, polite and genuine one you'll come across. I can see you have an annoying problem but getting grumpy with the people who can help you solve it isn't going to help.



  • Okay so this is my homez.g

    ;z max homing to switch

    G91
    G1 Z240 F1000 S1
    G92 Z162
    G1 Z-4 F600
    G1 Z10 S1
    G90
    G92 Z162

    This is my probe config in config.g

    M558 P5 I1 R1.0 H10 F700 T1500 X0 Y0 Z0 ;digital piezo sensor, output falls on contact, probing speed, not used to home axes
    G31 X0 Y0 Z-0.1 P50 ;sensor is nozzle and debounce value.

    As you can see I do not define the probe as an endstop in M558.

    My bed.g only contains the mesh definition

    M557 X10:260 Y20:180 S20 ;define mesh
    M500 ;save

    My start gcode contains amongst other things:
    G28
    M98 P0:/macros/SETZ ; run z fine tuning

    That macro looks like this:

    G1 X130 Y97.5 Z15 F1000 ;move to be centre slowly.
    G30 ; probe for z=0
    G1 Z10 F1000 ; raise nozzle
    G30 S-1 ;check z gap
    G1 Z10 F1000 ; raise nozzle

    And here's how it works:

    https://youtu.be/y3kCXAp0sZo

    I tried sending G32 but since my bed.g does not contain discreet points to probe, it does nothing, but I regularly run a G29, save the mesh and then use G28, then G30 as above and print and get very nice first layers each time. I have no extra axes defined, just X, Y and Z and E0.

    What am I missing?


Locked
 

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