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

    M915 stall detection for emergency stop? And emergency stop.

    Scheduled Pinned Locked Moved Solved
    General Discussion
    6
    17
    266
    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.
    • gratgrat27undefined
      gratgrat27
      last edited by

      Re: How to use M915 T parameter

      Hi,

      My configuration is a duet2 board with rep-rap 3.3 on a workbeeZ1+.
      I'm trying for a while to have an emergency stop that is not waiting for buffered moves to finish, AND offers a resurect file generation (or at least stop index of SD file interupted)

      Could M915 does that ? After what I red I understand that it won't be efficient at high speeds, and not necessary reliable, not sure if the stop comes before or after the buffered moves.

      More in details, because I sometime run 24h roughings and more for finishings (you can see my creations at BoisEtReliefs on etsy if you like!), I had spindle stop, coal used, wire cutted, etc leading the workbee moving 3mm deep with ½ inch tool not turning... and that for 30 minutes the first time, the nightmare.

      I now use a real time current check arduino module with trigger T1 to pause but the buffered moves take sometimes long time before the stop especially for the 1m straight cut of the beginning of some creations, and I recently broke a tool.
      So if M915 is instantaneous, and offers a saving point it would be gold for me!
      By the way, is it possible to use trigger T0 (instantaneous M112 stop) and create a resurect file, or any restarting point save?

      Otherwise I will go for a dedicated relay on power supply associated with the arduino module.

      Thanks a lot.
      Alex

      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @gratgrat27
        last edited by

        @gratgrat27 add segmentation
        M669 S1 T1 or similar. That will break long moves up, allowing you to pause etc a lot quicker

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        gratgrat27undefined 1 Reply Last reply Reply Quote 0
        • gratgrat27undefined
          gratgrat27 @jay_s_uk
          last edited by

          Oh that's a really good tip thank a lot Jay

          1 Reply Last reply Reply Quote 1
          • gratgrat27undefined
            gratgrat27
            last edited by

            Well I tried adding M669 S0.1 in the user setting file but nothing changed.

            T parameter sets the minimum segment length and I want to reduce it so I didn't use it.

            gloomyandyundefined 1 Reply Last reply Reply Quote 0
            • gloomyandyundefined
              gloomyandy @gratgrat27
              last edited by

              @gratgrat27 Did you try the settings that Jay suggested? Unfortunately I think you need a later version of RRF to have M669 with no parameters to report the current segmentation settings, which would be useful to check what is actually being set.

              gratgrat27undefined 1 Reply Last reply Reply Quote 0
              • Phaedruxundefined Phaedrux moved this topic from Beta Firmware
              • gratgrat27undefined
                gratgrat27 @gloomyandy
                last edited by

                M669 did gave me the actual settings.

                The segmentation matrix has not been modified by M669 S0.1, nether by M669 S0.1 T1
                In case the value was not acceptable, I also tried M669 S2 T2 that also had no effect.

                Any idea of a better place for the command?
                Should I update to RRF 3.5?

                gloomyandyundefined 1 Reply Last reply Reply Quote 0
                • gloomyandyundefined
                  gloomyandy @gratgrat27
                  last edited by

                  @gratgrat27 Please post the output from running M669 without parameters after you have set M669 S1 T1.

                  1 Reply Last reply Reply Quote 0
                  • gratgrat27undefined
                    gratgrat27
                    last edited by

                    I had that matrix;
                    d012d938-ff67-4163-9c41-c441c8bddd05-image.png

                    jay_s_ukundefined gloomyandyundefined 2 Replies Last reply Reply Quote 0
                    • jay_s_ukundefined
                      jay_s_uk @gratgrat27
                      last edited by

                      @gratgrat27 we aren't changing the matrix so those numbers in the output have nothing to do with it
                      Segmentation was added in 3.3 but it looks like you can't check it until 3.4

                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                      1 Reply Last reply Reply Quote 0
                      • gloomyandyundefined
                        gloomyandy @gratgrat27
                        last edited by

                        @gratgrat27 Yep as Jay said, this tells you nothing. Later versions of RRF will include output of the form:

                        "2 segments/sec, min. segment length 1.5 mm"
                        

                        Which will show you what (if anything) has been configured.

                        gratgrat27undefined 1 Reply Last reply Reply Quote 0
                        • gratgrat27undefined
                          gratgrat27
                          last edited by

                          @gloomyandy
                          ok i get that. I will update my firmware soon.

                          And how does that cut the segments?
                          In your example; "2 segments/sec, min. segment length 1.5 mm" are shorter segment than 1.5 mm kept or is it ignoring shorter moves?

                          droftartsundefined 1 Reply Last reply Reply Quote 0
                          • infiniteloopundefined infiniteloop referenced this topic
                          • droftartsundefined
                            droftarts administrators @gratgrat27
                            last edited by

                            @gratgrat27 It depends to speed. Slow moves are more likely to be cut into segments by time, faster moves will be cut up by segment length. To calculate the number of segments in a move, the calculation is:
                            number_of_segments = min(moveLength/T_parameter, moveDuration/S_parameter)
                            This is rounded to the nearest integer and with a minimum of 1.

                            Ian

                            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                            1 Reply Last reply Reply Quote 0
                            • gratgrat27undefined
                              gratgrat27 @gloomyandy
                              last edited by gratgrat27

                              @gloomyandy I now updated my firmware, M122 confirms with :
                              RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.4 (2024-11-24 10:43:42) running on Duet Ethernet 1.02 or later

                              M669 answer is unchanged though;
                              Kinematics is Cartesian, no segmentation, modified matrix:
                              1.00 0 0 0
                              0 1.00 0 1.00
                              0 0 1.00 0

                              Thanks you again

                              1 Reply Last reply Reply Quote 0
                              • Phaedruxundefined
                                Phaedrux Moderator
                                last edited by

                                Have you set M669 S1 T1 in config.g first?

                                Z-Bot CoreXY Build | Thingiverse Profile

                                1 Reply Last reply Reply Quote 0
                                • gratgrat27undefined
                                  gratgrat27
                                  last edited by

                                  I added it now, and I still get the former type of response for M669.

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

                                    @gratgrat27 it's working for me (read the commands from bottom to top) although I am running a 3.6.0-rc.1+ build:

                                    24/03/2025, 15:14:28 	M669
                                    Kinematics is CoreXY, 1 segments/sec, min. segment length 1.00mm, matrix:
                                    1.00 1.00 0 0
                                    1.00 -1.00 0 0
                                    0 0 1.00 0
                                    0 0 0 1.00
                                    
                                    24/03/2025, 15:14:21 	M669 S1 T1
                                    
                                    24/03/2025, 15:14:11 	m669
                                    Kinematics is CoreXY, no segmentation, matrix:
                                    1.00 1.00 0 0
                                    1.00 -1.00 0 0
                                    0 0 1.00 0
                                    0 0 0 1.00
                                    

                                    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

                                    gratgrat27undefined 1 Reply Last reply Reply Quote 0
                                    • gratgrat27undefined
                                      gratgrat27 @dc42
                                      last edited by gratgrat27

                                      @dc42
                                      Ok it works now not sure what I did wrong before, many thanks anyway!

                                      By the way I had the surprise to see that
                                      M669 S10
                                      also modify segment length. It returns;
                                      "Kinematics is Cartesian, 10 segments/sec, min. segment length 0.20mm, modified matrix:"
                                      without any T parameter.

                                      All good for me thank you for your support.
                                      Alexis

                                      PS: didn't find where to mark this conversation solved.

                                      1 Reply Last reply Reply Quote 0
                                      • Phaedruxundefined Phaedrux marked this topic as a question
                                      • Phaedruxundefined Phaedrux has marked this topic as solved
                                      • First post
                                        Last post
                                      Unless otherwise noted, all forum content is licensed under CC-BY-SA