Try to prevent some crash



  • Hello,

    There are any way to set up something on the firmware for to prevent, inhibit, the motion of a certain axis if, before, this axis was not homed?

    Any suggestion is really appreciated.
    Dommy



  • To prevent crashes before the axes have been homes, you can fit additional limit switches and wire them up to a spare estop. Then use M581 to trigger an emergency stop if the switch changes state. I have this setup on all my axes maxima with the switches (normally closed) wired in series and connected to a single estop.


  • administrators

    On a delta, I don't allow ordinary moves before the printer has been homed. I've considered adding this restriction to other printer geometries, but I am not sure whether all users would like it. On a Cartesian printer, users may wish to jog the axes before homing. What do other users think?



  • @deckingman:

    To prevent crashes before the axes have been homes, you can fit additional limit switches and wire them up to a spare estop. Then use M581 to trigger an emergency stop if the switch changes state. I have this setup on all my axes maxima with the switches (normally closed) wired in series and connected to a single estop.

    First, thank you, then let's see if I understood well.
    I will put a limit switch for each axis at the maximum limit, I connect them all in series so that as soon as only one switch will be activated the circuit will be opened.
    Then I will use E0 or E1 as input and use the M581 command for to set something like an emergency stop.
    OK could you explain better or make an example for the M581 command?
    Where do I place this statement, anywhere in the config file?
    Dommy



  • @dc42:

    On a delta, I don't allow ordinary moves before the printer has been homed. I've considered adding this restriction to other printer geometries, but I am not sure whether all users would like it. On a Cartesian printer, users may wish to jog the axes before homing. What do other users think?

    Hi David,
    For me it would certainly be a great thing, it would save many crashes for lack of attention but also for other strange reasons.
    Perhaps it might be convenient to have a command to use with flag yes or no, for example: M999 Y activates function, M999 N function is inactive.
    Please do that πŸ™‚
    Dommy



  • Hi Dommy.

    Yes that's exactly right.

    You put M581 in config.g

    Assuming you use E0 then the M581 will look like this.
    M581 E0 S1 T0 C0.

    E0 means use endstop 0.
    S1 means look for a rising edge (the switches will hold it low)
    T0 means do an emergency stop (like M112) - you can set other trigger actions by using macros
    C0 means at any time (C1 means only when printing from an SD card).

    HTH
    Ian



  • @dc42:

    On a delta, I don't allow ordinary moves before the printer has been homed. I've considered adding this restriction to other printer geometries, but I am not sure whether all users would like it. On a Cartesian printer, users may wish to jog the axes before homing. What do other users think?

    Hi David,

    I agree that it's generally best to get into the habit of always homing at start up. I fitted additional switches just to prevent (or at least limit) damage if I do something stupid like send and axis beyond it's maximum before I've homed the printer. - Also useful during commissioning.

    Ian



  • @deckingman:

    Hi Dommy.

    Yes that's exactly right.

    You put M581 in config.g

    Assuming you use E0 then the M581 will look like this.
    M581 E0 S1 T0 C0.

    E0 means use endstop 0.
    S1 means look for a rising edge (the switches will hold it low)
    T0 means do an emergency stop (like M112) - you can set other trigger actions by using macros
    C0 means at any time (C1 means only when printing from an SD card).

    HTH
    Ian

    Ok,
    thank you, I will try.
    Anyway I think that the best will be to have a firmware function dedicated to prevent axis movement without axis homed.
    Dommy



  • @gate546:

    ….........................Anyway I think that the best will be to have a firmware function dedicated to prevent axis movement without axis homed.
    Dommy

    I think on balance that you are right and that axis movement should be inhibited until the printer has been homed. It would need to be possible to override it for commissioning, just as cold extrudes can be allowed.

    One thing's for sure. If David implements this, 50% of users will love it and 50% will hate it. πŸ™‚



  • @deckingman:

    @gate546:

    ….........................Anyway I think that the best will be to have a firmware function dedicated to prevent axis movement without axis homed.
    Dommy

    I think on balance that you are right and that axis movement should be inhibited until the printer has been homed. It would need to be possible to override it for commissioning, just as cold extrudes can be allowed.

    One thing's for sure. If David implements this, 50% of users will love it and 50% will hate it. πŸ™‚

    You are right.
    But I believe that there is a way for to please everyone, it is sufficient that this function will be configurable.
    A configurable function.
    If you like the function you can enable it, if you do not like, disable it.
    All be happy πŸ˜‰
    Dommy


  • administrators

    I'm tempted to change the behaviour to allow only special moves (i.e. G1 moves with a nonzero S parameter) to execute before the printer has been homed, as we already do on delta printers. Users whose X and Y homing files raise Z a little before homing and drop it afterwards would have to add the S2 parameter to those Z movement commands.



  • @dc42:

    I'm tempted to change the behaviour to allow only special moves (i.e. G1 moves with a nonzero S parameter) to execute before the printer has been homed, as we already do on delta printers. Users whose X and Y homing files raise Z a little before homing and drop it afterwards would have to add the S2 parameter to those Z movement commands.

    Hi
    This might be a solution, maybe you could do an experimental firmware to check for any contraindications.
    But it seems a good idea.



  • @dc42:

    I'm tempted to change the behaviour to allow only special moves (i.e. G1 moves with a nonzero S parameter) to execute before the printer has been homed, as we already do on delta printers. Users whose X and Y homing files raise Z a little before homing and drop it afterwards would have to add the S2 parameter to those Z movement commands.

    That sounds like a reasonable plan to me. As long as it can be overridden for commissioning purposes, similar to allowing cold extrudes.

    TBH, it would possibly negate the need to then have G28 in the slicer gcode. DJDemon recently started a thread about not homing when the printer is already homes - this would satisfy his criteria as a well.


  • administrators

    Foe commissioning purposes, you could either send G1 S2 moves, or you could use G92 to tell the printer where the head is which counts as homing it.



  • @dc42:

    On a delta, I don't allow ordinary moves before the printer has been homed. I've considered adding this restriction to other printer geometries, but I am not sure whether all users would like it. On a Cartesian printer, users may wish to jog the axes before homing. What do other users think?

    I would hate it if I could not jog axis when not homed…. think of an estop event where the IR probe failed to trigger (happened to me yesterday) I have an optical endstop located just above which triggers an estop event but I then need to jog the bed back down before I can home the machine. There are other times when I jog around when not homed as well and love the estop feature that has saved my butt a couple of times πŸ™‚



  • On reflection, I do move the bed down quite often before I home any axes. I use the nozzle as a homing switch so I need to be sure there is no crap between it and the bed surface before I home.



  • There is one thing I do need to look into…. adding more estops πŸ™‚ quite a few sleepless nights have led to the random selecting of the stl file instead of the gcode file..... this for whatever reason causes my Z to crash into the maxima 😞 I think the web control needs a file type filter or I need more estops one of the two lol



  • @Whitewolf:

    @dc42:

    On a delta, I don't allow ordinary moves before the printer has been homed. I've considered adding this restriction to other printer geometries, but I am not sure whether all users would like it. On a Cartesian printer, users may wish to jog the axes before homing. What do other users think?

    I would hate it if I could not jog axis when not homed…. think of an estop event where the IR probe failed to trigger (happened to me yesterday) I have an optical endstop located just above which triggers an estop event but I then need to jog the bed back down before I can home the machine. There are other times when I jog around when not homed as well and love the estop feature that has saved my butt a couple of times πŸ™‚

    If you can disable it in firmware yes. I have to use this all the time with my printer cause I'm constantly making changes to parts and have to recalibrate axis dimensions.


 

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