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

    3.5.0b1+ Halting/pausing a fraction of a sec during print.

    Scheduled Pinned Locked Moved
    Beta Firmware
    3
    18
    542
    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.
    • Exerqtorundefined
      Exerqtor
      last edited by Exerqtor

      I'm seeing some weirdness when i print with 3.5.0b1+ on my CoreXY.

      It's just like it halts/pauses every once in a while like it's thinking about what to do next.

      If you look at this clip you can see what i'm talking about, it's almost like it's "laging" a bit.

      Duet 3 Mini5+ FYI..

      M122 called DURING the print in the clip:

      M122
      === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.5beta1+ (2022-12-31 17:11:45) running on Duet 3 Mini5plus WiFi (standalone mode)
      Board ID: FAP55-Q967A-G65J0-401GL-0S02Z-RF9TL
      Used output buffers: 28 of 40 (40 max)
      === RTOS ===
      Static ram: 102208
      Dynamic ram: 119776 of which 56 recycled
      Never used RAM 16168, free system stack 118 words
      Tasks: NETWORK(notifyWait,14.3%,200) HEAT(notifyWait,0.0%,337) Move(notifyWait,0.4%,257) CanReceiv(notifyWait,0.0%,773) CanSender(notifyWait,0.0%,325) CanClock(delaying,0.0%,349) TMC(notifyWait,1.3%,71) MAIN(running,82.4%,386) IDLE(ready,0.7%,30) AIN(delaying,0.9%,263), total 100.0%
      Owned mutexes: WiFi(NETWORK)
      === Platform ===
      Last reset 00:53:44 ago, cause: power up
      Last software reset at 2023-01-03 11:01, reason: User, GCodes spinning, available RAM 15628, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00489000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x04
      Aux0 errors 0,1,0
      MCU revision 3, ADC conversions started 3225087, completed 3225087, timed out 0, errs 0
      Step timer max interval 1478
      MCU temperature: min 37.9, current 45.2, max 45.6
      Supply voltage: min 23.2, current 23.7, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 99/34, heap memory allocated/used/recyclable 2048/1140/700, gc cycles 661
      Events: 0 queued, 0 completed
      Driver 0: ok, SG min 0, read errors 0, write errors 0, ifcnt 32, reads 30939, writes 32, timeouts 0, DMA errors 0, CC errors 0
      Driver 1: ok, SG min 0, read errors 0, write errors 0, ifcnt 32, reads 30939, writes 32, timeouts 0, DMA errors 0, CC errors 0
      Driver 2: ok, SG min 0, read errors 0, write errors 0, ifcnt 24, reads 30947, writes 24, timeouts 0, DMA errors 0, CC errors 0
      Driver 3: ok, SG min 0, read errors 0, write errors 0, ifcnt 24, reads 30947, writes 24, timeouts 0, DMA errors 0, CC errors 0
      Driver 4: ok, SG min 0, read errors 0, write errors 0, ifcnt 25, reads 30946, writes 25, timeouts 0, DMA errors 0, CC errors 0
      Driver 5: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 30961, writes 10, timeouts 0, DMA errors 0, CC errors 0
      Driver 6: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 30961, writes 10, timeouts 0, DMA errors 0, CC errors 0
      Date/time: 2023-01-03 17:29:11
      Cache data hit count 4294967295
      Slowest loop: 536.04ms; fastest: 0.08ms
      === Storage ===
      Free file entries: 6
      SD card 0 detected, interface speed: 22.5MBytes/sec
      SD card longest read time 9.0ms, write time 60.6ms, max retries 0
      === Move ===
      DMs created 83, segments created 27, maxWait 2300900ms, bed compensation in use: mesh, comp offset 0.000
      next step interrupt due in 34 ticks, enabled
      === DDARing 0 ===
      Scheduled moves 12893, completed 12880, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3
      === DDARing 1 ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      Heater 0 is on, I-accum = 0.3
      Heater 1 is on, I-accum = 0.0
      === GCodes ===
      Movement locks held by Daemon, null
      HTTP is idle in state(s) 0
      Telnet is idle in state(s) 0
      File is doing "G1 X125.7 Y204.002 E.01084" in state(s) 0
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0 0 0, running macro
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      File2 is idle in state(s) 0, sync state 1
      Queue2 is idle in state(s) 0
      Q0 segments left 0, axes/extruders owned 0x0000803
      Code queue 0 is empty
      Q1 segments left 0, axes/extruders owned 0x0000000
      Code queue 1 is empty
      === CAN ===
      Messages queued 41548, received 64706, lost 0, boc 0
      Longest wait 4ms for reply type 6013, peak Tx sync delay 270, free buffers 18 (min 10), ts 16124/16123/0
      Tx timeouts 0,0,0,0,0,0
      === Network ===
      Slowest loop: 569.41ms; fastest: 0.00ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      = WiFi =
      Network state is active
      WiFi module is connected to access point 
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 2.1beta2
      WiFi MAC address bc:ff:4d:e6:b1:62
      WiFi Vcc 3.38, reset reason Power up
      WiFi flash size 4194304, free heap 36508
      WiFi IP address 192.168.10.50
      WiFi signal strength 0dBm, mode 802.11n, reconnections 0, sleep mode modem
      Clock register 00002001
      Socket states: 0 0 0 0 0 0 0 0
      
      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @Exerqtor
        last edited by

        @Exerqtor your M122 report indicates that the daemon process has the movement lock. What is in your daemon.g file?

        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

        Exerqtorundefined 1 Reply Last reply Reply Quote 0
        • Exerqtorundefined
          Exerqtor @dc42
          last edited by

          @dc42

          ; /sys/daemon.g  v1.1
          ; Used to execute regular tasks, the firmware executes it and once the end of file is reached it waits. If the file is not found it waits and then looks for it again.
          
          ; Loop, to be able to turn on/off daemon.g
          while global.RunDaemon
            ; Stuff goes here         
          
            ; Refresh chamber lights status
            if state.gpOut[0].pwm = 0
              set global.chamber_leds = "off"
            elif state.gpOut[0].pwm > 0
              set global.chamber_leds = state.gpOut[0].pwm * 100
          
            ;Refresh stealthburner led status
            M98 P"/sys/lib/led/sb_leds.g"                                                ; Run Stealthburner Neopixel macro
            
            ; -----------------
            ; Daemon loop delay
            G4 S1                                                                        ; Delay running again or next command for at least 1 second  
          
          dc42undefined 1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators @Exerqtor
            last edited by

            @Exerqtor my guess is that your LEDs are connected to a port that can only be driven by bit banging, so motion has to stop when updating the LEDs. You could mitigate it by executing the M150 command only if there has been a change in status that requires new colours.

            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

            Exerqtorundefined 1 Reply Last reply Reply Quote 0
            • Exerqtorundefined
              Exerqtor @dc42
              last edited by

              @dc42
              Hmm the leds don't change state during a print though?

              The led macro daemon calls is this one:

              ; /sys/lib/led/sb_leds.g  v3.1
              ; Called by daemon.g
              ; Used for setting the status leds on the Voron StealthBurner toolhead (or for any neopixel-type leds).
              
              ; NOTE THAT THIS IS A WORK IN PROGRESS AND I AM STILL NOT DONE "CONVERTING" IT TO RRF IN THIS VERSION!
              
              ; You will need to configure a neopixel (or other addressable led, such as dotstar).
              ; See "https://docs.duet3d.com/User_manual/Reference/Gcodes#m150-set-led-colours" for configuration details.
              
              ; ====================---------------------------------------------------------
              ; Instructions
              ; ====================
              ; How to use all this stuff:
              
              ;  1.  Navigate to the /sys/lib/led/ folder on your printer and add this file (sb_leds.g) to the directory.
              
              ;        Note: If you haven't got /sys/lib/led/ yet simply make a new folder inside /sys/ with the name
              ;              "lib" open the newly created "lib" folder and creat yet another folder inside it called 
              ;              "led" before you do the step above. Why i choose to use /sys/lib/ is explained in my
              ;              github page: https://github.com/Exerqtor/Voron/tree/main/Firmware/reprapfirmware/sys/lib
              
              ;  2.  Define and setup your LEDs by editing the settings below
              
              ;        Note: RGB and RGBW are different and must be defined explicitly.  RGB and RGBW are also not able to
              ;              be mix-and-matched in the same chain. A separate data line would be needed for proper functioning.
              
              ;              RGBW LEDs will have a visible yellow-ish phosphor section to the chip.  If your LEDs do not have
              ;              this yellow portion, you have RGB LEDs.
              
              ;  3.  Save your the changes you've done to this file.
              
              ;        Note: The RED and BLUE are set to 255 to make it easier for users and supporters to detect
              ;              misconfigurations or miswiring. The default color format is for Neopixels with a dedicated
              ;              white LED. On startup, all three SB LEDs should light up a bright pink color.
              
              ;              If you get random colors across your LEDs, change the "X" parameter bellow according to
              ;              the duet docs and save the changes you've made. Once you've found the correct X parameneter
              ;              all LED's to be a steady bright pink. If your NEOPIXEL's aren't RGBW omit the W for each
              ;              status farther down.
              
              ;              If you get MAGENTA, your  color order is correct. If you get CYAN, you need to use RGBW. If
              ;              you get YELLOW, you need to use BRGW (note that BRG is only supported in the latest Klipper
              ;              version).
              
              ;  4.  Now go to /sys/ and open "daemon.g" and copy "M98 P"/sys/lib/led/sb_leds.g" ; Run Stealthburner Neopixel macro"
              ;      to the end of the file and save it.
              
              ;        Note: To edit "daemon.g" while running on the machine you have to first rename the file, open it, add the
              ;              and save the changes needed, close the file and rename it back to "daemon.g".
              
              ;              The "daemon.g" that's part of my RRF setup can be used If you haven't got "deamon.g" running 
              ;              on your printer already. Mine depends on a loop triggered by the variable global.RunDeamon
              ;              so that you don't have to rename it two times each time you want to stop or edit the file.
              ;              This on the other hand also means you have to add; global RunDeamon = True to the end of  your config.g.
              ;              And then add the macro: "Toggle deamon" , or make your own variant if you want to.
              
              ;              The "daemon.g" attached here is setup to loop once second. If you're unsure what "daemon.g" is 
              ;              read up in here: https://docs.duet3d.com/en/User_manual/Tuning/Macros#daemong
              
              ;  5.  Now if all the LEDs light up a bright pink color you should be done for the next step which is to add "ready"
              ;      status to the end of your config.g so that it goes to "ready" on next reboot: global sb_leds = "ready" .
              
              ;        Note: If you still haven't got all of the LED's to light up pink by now you have to fix that before you add the 
              ;              variable declaration mentioned over!
              
              ;        Note: If you use the init.g AND globals.g from my RRF setup the variable is already defined there, so you don't 
              ;              need to put it in your config.g
              
              ;  6.  Once you have confirmed that the LEDs are set up correctly, you must now decide where you want these
              ;      macros called up...which means adding them to your existing gcode macros.  NOTHING will happen unless
              ;      you add: set global.sb_leds = "?????" to your existing gcode macros
              
              ;        Example: Add: set global.sb_leds = "leveling" to the beginning of your QGL gcode macro, and then
              ;                 add: set global.sb_leds = "ready" to the end of it to set the logo LED and nozzle LEDs back to the `ready` state.
              
              ;        Example: add: set global.sb_leds = "cleaning" to the beginning of your nozzle-cleaning macro, and then; set global.sb_leds = "ready"
              ;                 to the end of it to return the LEDs back to `ready` state.
              
              ;        Note: If you use my RRF config these status changes have been added already, you can of course add more if you feel like it.
              
              ;  7.  Feel free to change colors of each macro, create new ones if you have a need to.  The macros provided below
              ;      are just an example of what is possible.
              
              ;  8  To wrap it all up you can add the Toggle Nozzle Lights macro if you want to be able to toggle on/off the nozzle lights independant
              ;     of what the status set them them to be.
              ; ====================
              ; End of Instructions
              ; ====================---------------------------------------------------------
              
              
              ; ====================---------------------------------------------------------
              ; Neopixel configuration
              ; ====================
              ; Define your LED type
              if !exists(global.sb_leds)
                M150 X3                            ; set LED type to RGBW NeoPixel
              
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; This section is required.  Do Not Delete or mess with it.
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; ====================---------------------------------------------------------
              ; Placeholders
              ; ====================
              if global.sb_leds = "boot"
                M150 X3                            ; set LED type to RGBW NeoPixel
              
              if !exists(global.sb_leds)
                global sb_leds        = "pink"
              
              if !exists(global.sb_logo)
                global sb_logo        = "n/a"
              
              if !exists(global.sb_nozzle)
                global sb_nozzle      = "n/a"
              
              var l_r                 = 0
              var l_u                 = 0
              var l_b                 = 0
              var l_w                 = 0
              
              var n_r                 = 0
              var n_u                 = 0
              var n_b                 = 0
              var n_w                 = 0
              
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; This section can be played with "as you please"
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; ====================---------------------------------------------------------
              ; Avalible tatuses to use in macros etc.
              ; ====================
              
              ; The following statuses are available (these go inside of your macros):
              
              ; Statuses (sb_leds)
              ;    pink                                                                      ; This one is only for initial setup
              ;    off
              ;    ready
              ;    busy
              ;    heating
              ;    leveling
              ;    homing
              ;    cleaning
              ;    meshing
              ;    calibrating_z
              ;    printing
              ;    hot
              ;    cold
              
              ;Additional macros for basic control:
              ;   Note: These will "reset" at the next "full" status change!
              
              ;   l-off              ; Turns off the logo LED, but keeps the current status of the nozzle LEDs.
              ;   n-on               ; Turns off the nozzle LEDs, but keeps the current status of the logo LED.
              ;   n-off              ; Turns on the nozzle LEDs, but keeps the current status of the logo LED.
              
              ; User settings for the StealthBurner status leds. You can change the status colors and led
              ; configurations for the logo and nozzle here.
              ;variable_colors: 
              
              ; ====================---------------------------------------------------------
              ; Status dependant configuration
              ; ====================
              
              if global.sb_leds = "pink"
                set global.sb_logo    = "pink"
                set global.sb_nozzle  = "pink"
              
              if global.sb_leds = "off"
                set global.sb_logo    = "off"
                set global.sb_nozzle  = "off"
              
              if global.sb_leds = "ready"
                set global.sb_logo    = "standby"
                set global.sb_nozzle  = "standby"
              
              if global.sb_leds = "busy"
                set global.sb_logo    = "busy"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "heating"
                set global.sb_logo    = "heating"
                set global.sb_nozzle  = "heating"
              
              if global.sb_leds = "leveling"
                set global.sb_logo    = "leveling"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "homing"
                set global.sb_logo    = "homing"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "cleaning"
                set global.sb_logo    = "cleaning"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "meshing"
                set global.sb_logo    = "meshing"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "calibrating_z"
                set global.sb_logo    = "calibrating_z"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "printing"
                set global.sb_logo    = "printing"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "hot"
                set global.sb_logo    = "hot"
                set global.sb_nozzle  = "hot"
              
              if global.sb_leds = "cold"
                set global.sb_logo    = "cold"
                set global.sb_nozzle  = "cold"
              
              if global.sb_leds = "l-off"
                set global.sb_logo    = "off" 
              
              if global.sb_leds = "n-on"
                set global.sb_nozzle  = "on"
              
              if global.sb_leds = "n-off"
                set global.sb_nozzle  = "off"
              
              ; ====================---------------------------------------------------------
              ; Color control
              ; ====================
              
              ; User settings for the StealthBurner status leds. You can change the status colors
              ; for the logo and nozzle here.
              
              ; The initial color of all the Neopixels is set to be a bright pink for troubleshooting purposes.
              ; Otherwise the colors can be changed by adusting the "R,U,B & W" values 
              ; Each value should be between 0 and 255. R=red, U=Green, B=Blue, W=white
              ;    Note: The WHITE option is only available on RGBW LEDs.
              
              ; R=Red
              ; U=Green
              ; B=Blue
              ; W=White
              ; P=Brightness
              
              ; Colors for the logo LEDs
              if global.sb_logo = "pink"                                                     ; R255 U0 B255 W0 / Pink with full brightness
                set var.l_r           = 255                                                  ; Red
                set var.l_u           = 0                                                    ; Green
                set var.l_b           = 255                                                  ; Blue
                set var.l_w           = 0                                                    ; White
              
              if global.sb_logo = "off"                                                      ; R0 U0 B0 W0 / Off
                set var.l_r           = 0
                set var.l_u           = 0
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "standby"                                                  ; R3 U3 B3 W3 / Dim gray
                set var.l_r           = 3
                set var.l_u           = 3
                set var.l_b           = 3
                set var.l_w           = 3
              
              if global.sb_logo = "busy"                                                     ; R102 U0 B0 W0 / Light red
                set var.l_r           = 102
                set var.l_u           = 0
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "cleaning"                                                 ; R0 U51 B128 W0 / Light blue
                set var.l_r           = 0
                set var.l_u           = 51
                set var.l_b           = 128
                set var.l_w           = 0
              
              if global.sb_logo = "calibrating_z"                                            ; R204 U0 B89 W0 / Strong pink
                set var.l_r           = 204
                set var.l_u           = 0
                set var.l_b           = 89
                set var.l_w           = 0
              
              if global.sb_logo = "heating"                                                  ; R77 U46 B0 W0 / Yellow
                set var.l_r           = 77
                set var.l_u           = 46
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "homing"                                                   ; R0 U153 B51 W0 / Teal
                set var.l_r           = 0
                set var.l_u           = 153
                set var.l_b           = 51
                set var.l_w           = 0
              
              if global.sb_logo = "leveling"                                                 ; R128 U26 B102 W0 / Light Pink
                set var.l_r           = 128
                set var.l_u           = 26
                set var.l_b           = 102
                set var.l_w           = 0
              
              if global.sb_logo = "meshing"                                                  ; R51 U255 B0 W0 / Green
                set var.l_r           = 51
                set var.l_u           = 255
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "printing"                                                 ; R255 U0 B0 W0 / Red
                set var.l_r           = 255
                set var.l_u           = 0
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "hot"                                                      ; R255 U0 B0 W0 / Bright Red
                set var.l_r           = 255
                set var.l_u           = 0
                set var.l_b           = 0
                set var.l_w           = 0
              
              if global.sb_logo = "cold"                                                     ; R77 U0 B77 W0 / Light Pink
                set var.l_r           = 0
                set var.l_u           = 0
                set var.l_b           = 255
                set var.l_w           = 77
              
              ; Colors for the nozzle LEDs
              if global.sb_nozzle = "pink"                                                   ; R255 U0 B255 W0 / Pink with full brightness
                set var.n_r           = 255
                set var.n_u           = 0
                set var.n_b           = 255
                set var.n_w           = 0
              
              if global.sb_nozzle = "off"                                                    ; R0 U0 B0 W0 / Off
                set var.n_r           = 0
                set var.n_u           = 0
                set var.n_b           = 0
                set var.n_w           = 0
              
              if global.sb_nozzle = "on"                                                     ; R204 U204 B204 W255 / White
                set var.n_r           = 204
                set var.n_u           = 204
                set var.n_b           = 204
                set var.n_w           = 255
              
              if global.sb_nozzle = "standby"                                                ; R153 U0 B0 W0 / Red
                set var.n_r           = 153
                set var.n_u           = 0
                set var.n_b           = 0
                set var.n_w           = 0
              
              if global.sb_nozzle = "heating"                                                ; R204 U89 B0 W0 / Yellow
                set var.n_r           = 204
                set var.n_u           = 89
                set var.n_b           = 0
                set var.n_w           = 0
              
              if global.sb_nozzle = "hot"                                                    ; R255 U0 B0 W0 / Bright Red
                set var.n_r           = 255
                set var.n_u           = 0
                set var.n_b           = 0
                set var.n_w           = 0
              
              if global.sb_nozzle = "cold"                                                   ; R77 U0 B77 W0 / Light Pink
                set var.n_r           = 0
                set var.n_u           = 0
                set var.n_b           = 255
                set var.n_w           = 77
              
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; This section is required.  Do Not Delete or mess with it.
              ;--------------------------------------------------------------------------------------------------------------------------------------
              ; ====================---------------------------------------------------------
              ; Activate leds according to selected status / mode
              ; ====================
              ; Logo LED
              M150 R{var.l_r} U{var.l_u} B{var.l_b} W{var.l_w} S1 F1
              
              ; Nozzle LEDs
              M150 R{var.n_r} U{var.n_u} B{var.n_b} W{var.n_w} S2
              
              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @Exerqtor
                last edited by

                @Exerqtor it looks to me that the M150 commands at the end of that macro are executed regardless of whether the colours have changed or not. That would be OK when using the dedicated LED port on Duet 3 boards.

                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

                Exerqtorundefined 1 Reply Last reply Reply Quote 0
                • Exerqtorundefined
                  Exerqtor @dc42
                  last edited by

                  @dc42
                  Yeah that's true, they are run every loop regardless.
                  It is using the neopixel header though, so i guess that shouldn't matter?

                  dc42undefined 1 Reply Last reply Reply Quote 0
                  • Diamondbackundefined
                    Diamondback
                    last edited by Diamondback

                    I have similiar hickups happening from time to time on 3.5b1+.

                    My daemon.g:

                    if state.status == "idle" && global.deactivateToolAfterFilamentChange == true
                    	echo "Unloading tool after filament change"
                    	T-1
                    
                    set global.deactivateToolAfterFilamentChange = false
                    
                    if state.status == "processing" && state.gpOut[1].pwm > 0 && job.layer == 3
                    	M98 P"/macros/Misc/Lights/Off" 
                    

                    Seems like it's somewhat at the end of a segmet every time 10s has passed or so? (as in, it's always > 10s for me, but it doesn't just stop exactly after 10s, only once it reaches the end of a move or so)

                    1 Reply Last reply Reply Quote 1
                    • Diamondbackundefined
                      Diamondback
                      last edited by

                      Here's a little video of what it looks like. First hickup around 0:04s at the far end, second one around 0:17 again at the far end.

                      Video

                      Exerqtorundefined 1 Reply Last reply Reply Quote 0
                      • Exerqtorundefined
                        Exerqtor @Diamondback
                        last edited by

                        @Diamondback That's the same behaviour i'm having. I first thought it was something PA related. So i restarted the print with PA disabled and it's doing the exact same thing.

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

                          @Exerqtor yes it shouldn't matter if it's using the Neopixel header. But then it shouldn't be locking movement, but your M122 report shows that it is.

                          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

                          Exerqtorundefined 1 Reply Last reply Reply Quote 0
                          • Exerqtorundefined
                            Exerqtor @dc42
                            last edited by Exerqtor

                            @dc42
                            Strange, ain't it? I'm 100% sure it's hooked up to the Neopixel-DO pin at least.

                            I'm anyways looking into the led script now so it only sends M150 commands if it's a change from it's current state.

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

                              @Exerqtor I will attempt to reproduce this. Please post your config.g file.

                              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

                              Exerqtorundefined 2 Replies Last reply Reply Quote 0
                              • Exerqtorundefined
                                Exerqtor @dc42
                                last edited by Exerqtor

                                @dc42
                                Cool! I've redone how the led macro is executed now so it shouldn't M150 spam anymore.
                                Here's the config.g:

                                ; Configuration file for Duet 3 Mini 5+ with Duet 3 Expansion Mini 2+ and 1LC (firmware version 3.5.0b1+)
                                ; executed by the firmware on start-up
                                
                                ; For E3D Revo Micro, Bondtech LGX Lite & Voron TAP  --------------------------
                                
                                ; ====================---------------------------------------------------------
                                ; Basic setup
                                ; ====================
                                
                                ; General preferences
                                M575 P1 S1 B57600                                                              ; Enable support for PanelDue
                                
                                ; Debugging
                                M111 S0                                                                        ; Debugging off (S0) or on (S1)
                                
                                G21                                                                            ; Work in millimetres
                                G90                                                                            ; Send absolute coordinates...
                                M83                                                                            ; Set extruder to relative mode
                                M550 P"Voron Trident"                                                          ; Set printer name
                                G4 S2                                                                          ; Wait a moment for the CAN expansion boards to start
                                
                                ; Kinematics
                                M669 K1	X-1:-1:0 Y1:-1:0 Z0:0:1                                                ; Select CoreXY mode and set kinematics matrix
                                
                                ; Network
                                M552 S1                                                                        ; Enable network
                                G4 S1                                                                          ; Wait a second
                                M586 P0 S1                                                                     ; Enable HTTP (for DWC)
                                M586 P1 S1                                                                     ; Enable FTP (for remote backups)
                                M586 P2 S0                                                                     ; Disable Telnet
                                
                                ; ====================---------------------------------------------------------
                                ; Driver config
                                ; ====================
                                
                                ;          --- Drive map ---
                                ; (While looking at the printer top down)
                                
                                ;             0.0-----0.1
                                ;              |  0.2  |
                                ;              |-------|
                                ;              |0.3|0.4|
                                ;               ---+---
                                ;                Front
                                
                                ; Drives for XY
                                M569 P0.0 S0                                                                   ; X (B) (physical drive 0.0) goes backwards
                                M569 P0.1 S0                                                                   ; Y (A) (physical drive 0.1) goes backwards
                                
                                ; Drives for Z
                                M569 P0.2 S0                                                                   ; Z1 (physical drive 0.2) goes backwards
                                M569 P0.3 S0                                                                   ; Z2 (physical drive 0.3) goes backwards
                                M569 P0.4 S0                                                                   ; Z3 (physical drive 0.4) goes backwards
                                
                                ; Drive for extruder
                                M569 P121.0 S0                                                                 ; E (physical drive 121.0) goes backwards
                                
                                ; Motor mapping and steps per mm
                                M584 X0.0 Y0.1 Z0.2:0.3:0.4 E121.0                                             ; Set drive mapping
                                M350 X16 Y16 Z16:16 E16 I1                                                     ; Configure microstepping with interpolation
                                M92 X80.00 Y80.00 Z800.00                                                      ; Set XYZ steps per mm (1.8deg motors)
                                M92 E568.83                                                                    ; Set Extruder steps per mm (Bondtech LGX Lite 562 stock)
                                
                                ; Drive currents
                                M906 X1750 Y1750 I40                                                           ; Set XY motor currents (mA) and ide current percentage
                                M906 Z850 I40                                                                  ; Set Z motor currents (mA) and ide current percentage
                                M906 E550 I40                                                                  ; Set E motor currents (mA) and ide current percentage
                                M84 X Y Z E0 S30                                                               ; Set idle timeout
                                
                                ; Axis accelerations and speeds
                                M566 X700.00 Y700.00 Z30.00 P1                                                 ; Set maximum instantaneous speed changes (mm/min) and jerk policy
                                M203 X18000.00 Y18000.00 Z900.00                                               ; Set maximum speeds (mm/min)
                                M201 X3500.00 Y3500.00 Z150.00                                                 ; Set accelerations (mm/s²)
                                
                                ; Extruder accelerations and speeds
                                M566 E8000.00 P1                                                               ; Set maximum instantaneous speed changes (mm/min) and jerk policy
                                M203 E15000.00                                                                 ; Set maximum speeds (mm/min)
                                M201 E1800.0                                                                   ; Set accelerations (mm/s²)
                                
                                ; Reduced accelerations
                                M201.1 X500 Y500 Z80 E500                                                      ; Set reduced acceleration for special move types (mm/s²)
                                
                                ; Printing and travel accelerations
                                M204 P1500 T3000                                                               ; Set printing acceleration and travel accelerations (mm/s²)
                                
                                ; ====================---------------------------------------------------------
                                ; Movement
                                ; ====================
                                
                                ; Axis Limits
                                M208 X-1 Y-6 Z0 S1                                                             ; Set axis minimal
                                M208 X352 Y354 Z300 S0                                                         ; Set axis maximal
                                
                                ; Endstops
                                M574 Z0 P"nil"                                                                 ; No endstop
                                
                                ; Z-probe (Voron TAP)
                                M558 K0 P8 C"^121.io2.in" H2 R0.2 F300:180 T18000 A3 S0.05                     ; Set Z probe type to switch and the dive height + speeds
                                G31 K0 P500 X0 Y0 Z-0.780                                                      ; Set Z probe trigger value, offset and trigger height (higher Z value = nozzle closer to bed)
                                
                                ; Bed leveling
                                M671 X175:388:-38 Y416.6:1.5:1.5 S10                                           ; Leadscrew locations (Rear, Right, Left)
                                M557 X25:315 Y25:325 P10                                                       ; Define default mesh grid ( positions include the Z offset!)
                                
                                ; Accelerometer
                                M955 P121.0 I05                                                                ; Configure accelerometer
                                M593 P"zvd" F49                                                                ; Use ZVD input shaping to cancel ringing at 49Hz
                                
                                ; ====================---------------------------------------------------------
                                ;  Heaters
                                ; ====================
                                
                                ; Bed heater
                                M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"                            ; Configure sensor 0 as thermistor on pin temp0
                                M950 H0 C"out0" T0 Q5                                                          ; Create bed heater output on out0, map it to sensor 0 and set PWM frequency(Hz)
                                M307 H0 B0 S1.00                                                               ; Disable bang-bang mode for the bed heater and set PWM limit
                                M140 H0                                                                        ; Map heated bed to heater 0
                                M143 H0 S110                                                                   ; Set temperature limit for heater 0 to 110°C
                                M143 H0 A2 C0 S110                                                             ; Make sure bed heater stays below 110°C
                                M143 H0 A1 C0 S125                                                             ; Make sure bed heater shuts down at 125°C
                                
                                ; Hodend heater
                                M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Hotend"        ; Configure sensor 1 as thermistor on pin 121.temp0
                                M950 H1 C"121.out0" T1                                                         ; Create nozzle heater output on 121.out0 and map it to sensor 1
                                M307 H1 B0 S1.00                                                               ; Disable bang-bang mode for heater  and set PWM limit
                                M143 H1 S300                                                                   ; Set temperature limit for heater 1 to 300°C
                                
                                ; Chamber heater
                                M308 S4 P"121.temp1" Y"thermistor" T9600 B3950 A"Chamber"                      ; Configure sensor 4 as thermistor on pin e1temp
                                
                                M308 S2 Y"mcu-temp" A"MCU"                                                     ; Configure sensor 2 as MCU temperature
                                M912 P0 S-2.9                                                                  ; MCU temp calibration parameters
                                M308 S3 Y"drivers" A"DRIVERS"                                                  ; Configure sensor 3 as drivers temperature
                                
                                ; ====================---------------------------------------------------------
                                ;  Fans
                                ; ====================
                                
                                ;Part cooling
                                M950 F0 C"121.out1" Q500                                                       ; Create fan 0 on pin 121.out1 and set its frequency
                                M106 P0 S0 H-1 C"Part Cooling"                                                 ; Set fan 0 value. Thermostatic control is turned off
                                
                                ;Hotend fan
                                M950 F1 C"121.out2" Q500                                                       ; Create fan 1 on pin 121.out2 and set its frequency
                                M106 P1 S1 H1 T45 C"Hotend Fan"                                                ; Hotend fan @ 100%, turns on if temperature sensor 1 reaches 45°C
                                
                                ;Electronics fan
                                M950 F2 C"out5" Q500                                                           ; Create fan 2 on pin out3 and set its frequency
                                M106 P2 L0.15 H2:3 T45:50 C"Electronics Fans"                                  ; Electronics fans start @ 30% when temperature sensor 2 reaches 45°C or sensor 3 (drivers report over temp)
                                
                                ;Exhaust fan
                                M950 F3 C"out6" Q500                                                           ; Create fan 3 on pin out4 and set its frequency
                                M106 P3 H-1 Q500 C"Exhaust fan"                                                ; Exhaust fan 3 value. Thermostatic control is turned off
                                
                                ; Tools
                                M563 P0 S"Revo Micro" D0 H1 F0                                                 ; Define tool 0
                                G10 P0 X0 Y0 Z0                                                                ; Set tool 0 axis offsets
                                G10 P0 R0 S0                                                                   ; Set initial tool 0 active and standby temperatures to 0°C
                                
                                ; ====================---------------------------------------------------------
                                ;  Other
                                ; ====================
                                
                                ; Filament monitoring
                                
                                ; Miscellaneous
                                M950 P0 C"out2"	                                                               ; Create output Port0 attached to out2 connector for LED lights 
                                M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"                             ; Set voltage thresholds and actions to run on power loss
                                M572 D0 S0.0                                                                   ; Disable Pressure Advance
                                M98 P"/sys/lib/init.g"                                                         ; Iniate external configs
                                M501                                                                           ; Load config-override.g
                                T0                                                                             ; Select tool 0
                                
                                Exerqtorundefined 1 Reply Last reply Reply Quote 0
                                • Exerqtorundefined
                                  Exerqtor @Exerqtor
                                  last edited by Exerqtor

                                  @Exerqtor
                                  The above mentioned led macro changes:
                                  sb_leds.g:

                                  ; /sys/lib/led/sb_leds.g  v4.0
                                  ; Called at boot up and by daemon.g (via /sys/lib/led/sb_leds-state)
                                  ; Used for setting the leds on the Voron StealthBurner toolhead.
                                  
                                  ; You will need to configure a neopixel (or other addressable led, such as dotstar).
                                  ; See "https://docs.duet3d.com/User_manual/Reference/Gcodes#m150-set-led-colours" for configuration details.
                                  
                                  ; ====================---------------------------------------------------------
                                  ; Neopixel configuration
                                  ; ====================
                                  ; Define your LED type
                                  if !exists(global.sb_leds)
                                    M150 X3                            ; set LED type to RGBW NeoPixel
                                  
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; This section is required.  Do Not Delete or mess with it.
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; ====================---------------------------------------------------------
                                  ; Placeholders
                                  ; ====================
                                  if global.sb_leds = "boot"
                                    M150 X3                            ; set LED type to RGBW NeoPixel
                                  
                                  if !exists(global.sb_leds)
                                    global sb_leds        = "pink"
                                  
                                  if !exists(global.sb_logo)
                                    global sb_logo        = "n/a"
                                  
                                  if !exists(global.sb_nozzle)
                                    global sb_nozzle      = "n/a"
                                  
                                  var l_r                 = 0
                                  var l_u                 = 0
                                  var l_b                 = 0
                                  var l_w                 = 0
                                  
                                  var n_r                 = 0
                                  var n_u                 = 0
                                  var n_b                 = 0
                                  var n_w                 = 0
                                  
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; This section can be played with "as you please"
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; ====================---------------------------------------------------------
                                  ; Avalible statuses to use in macros etc.
                                  ; ====================
                                  
                                  ; The following statuses are available (these go inside of your macros):
                                  
                                  ; Statuses (sb_leds)
                                  ;    pink                                                                      ; This one is only for initial setup
                                  ;    off
                                  ;    ready
                                  ;    busy
                                  ;    heating
                                  ;    leveling
                                  ;    homing
                                  ;    cleaning
                                  ;    meshing
                                  ;    calibrating_z
                                  ;    printing
                                  ;    hot
                                  ;    cold
                                  
                                  ;Additional macros for basic control:
                                  ;   Note: These will "reset" at the next "full" status change!
                                  
                                  ;   l-off              ; Turns off the logo LED, but keeps the current status of the nozzle LEDs.
                                  ;   n-on               ; Turns off the nozzle LEDs, but keeps the current status of the logo LED.
                                  ;   n-off              ; Turns on the nozzle LEDs, but keeps the current status of the logo LED.
                                  
                                  ; User settings for the StealthBurner status leds. You can change the status colors and led
                                  ; configurations for the logo and nozzle here.
                                  
                                  ; ====================---------------------------------------------------------
                                  ; Status dependant configuration
                                  ; ====================
                                  
                                  if global.sb_leds = "pink"
                                    set global.sb_logo    = "pink"
                                    set global.sb_nozzle  = "pink"
                                  
                                  if global.sb_leds = "off"
                                    set global.sb_logo    = "off"
                                    set global.sb_nozzle  = "off"
                                  
                                  if global.sb_leds = "ready"
                                    set global.sb_logo    = "standby"
                                    set global.sb_nozzle  = "standby"
                                  
                                  if global.sb_leds = "busy"
                                    set global.sb_logo    = "busy"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "heating"
                                    set global.sb_logo    = "heating"
                                    set global.sb_nozzle  = "heating"
                                  
                                  if global.sb_leds = "leveling"
                                    set global.sb_logo    = "leveling"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "homing"
                                    set global.sb_logo    = "homing"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "cleaning"
                                    set global.sb_logo    = "cleaning"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "meshing"
                                    set global.sb_logo    = "meshing"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "calibrating_z"
                                    set global.sb_logo    = "calibrating_z"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "printing"
                                    set global.sb_logo    = "printing"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "hot"
                                    set global.sb_logo    = "hot"
                                    set global.sb_nozzle  = "hot"
                                  
                                  if global.sb_leds = "cold"
                                    set global.sb_logo    = "cold"
                                    set global.sb_nozzle  = "cold"
                                  
                                  if global.sb_leds = "l-off"
                                    set global.sb_logo    = "off" 
                                  
                                  if global.sb_leds = "n-on"
                                    set global.sb_nozzle  = "on"
                                  
                                  if global.sb_leds = "n-off"
                                    set global.sb_nozzle  = "off"
                                  
                                  ; ====================---------------------------------------------------------
                                  ; Color control
                                  ; ====================
                                  
                                  ; User settings for the StealthBurner status leds. You can change the status colors
                                  ; for the logo and nozzle here.
                                  
                                  ; The initial color of all the Neopixels is set to be a bright pink for troubleshooting purposes.
                                  ; Otherwise the colors can be changed by adusting the "R,U,B & W" values 
                                  ; Each value should be between 0 and 255. R=red, U=Green, B=Blue, W=white
                                  ;    Note: The WHITE option is only available on RGBW LEDs.
                                  
                                  ; R=Red
                                  ; U=Green
                                  ; B=Blue
                                  ; W=White
                                  ; P=Brightness
                                  
                                  ; Colors for the logo LEDs
                                  if global.sb_logo = "pink"                                                     ; R255 U0 B255 W0 / Pink with full brightness
                                    set var.l_r           = 255                                                  ; Red
                                    set var.l_u           = 0                                                    ; Green
                                    set var.l_b           = 255                                                  ; Blue
                                    set var.l_w           = 0                                                    ; White
                                  
                                  if global.sb_logo = "off"                                                      ; R0 U0 B0 W0 / Off
                                    set var.l_r           = 0
                                    set var.l_u           = 0
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "standby"                                                  ; R3 U3 B3 W3 / Dim gray
                                    set var.l_r           = 3
                                    set var.l_u           = 3
                                    set var.l_b           = 3
                                    set var.l_w           = 3
                                  
                                  if global.sb_logo = "busy"                                                     ; R102 U0 B0 W0 / Light red
                                    set var.l_r           = 102
                                    set var.l_u           = 0
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "cleaning"                                                 ; R0 U51 B128 W0 / Light blue
                                    set var.l_r           = 0
                                    set var.l_u           = 51
                                    set var.l_b           = 128
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "calibrating_z"                                            ; R204 U0 B89 W0 / Strong pink
                                    set var.l_r           = 204
                                    set var.l_u           = 0
                                    set var.l_b           = 89
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "heating"                                                  ; R77 U46 B0 W0 / Yellow
                                    set var.l_r           = 77
                                    set var.l_u           = 46
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "homing"                                                   ; R0 U153 B51 W0 / Teal
                                    set var.l_r           = 0
                                    set var.l_u           = 153
                                    set var.l_b           = 51
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "leveling"                                                 ; R128 U26 B102 W0 / Light Pink
                                    set var.l_r           = 128
                                    set var.l_u           = 26
                                    set var.l_b           = 102
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "meshing"                                                  ; R51 U255 B0 W0 / Green
                                    set var.l_r           = 51
                                    set var.l_u           = 255
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "printing"                                                 ; R255 U0 B0 W0 / Red
                                    set var.l_r           = 255
                                    set var.l_u           = 0
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "hot"                                                      ; R255 U0 B0 W0 / Bright Red
                                    set var.l_r           = 255
                                    set var.l_u           = 0
                                    set var.l_b           = 0
                                    set var.l_w           = 0
                                  
                                  if global.sb_logo = "cold"                                                     ; R77 U0 B77 W0 / Light Pink
                                    set var.l_r           = 0
                                    set var.l_u           = 0
                                    set var.l_b           = 255
                                    set var.l_w           = 77
                                  
                                  ; Colors for the nozzle LEDs
                                  if global.sb_nozzle = "pink"                                                   ; R255 U0 B255 W0 / Pink with full brightness
                                    set var.n_r           = 255
                                    set var.n_u           = 0
                                    set var.n_b           = 255
                                    set var.n_w           = 0
                                  
                                  if global.sb_nozzle = "off"                                                    ; R0 U0 B0 W0 / Off
                                    set var.n_r           = 0
                                    set var.n_u           = 0
                                    set var.n_b           = 0
                                    set var.n_w           = 0
                                  
                                  if global.sb_nozzle = "on"                                                     ; R204 U204 B204 W255 / White
                                    set var.n_r           = 204
                                    set var.n_u           = 204
                                    set var.n_b           = 204
                                    set var.n_w           = 255
                                  
                                  if global.sb_nozzle = "standby"                                                ; R153 U0 B0 W0 / Red
                                    set var.n_r           = 153
                                    set var.n_u           = 0
                                    set var.n_b           = 0
                                    set var.n_w           = 0
                                  
                                  if global.sb_nozzle = "heating"                                                ; R204 U89 B0 W0 / Yellow
                                    set var.n_r           = 204
                                    set var.n_u           = 89
                                    set var.n_b           = 0
                                    set var.n_w           = 0
                                  
                                  if global.sb_nozzle = "hot"                                                    ; R255 U0 B0 W0 / Bright Red
                                    set var.n_r           = 255
                                    set var.n_u           = 0
                                    set var.n_b           = 0
                                    set var.n_w           = 0
                                  
                                  if global.sb_nozzle = "cold"                                                   ; R77 U0 B77 W0 / Light Pink
                                    set var.n_r           = 0
                                    set var.n_u           = 0
                                    set var.n_b           = 255
                                    set var.n_w           = 77
                                  
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; This section is required.  Do Not Delete or mess with it.
                                  ;--------------------------------------------------------------------------------------------------------------------------------------
                                  ; ====================---------------------------------------------------------
                                  ; Activate leds according to selected status / mode
                                  ; ====================
                                  
                                  ; Logo LED
                                  M150 R{var.l_r} U{var.l_u} B{var.l_b} W{var.l_w} S1 F1
                                  
                                  ; Nozzle LEDs
                                  M150 R{var.n_r} U{var.n_u} B{var.n_b} W{var.n_w} S2
                                  
                                  ; Create or ovewrite sb_leds-state.g with the new status
                                  echo >"/sys/lib/led/sb_leds-state.g" "; /sys/lib/led/sb_leds-state.g  v1.0"                     ; create/overwrite file
                                  echo >>"/sys/lib/led/sb_leds-state.g" "; Created by sb_leds.g to store the current/active LED colors "    ; save line to sb_leds-state
                                  echo >>"/sys/lib/led/sb_leds-state.g" "; Called by daemon.g to check if global.sb_leds status has changed since last run"    ; save line to sb_leds-state
                                  echo >>"/sys/lib/led/sb_leds-state.g"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "var sb_leds = "^ """"^{global.sb_leds}^""""    ; save line to sb_leds-state
                                  echo >>"/sys/lib/led/sb_leds-state.g"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "if var.sb_leds = global.sb_leds"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "  ; Same status, do nothing"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "else"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "  ; New status, change colors"
                                  echo >>"/sys/lib/led/sb_leds-state.g" "  M98 P""/sys/lib/led/sb_leds.g"""
                                  

                                  daemon.g:

                                  ; /sys/daemon.g  v1.1
                                  ; Used to execute regular tasks, the firmware executes it and once the end of file is reached it waits. If the file is not found it waits and then looks for it again.
                                  
                                  ; Loop, to be able to turn on/off daemon.g
                                  while global.RunDaemon
                                    ; Stuff goes here         
                                  
                                    ; Refresh chamber lights status
                                    if state.gpOut[0].pwm = 0
                                      set global.chamber_leds = "off"
                                    elif state.gpOut[0].pwm > 0
                                      set global.chamber_leds = state.gpOut[0].pwm * 100
                                  
                                    ;Refresh stealthburner led status
                                    M98 P"/sys/lib/led/sb_leds-state.g"                                          ; Check if global.sb_leds has changed since last run/loop
                                    
                                    ; -----------------
                                    ; Daemon loop delay
                                    G4 S1                                                                        ; Delay running again or next command for at least 1 second  
                                  

                                  sb_leds-state.g: (the file that gets generated at the end of sb_leds.g and ran by daemon.g)

                                  ; /sys/lib/led/sb_leds-state.g  v1.0
                                  ; Created by sb_leds.g to store the current/active LED colors 
                                  ; Called by daemon.g to check if global.sb_leds status has changed since last run
                                  
                                  var sb_leds = "ready"
                                  
                                  if var.sb_leds = global.sb_leds
                                    ; Same status, do nothing
                                  else
                                    ; New status, change colors
                                    M98 P"/sys/lib/led/sb_leds.g"
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Exerqtorundefined
                                    Exerqtor @dc42
                                    last edited by

                                    @dc42
                                    Ran the print again, with the new led macro. And it's the same issue.
                                    Fresh M122 while printing:

                                    4.1.2023, 18:10:00	M122
                                    === Diagnostics ===
                                    RepRapFirmware for Duet 3 Mini 5+ version 3.5beta1+ (2022-12-31 17:11:45) running on Duet 3 Mini5plus WiFi (standalone mode)
                                    Board ID: FAP55-Q967A-G65J0-401GL-0S02Z-RF9TL
                                    Used output buffers: 17 of 40 (40 max)
                                    === RTOS ===
                                    Static ram: 102208
                                    Dynamic ram: 120088 of which 164 recycled
                                    Never used RAM 15844, free system stack 120 words
                                    Tasks: NETWORK(notifyWait,14.5%,200) HEAT(notifyWait,0.0%,337) Move(notifyWait,0.3%,257) CanReceiv(notifyWait,0.0%,771) CanSender(notifyWait,0.0%,334) CanClock(delaying,0.0%,349) TMC(notifyWait,1.3%,71) MAIN(running,82.4%,435) IDLE(ready,0.6%,30) AIN(delaying,0.9%,263), total 100.0%
                                    Owned mutexes: WiFi(NETWORK)
                                    === Platform ===
                                    Last reset 00:21:33 ago, cause: power up
                                    Last software reset at 2023-01-03 11:01, reason: User, GCodes spinning, available RAM 15628, slot 2
                                    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00489000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
                                    Error status: 0x04
                                    Aux0 errors 0,0,0
                                    MCU revision 3, ADC conversions started 1293719, completed 1293719, timed out 0, errs 0
                                    Step timer max interval 1478
                                    MCU temperature: min 36.7, current 42.7, max 43.0
                                    Supply voltage: min 23.3, current 23.6, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
                                    Heap OK, handles allocated/used 99/26, heap memory allocated/used/recyclable 2048/1096/720, gc cycles 45
                                    Events: 0 queued, 0 completed
                                    Driver 0: ok, SG min 0, read errors 0, write errors 0, ifcnt 33, reads 51996, writes 33, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 1: ok, SG min 0, read errors 0, write errors 0, ifcnt 33, reads 51996, writes 33, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 2: ok, SG min 0, read errors 0, write errors 0, ifcnt 25, reads 52003, writes 25, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 3: ok, SG min 0, read errors 0, write errors 0, ifcnt 24, reads 52004, writes 24, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 4: ok, SG min 0, read errors 0, write errors 0, ifcnt 24, reads 52005, writes 24, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 5: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 52019, writes 10, timeouts 0, DMA errors 0, CC errors 0
                                    Driver 6: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 52018, writes 10, timeouts 0, DMA errors 0, CC errors 0
                                    Date/time: 2023-01-04 18:09:57
                                    Cache data hit count 2001407507
                                    Slowest loop: 481.32ms; fastest: 0.07ms
                                    === Storage ===
                                    Free file entries: 7
                                    SD card 0 detected, interface speed: 22.5MBytes/sec
                                    SD card longest read time 8.9ms, write time 64.6ms, max retries 0
                                    === Move ===
                                    DMs created 83, segments created 23, maxWait 889131ms, bed compensation in use: mesh, comp offset 0.000
                                    next step interrupt due in 18 ticks, enabled
                                    === DDARing 0 ===
                                    Scheduled moves 2585, completed 2554, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state 3
                                    === DDARing 1 ===
                                    Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                    === Heat ===
                                    Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
                                    Heater 0 is on, I-accum = 0.4
                                    Heater 1 is on, I-accum = 0.0
                                    === GCodes ===
                                    Movement locks held by null, null
                                    HTTP is idle in state(s) 0
                                    Telnet is idle in state(s) 0
                                    File is doing "G1 X129.943 Y210.956 E.06071" in state(s) 0
                                    USB is idle in state(s) 0
                                    Aux is idle in state(s) 0
                                    Trigger is idle in state(s) 0
                                    Queue is idle in state(s) 0
                                    LCD is idle in state(s) 0
                                    SBC is idle in state(s) 0
                                    Daemon is doing "G4 S1                                                                        " in state(s) 0 0, running macro
                                    Aux2 is idle in state(s) 0
                                    Autopause is idle in state(s) 0
                                    File2 is idle in state(s) 0, sync state 1
                                    Queue2 is idle in state(s) 0
                                    Q0 segments left 1, axes/extruders owned 0x0000803
                                    Code queue 0 is empty
                                    Q1 segments left 0, axes/extruders owned 0x0000000
                                    Code queue 1 is empty
                                    === CAN ===
                                    Messages queued 14146, received 25904, lost 0, boc 0
                                    Longest wait 3ms for reply type 6053, peak Tx sync delay 246, free buffers 18 (min 11), ts 6468/6467/0
                                    Tx timeouts 0,0,0,0,0,0
                                    === Network ===
                                    Slowest loop: 483.58ms; fastest: 0.00ms
                                    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
                                    HTTP sessions: 1 of 8
                                    = WiFi =
                                    Network state is active
                                    WiFi module is connected to access point 
                                    Failed messages: pending 0, notready 0, noresp 0
                                    WiFi firmware version 2.1beta2
                                    WiFi MAC address bc:ff:4d:e6:b1:62
                                    WiFi Vcc 3.38, reset reason Power up
                                    WiFi flash size 4194304, free heap 36552
                                    WiFi IP address 192.168.10.50
                                    WiFi signal strength 0dBm, mode 802.11n, reconnections 0, sleep mode modem
                                    Clock register 00002001
                                    Socket states: 0 0 0 0 0 0 0 0
                                    
                                    dc42undefined 1 Reply Last reply Reply Quote 0
                                    • dc42undefined
                                      dc42 administrators @Exerqtor
                                      last edited by

                                      @Exerqtor I found the problem. When a macro file finishes, it was waiting for movement to stop before continuing. I've implemented a fix, which will be in the next RRF 3.5 build.

                                      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

                                      Exerqtorundefined 1 Reply Last reply Reply Quote 3
                                      • Exerqtorundefined
                                        Exerqtor @dc42
                                        last edited by

                                        @dc42
                                        Great news!

                                        1 Reply Last reply Reply Quote 0
                                        • Phaedruxundefined Phaedrux moved this topic from Firmware installation
                                        • First post
                                          Last post
                                        Unless otherwise noted, all forum content is licensed under CC-BY-SA