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
    561
    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.
    • 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