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

    Stall Guard reporting

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    20
    2.3k
    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.
    • core3d.techundefined
      core3d.tech @dc42
      last edited by

      @dc42 Thx, I wouldn't be using it for any homing but in case it literally crashes into something it would like to detect it. Unfortunately it will be moving very slow when it does crash so stall gaurd may not be the best option here.

      I have the E endstop connectors still available. Is there any way I can assign "it" to an action (in a macro). Something like
      g91
      while 4th Endstop not triggered g0 Z-50 (i.e go down 50 unless you hit 4th endstop).

      I apologize if I'm asking stuff outside the realm of ordinary printing. Trying to add a feature (that I would like to show at MRRF2019). Still missing some pieces on the software front (that I either haven't found yet or never will).

      Thx

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

        @core3d-tech said in Stall Guard reporting:

        I have the E endstop connectors still available. Is there any way I can assign "it" to an action (in a macro). Something like
        g91
        while 4th Endstop not triggered g0 Z-50 (i.e go down 50 unless you hit 4th endstop).

        Currently the only way I can think of do to that would be to use M558 to temporarily use that endstop switch as the Z probe, and use a G30 command to lower Z until the switch is triggered.

        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

        core3d.techundefined 2 Replies Last reply Reply Quote 0
        • core3d.techundefined
          core3d.tech @dc42
          last edited by

          @dc42 If I can assign a e endstop to Z (temporarily) that should actually do it. Running a macro so I can switch to and back. Thanks!!

          1 Reply Last reply Reply Quote 0
          • core3d.techundefined
            core3d.tech @dc42
            last edited by core3d.tech

            @dc42 tested that one out but it won't really work as I can't use the G30 for the action I'm looking for (also when I tested and triggered stop, Z rushed up and almost took out the top of my printer, how far does it shoot back?).

            What I'm looking for is to use an endstop connected to E1 that will stop all motors when triggered and continues on with macro.

            so the sequence would be

            G91

            ;while (Endstop E1 not triggered or move ended)
            G1 Z-500

            ;continue with Macro

            any ideas? TIA

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

              You could use M574 to change the Z endstop type to "Z probe", then use a G1 S1 Z-500 command. Then use M574 to change it back again.

              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

              core3d.techundefined 1 Reply Last reply Reply Quote 0
              • core3d.techundefined
                core3d.tech @dc42
                last edited by

                Not sure I fully understand. Currently I have 3 end stops (X,Y,Z) at the top of each tower.

                I have a 4th endstop that needs to test if something else reaches the end.

                How do I assign the 4th end stop (currently connected to E1 endstop, I'm open to other connections) as a new Z-probe?

                This does make me think about another (less desirable approach) which is

                Let probe find bed (has it's own issue, that will be resolved once I can store parameters)
                move to Z0
                From there I know how far the bottom of the printer is move it all down.

                G28
                G30
                G1 Z0
                ;"grab bed with magic move"
                macro_grabBed
                ;Home again slowly
                G28
                G91
                G1 S2 Z-1210
                ; release bed/clamp onto frame

                The only problem with this approach (which is why I need some of the parameter storage) is:
                The printer when starting up, doesn't know the current position of the bed so when running G30 it doesn't know how far to go down to start probing.

                What I really need is for an endstop trigger (other than X/Y/Z) to stop all motors but continue with macro. Worst case I could code it into the firmware (using spare g-code)

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

                  I have a 4th endstop that needs to test if something else reaches the end.

                  Please can you explain what the "something else" is. What type of movement command will you use that will result in the 4th endstop being triggered, and what do you want to happen when it is triggered?

                  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

                  core3d.techundefined 1 Reply Last reply Reply Quote 0
                  • core3d.techundefined
                    core3d.tech @dc42
                    last edited by core3d.tech

                    @dc42 I was trying to keep it a reveal at MRRF2019 but I just posted this video of what I'm building. My Delta (in progress) has a build volume of 330DIAx1250mm. Most of the time I won't be printing that high so I build a mechanism that allows the bed to move up and down. I use the belts that drive the effector to move the bed up and down (via a macro that does some stuff to grab on to the belts and release the frame and vice versa.

                    Right now the macro are pretty static. "Move bed Up 500" "Move Bed Down 500".

                    When it moves down it shouldn't be able to go lower than 0 but at the moment I have no means of stopping this from happening. A 4th end stop could help here.

                    youtube of moving bed

                    This is also why I've been asking about the parameters and stored values in other posts as I currently have no way of persisting the current position of the bed. The next time the printer turns on it doesn't know if the bed is at 0, 500 or 1000 (or maybe some dynamic height in the future).

                    The current macro for moving the bed down is below. If I were to run this macro while the bed is down without some stop mechanism you can imagine what happens.

                    ;Home XYZ first
                    G28
                    ; switch to relative
                    G91
                    ;Move down 10 on Z (little more for wiggle room)
                    G1 Z-10
                    ;Grab on to belt
                    G1 U85 F2400
                    ;Move Z up 5mm to release frame
                    G1 Z5
                    ;wait to make sure it released
                    G4 P200
                    ;lower current motors in case it rams into something
                    m906 X1000 Y1000 Z1000
                    ;Move bed down 500 (slow as it has to lift a lot)
                    G1 Z-500 F500
                    ; release belt
                    G1 U-85 F2400
                    ;Move Z down 8mm to release belt
                    G1 Z-8
                    ;refine printer dimensions; not fully worked out yet as I have no knowledge of last position of bed.
                    M665 H1210
                    ;turn up current motors again
                    m906 X2100 Y2100 Z2100
                    ;home again
                    G28
                    ;turn off Bed Motor
                    M18 U
                    ;recalibrate bed
                    ;G30
                    ;back to absolute
                    G90
                    ...

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

                      It sounds to me that the bed is an additional axis. So create a 4th axis called U using M584. It will use the E0 endstop connector. You can use E1 for your filament monitor.

                      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

                      core3d.techundefined 1 Reply Last reply Reply Quote 0
                      • core3d.techundefined
                        core3d.tech @dc42
                        last edited by core3d.tech

                        I'm already using the 4th Axis U. U (P4) runs the motor that switches the XYZ belts to operate the bed. Watching the video may clarify that a bit better https://youtu.be/L9pTHMi5SP8.

                        The bed is a "virtual" 5th axis. it is moved by XY and Z (P0, P1, P2) when the 4th endstop is triggered X Y and Z need to stop.

                        The other issue I run into is that trying to use the E0 or E1 endstop can not be managed by M574 (only 1.16 and below). these seem to be only usable as Z-probes now (using M558)

                        It would be nice to be able to assign a gcode file to specific endstop (TriggeredE1.g) in which I can do what I need. Kinda like homeu.g is there for homing axis U.

                        dc42undefined 1 Reply Last reply Reply Quote 1
                        • dc42undefined
                          dc42 administrators @core3d.tech
                          last edited by

                          @core3d-tech said in Stall Guard reporting:

                          The other issue I run into is that trying to use the E0 or E1 endstop can not be managed by M574 (only 1.16 and below). these seem to be only usable as Z-probes now (using M558)

                          The E0 and E1 endstop inputs will be used for the first 2 additional axes you create using M584, if you have the endstop type for those axes set to S1 or S2.

                          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

                          core3d.techundefined 1 Reply Last reply Reply Quote 0
                          • core3d.techundefined
                            core3d.tech @dc42
                            last edited by

                            @dc42 That is good to know. Since the motion I'm trying to capture is driven by X Y and Z, I'm still not sure if that can help me. When the end stop hits X Y and Z need to stop simultaneous.

                            As an enhancement request would assigning an end stop to a g-code be possible? triggerU.g TriggerV.g, .....

                            dc42undefined 1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators @core3d.tech
                              last edited by

                              @core3d-tech said in Stall Guard reporting:

                              @dc42 That is good to know. Since the motion I'm trying to capture is driven by X Y and Z, I'm still not sure if that can help me. When the end stop hits X Y and Z need to stop simultaneous.

                              As an enhancement request would assigning an end stop to a g-code be possible? triggerU.g TriggerV.g, .....

                              You can already set up triggers on any endstops. The fact that you are using an endstop for homing doesn't stop you using it for a trigger as well.

                              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

                              core3d.techundefined 1 Reply Last reply Reply Quote 0
                              • core3d.techundefined
                                core3d.tech @dc42
                                last edited by core3d.tech

                                @dc42 that's excellent. Where do I look for more info on that? nm, found it M581. That should do the trick for me.

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