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

    Daemon.g not running when printer in Busy

    Scheduled Pinned Locked Moved
    General Discussion
    daemong.g
    4
    15
    559
    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.
    • e4dundefined
      e4d
      last edited by

      Hello,

      I have some processes running inside my daemon.g that need to run every second. I discovered that when doing a long extrusion (100mm @ 5mm/s) the daemon.g file was not executed. I also found the same phenomenon when doing an X movement (G1 X400 F50).

      This behaviour can't be suitable for my installation, I use pneumatic elements that have to be restarted according to sensor inputs.

      Do you have a solution to solve this problem? Thanks

      jay_s_ukundefined T3P3Tonyundefined dc42undefined 3 Replies Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @e4d
        last edited by

        @e4d you could try enabling segmentation.
        M669 S1 T1

        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
        • T3P3Tonyundefined
          T3P3Tony administrators @e4d
          last edited by

          @e4d as @jay_s_uk said, but i would go with a higher segmentation frequency if you need deamon.g to loop every second. Maybe segment the moves to a 5x per second.

          also make sure your daemon.g loop is quick to execute between the waits (have only what you really need in there if its only waiting 1 second between while loops).

          www.duet3d.com

          e4dundefined 1 Reply Last reply Reply Quote 1
          • e4dundefined
            e4d @T3P3Tony
            last edited by

            @T3P3Tony I tried doing that with M669 S5 T1 but still no response. I put : echo "daemon" inside the daemon.g running every second and if I try to execute G1 Y0 F50 going from Y-80 the console show no sign of echo text

            T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
            • T3P3Tonyundefined
              T3P3Tony administrators @e4d
              last edited by

              @e4d try using M118 P3 to send to the console on DWC.

              please post the deamon.g here

              www.duet3d.com

              e4dundefined 1 Reply Last reply Reply Quote 0
              • e4dundefined
                e4d @T3P3Tony
                last edited by e4d

                @T3P3Tony here's my daemon.g :

                while global.runDaemon == true
                
                	echo "daemon"
                	
                	; Voyant Pause
                	if state.status = "paused"
                		M42 P13 S1
                	else
                		M42 P13 S0
                		
                	;voyant rouge
                	if heat.heaters[0].current >= 50 || heat.heaters[3].current >= 50
                		M42 P17 S1
                	else 
                		M42 P17 S0
                
                	;G4 S1
                	G4 P200		
                

                I tried using

                M669 X1:0:0:0:0 Y0:1:0:0:0 Z0:0:1:0:0 A0:0:0:1:0 C0:0:0:0.5:1 S600
                

                to update even more frequently but with no success. I also have some light on/off in my daemon so the issue is not only console related

                T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                • T3P3Tonyundefined
                  T3P3Tony administrators @e4d
                  last edited by

                  @e4d i wont not have such a shot wait between loops.

                  Try the M118 P3 method to echo to ensure you daemon is running.

                  www.duet3d.com

                  e4dundefined 1 Reply Last reply Reply Quote 0
                  • e4dundefined
                    e4d @T3P3Tony
                    last edited by

                    @T3P3Tony i tried putting G4 S1 to reduce the time between loops and put M118 P3 S"daemon" in daemon.g. When doing a long slow move the console is not showing anything.

                    Is it the daemon.g not running ?

                    T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                    • T3P3Tonyundefined
                      T3P3Tony administrators @e4d
                      last edited by

                      @e4d possibly not, is your global.runDaemon set to true?

                      send

                      echo global.runDaemon

                      www.duet3d.com

                      e4dundefined 1 Reply Last reply Reply Quote 0
                      • e4dundefined
                        e4d @T3P3Tony
                        last edited by

                        @T3P3Tony it is set to true I checked with "echo global.runDaemon". The message "daemon" is showing every second until I do a "G1 X50 F50" starting from X0 then there's nothing in the console. When the movement is finished the message is back

                        T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                        • T3P3Tonyundefined
                          T3P3Tony administrators @e4d
                          last edited by

                          @e4d ahhh right, ok so thats a question for @dc42 then about segmentation. It may be that even though the message is coming from the daemon its not processed until after the move has finished.

                          www.duet3d.com

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

                            @e4d which firmware version are you using? The daemon should run concurrently with motion as long as it doesn't try to execute motion-related commands. However, in some older firmware versions the G4 command caused it to wait for motion to stop.

                            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

                            e4dundefined 1 Reply Last reply Reply Quote 0
                            • e4dundefined
                              e4d @dc42
                              last edited by

                              @dc42 i'm running RRF 3.4.5 and DWC 3.4.5 on a Duet3 6HC.
                              I tried to do further testing. It seems that if there's something more than the M118 P3 it doesn't work anymore. I tried putting a M42 in the daemon after the M118, nothing more, and it does'nt work.

                              e4dundefined 1 Reply Last reply Reply Quote 0
                              • e4dundefined
                                e4d @e4d
                                last edited by

                                @dc42 do you have any idea how I could solve this segmentation problem ?

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

                                  @e4d I can see that the M42 command might get held up if you are doing a G2 or G3 move, or a long linear move and you have segmentation enabled. I think I need to change the logic so that when M42 is executed by the daemon, and the daemon hasn't commanded any movement since it last waited for movement to stop, the command is executed immediately without any attempt to sync it to the movement commands already queued.

                                  Meanwhile, you may be able to get this working by putting one of the parameters in { } for example M41 P{13} S1. This will make the parser think that there is an expression to be evaluated, and in current firmware it will not attempt to sync the command with motion.

                                  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