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

    Try to prevent some crash

    Scheduled Pinned Locked Moved
    General Discussion
    5
    18
    2.0k
    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.
    • gate546undefined
      gate546
      last edited by

      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

      1 Reply Last reply Reply Quote 0
      • deckingmanundefined
        deckingman
        last edited by

        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.

        Ian
        https://somei3deas.wordpress.com/
        https://www.youtube.com/@deckingman

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

          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?

          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
          • gate546undefined
            gate546
            last edited by

            @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

            1 Reply Last reply Reply Quote 0
            • gate546undefined
              gate546
              last edited by

              @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

              1 Reply Last reply Reply Quote 0
              • deckingmanundefined
                deckingman
                last edited by

                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

                Ian
                https://somei3deas.wordpress.com/
                https://www.youtube.com/@deckingman

                1 Reply Last reply Reply Quote 0
                • deckingmanundefined
                  deckingman
                  last edited by

                  @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

                  Ian
                  https://somei3deas.wordpress.com/
                  https://www.youtube.com/@deckingman

                  1 Reply Last reply Reply Quote 0
                  • gate546undefined
                    gate546
                    last edited by

                    @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

                    1 Reply Last reply Reply Quote 0
                    • deckingmanundefined
                      deckingman
                      last edited by

                      @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. πŸ™‚

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      1 Reply Last reply Reply Quote 0
                      • gate546undefined
                        gate546
                        last edited by

                        @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

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

                          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.

                          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
                          • gate546undefined
                            gate546
                            last edited by

                            @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.

                            1 Reply Last reply Reply Quote 0
                            • deckingmanundefined
                              deckingman
                              last edited by

                              @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.

                              Ian
                              https://somei3deas.wordpress.com/
                              https://www.youtube.com/@deckingman

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

                                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.

                                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
                                • Whitewolfundefined
                                  Whitewolf
                                  last edited by

                                  @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 πŸ™‚

                                  Exploring the universe wherever the tech blows

                                  1 Reply Last reply Reply Quote 0
                                  • deckingmanundefined
                                    deckingman
                                    last edited by

                                    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.

                                    Ian
                                    https://somei3deas.wordpress.com/
                                    https://www.youtube.com/@deckingman

                                    1 Reply Last reply Reply Quote 0
                                    • Whitewolfundefined
                                      Whitewolf
                                      last edited by

                                      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

                                      Exploring the universe wherever the tech blows

                                      1 Reply Last reply Reply Quote 0
                                      • Styler93gsxundefined
                                        Styler93gsx
                                        last edited by

                                        @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.

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