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

    Cast Toolplate Bed Progress ?

    Scheduled Pinned Locked Moved
    General Discussion
    7
    38
    1.7k
    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.
    • deckingmanundefined
      deckingman @Dizzwold
      last edited by

      @Dizzwold said in Cast Toolplate Bed Progress ?:

      Is it possible so when the switch is reset, it will reset the Emergency Stop in DWC?
      I've tried using M999 in a variety of ways, in config.g as trigger 0 and in sys/trigger2.g and just can't figure this out.
      Config.g

      I'm not sure that you can use M999 to reset after an emergency stop. The docs say it'll restart the firmware after a software reset which isn't the same thing. The usual way to reset an emergency stop is to power cycle the board. I have mine wired such that it kills all power to the boards so resetting the emergency stop button effectively does just that. You could maybe do M98 P "config.g" which will run config.g again - that might work as a reset mechanism.

      The way to do it would be to have two triggers, one that works on an active to inactive edge, and the other that works on inactive to active. So you can use M581 P2 T0 S0 R0 which will do an emergency stop as if M112 was run - you don't need create a trigger0 macro to do an emergency stop. Then use M581 P2 T2 S1 R0 to run the macro "trigger2" which would contain M98 P "config.g". You might need to swap S0 and S1 around depending on how the switch is wired.

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

      Dizzwoldundefined 1 Reply Last reply Reply Quote 0
      • Dizzwoldundefined
        Dizzwold @deckingman
        last edited by

        @deckingman

        Hi Ian,

        @deckingman said in Cast Toolplate Bed Progress ?:

        You could maybe do M98 P "config.g"

        Now there's an idea, thank you for that.

        Dizzwoldundefined 1 Reply Last reply Reply Quote 0
        • Dizzwoldundefined
          Dizzwold @Dizzwold
          last edited by

          @deckingman

          Hi Ian,

          A quick question. Should the M582 line be within the trigger.gor within the main config.g?

          Dizzwold.

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

            @Dizzwold said in Cast Toolplate Bed Progress ?:

            @deckingman

            Hi Ian,

            A quick question. Should the M582 line be within the trigger.gor within the main config.g?

            Dizzwold.

            Not sure I understand. Triggers are activated when the input defined in M581 changes state. So you don't normally have to do anything as the relevant macro will run "automatically" when the input state changes. AFAIK, M582 is just a way of checking the state of the inputs so I've never used it.

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

            Dizzwoldundefined 1 Reply Last reply Reply Quote 0
            • Dizzwoldundefined
              Dizzwold @deckingman
              last edited by

              @deckingman

              Hi Ian,

              Sadly the Trigger 2, M98 P"config.g" has no influance on restarting DWC. It still needs manually resetting.
              Config.g

              ; Custom settings are not defined
               ; Emergency Stop
              M950 J2 C"io3.in"
              M581 P2 T0 S1 R0
              ;M582 T2 S0
              
              M581 P2 T2 S0 R0
              

              Trigger2.g

              ;Trigger2.g Reset Emergency Stop Button
              
              M98 P"config.g"
              

              I've tried many variants with M112, M999, M400 and tried changing the S0, S1, S-1 values, although I have it connected on a NC circuit so S1 on a non-inverted pin triggers T0 (M112 Emergency Stop), then releasing the
              Emergency Stop Button S0 Triggers the same non-inverted pinT2, M98 P"config.g"
              Have got something wrong somewhere?

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

                @Dizzwold Dunno. I guess we need to first check that the correct macro is being triggered with the switch in each position. Try doing M581 P2 T3 S1 R0 and keep the existing M581 P2 T2 S0 R0. So we have two triggers (2 and 3) and one should run on a rising edge the other on a falling edge. Then make trigger2.g with just a single command M118 S" This is trigger 2", and trigger3.g with just a single command M118 S"This is trigger 3".

                Then exercise your switch and see what happens. Hopefully you'll get a message "This is trigger 2" when the switch changes from one state to another and "This is trigger 3" when the state changes back. Once we are sure that part is working, then we can think about what commands to put in each trigger macro.

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

                Dizzwoldundefined 1 Reply Last reply Reply Quote 0
                • Dizzwoldundefined
                  Dizzwold @deckingman
                  last edited by Dizzwold

                  @deckingman said in Cast Toolplate Bed Progress ?:

                  This is trigger 2

                  Hi Ian,

                  Hmm... I tried what you suggested above, and i worked as expected;
                  Trigger 2 when the E Stop Button is pressed S1
                  Trigger 3 when released S0

                  So I've then replaced Trigger 2 with
                  M112
                  M999
                  and Trigger 3 with
                  M98 P"config.g"

                  Same problem DWC on my computer needs a physical click on the RESET button displayed on the screen (paneldue states HALTED), so it would seem that the M98 P"config.g" is the issue.
                  Screen Shot 2024-01-08 at 18.08.19.png
                  Config.g;

                  ; Custom settings are not defined
                   ; Emergency Stop
                  M950 J2 C"io3.in"
                  M581 P2 T2 S1 R0
                  
                  ;M950 J2 C"io3.in"
                  M581 P2 T3 S0 R0
                  
                   ; Z Axis Limit Switch
                  ;M950 J3 C"io2.in"
                  ;M581 P3 T3 S0 R0
                  

                  Trigger2.g;

                  ;Trigger2.g Reset Emergency Stop Button
                  M112
                  M999
                  
                  ;M118 S"This is Trigger 2"
                  

                  Trigger3.g

                  ;Trigger3.g Z Axis Limt Switch
                  
                  ;M118 S"This is Trigger 3"
                  M98 P"config.g"
                  

                  Maybe it's not possible?

                  Dizzwold

                  deckingmanundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                  • deckingmanundefined
                    deckingman @Dizzwold
                    last edited by

                    @Dizzwold said in Cast Toolplate Bed Progress ?:

                    Maybe it's not possible?

                    Maybe. I'd have thought there ought to be a way to recover from an emergency stop but the docs just talk about power cycling the board. I'm surprised running config g doesn't work because that is effectively all that happens when power is restored.......but there is possibly a work around.

                    The obvious one is do as I do and use the emergency stop button to physically interrupt the 24V power to the board(s).

                    But failing that, maybe we can do something else. So rather than an emergency stop, think about what you actually want to stop. I guess that's motors and heaters. Heaters are easy - just set the temperatures to zero in one macro and restore them in the other. So what about using M18 instead of M112 to disable motors? It might not be immediate though so might have to wait for any moves to finish which I guess is not what you want an emergency stop to do? M0 is another option but again, I don't think it will work until the current move is complete.

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

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

                      @Dizzwold said in Cast Toolplate Bed Progress ?:

                      Maybe it's not possible?

                      A question for @chrishamm I think.

                      Z-Bot CoreXY Build | Thingiverse Profile

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

                        @Phaedrux said in Cast Toolplate Bed Progress ?:

                        @Dizzwold said in Cast Toolplate Bed Progress ?:

                        Maybe it's not possible?

                        A question for @chrishamm I think.

                        ,..,....or @dc42. Essentially we're trying to find a way to reset a printer after M112 has been sent, without cycling power. The OP is using trigger macros so it can be a series of commands rather than a single command. Apparently running config g via M98 doesn't do the job and I'd have thought it would.

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

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

                          @deckingman sending M999 works. The emergency stop button sends M112 followed a little later by M999.

                          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

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

                            @dc42 said in Cast Toolplate Bed Progress ?:

                            @deckingman sending M999 works. The emergency stop button sends M112 followed a little later by M999.

                            Maybe I've misunderstood the OP's problem. Looking back through his posts he is saying " DWC on my computer needs a physical click on the RESET button displayed on the screen". I think it's that "DWC thing" that he's trying to overcome. He says he's tried all combinations of M999 etc in his trigger macros.

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

                            Dizzwoldundefined 1 Reply Last reply Reply Quote 0
                            • Dizzwoldundefined
                              Dizzwold @deckingman
                              last edited by

                              @deckingman

                              That's correct, I'm talking on the computer DWC interface.
                              If I clicking a button on screen with my cursor on my computer, I'm essentially sending a single line of code once to the Duet, so why can't a physical button do this?
                              I appreciate that DWC is an interface used both by the Paneldue and as it would suggest on mobile or computers (Duet 'Web' Control).

                              I had looked at other options like for a filament run-out sensor, maybe this or like you've suggested with disabling/re-enabling the steppers are the only options.

                              deckingmanundefined fcwiltundefined 3 Replies Last reply Reply Quote 0
                              • deckingmanundefined
                                deckingman @Dizzwold
                                last edited by

                                @Dizzwold Definitely one for @chrishamm then.

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

                                1 Reply Last reply Reply Quote 0
                                • fcwiltundefined
                                  fcwilt @Dizzwold
                                  last edited by

                                  @Dizzwold said in Cast Toolplate Bed Progress ?:

                                  I'm essentially sending a single line of code once to the Duet, so why can't a physical button do this?

                                  What code are you trying to send?

                                  Frederick

                                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

                                    @Dizzwold Just a thought but what happens if you refresh your browser after the macro containing M999 has run? Does DWC still want you to press a reset button?

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

                                    Dizzwoldundefined 1 Reply Last reply Reply Quote 0
                                    • Dizzwoldundefined
                                      Dizzwold @deckingman
                                      last edited by

                                      @deckingman @fcwilt

                                      Hi Guys,

                                      Again thank you for your support and input.

                                      @fcwilt
                                      Sorry you misunderstand me.
                                      I'm not trying to send any line of code. I'm just stating what clicking the on screen "Reset Machine" Button possibly does (on my computer screen). I'm no programmer but I believe DWC is Javascript and it would probably be something like onclick to enable a function for M999.

                                      @deckingman
                                      I've tried your suggestion with the following, but refreshing the browser makes no difference. If anything it makes it longer to reset the machine as your also reconnecting before resetting.
                                      Also during the time after pressing the Emergency Stop Button, while the computer screen states and requests Reset Machine, the paneldue is Halted. It's either press Stop on the paneldue or click Reset Machine on the computer screen.
                                      I think it's a case of getting into the software code for the GUI, to be able to enable this as a use, unless this plugin might help as previously mentioned by @Phaedrux in another post;
                                      https://github.com/MintyTrebor/BtnCmd

                                       ; Emergency Stop
                                      M950 J2 C"io3.in"
                                      M581 P2 T2 S1 R0
                                      M581 P2 T3 S0 R0
                                      
                                      ;Trigger2.g Reset Emergency Stop Button
                                      M112
                                      M999
                                      
                                      ;Trigger3.g Z Axis Limt Switch
                                      M98 P"config.g"
                                      

                                      Then changed to;

                                       ; Emergency Stop
                                      M950 J2 C"io3.in"
                                      M581 P2 T0 S1 R0
                                      M581 P2 T2 S0 R0
                                      
                                      ;Trigger2.g Reset Emergency Stop Button
                                      M112
                                      M999
                                      

                                      Then changed to;

                                      ;Trigger2.g Reset Emergency Stop Button
                                      M999
                                      

                                      And then again with;

                                      ;Trigger2.g Reset Emergency Stop Button
                                      M98 P"config.g"
                                      
                                      Dizzwoldundefined 1 Reply Last reply Reply Quote 0
                                      • Dizzwoldundefined
                                        Dizzwold @Dizzwold
                                        last edited by

                                        @dc42 @deckingman @Phaedrux @chrishamm @fcwilt

                                        Hi guys,

                                        I think with looking around I might be needing to change something in the following which is C++. I know a little C++ (and I mean a little), but I'm certain this is part of of why I need to physically press a Reset Machine radio button ;
                                        https://github.com/Duet3D/RepRapFirmware/blob/3.4-dev/src/GCodes/GCodeInput.cpp
                                        src/GCodes/GCodeInput.cpp

                                        From line 144-219 is regarding the M112 command and how it is reset. I think?
                                        Lines 188, 189, 205, 206 prevent a perpetual reset?

                                        I've more code (.cpp files), to read, but I think I'm on the right track. I've got some thing to do this afternoon, but will come back.

                                        Dizzwold.

                                        Dizzwoldundefined 1 Reply Last reply Reply Quote 0
                                        • Dizzwoldundefined
                                          Dizzwold @Dizzwold
                                          last edited by

                                          @Dizzwold

                                          RepRapFirmware/src/GCodes/GCodes.cpp
                                          

                                          Lines 866-872

                                          dc42undefined Dizzwoldundefined 2 Replies Last reply Reply Quote 0
                                          • dc42undefined
                                            dc42 administrators @Dizzwold
                                            last edited by

                                            @Dizzwold please start a new thread about this because it is off-topic for this thread.

                                            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
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA