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

Slowdowns / Pauses (PID algorithm and PWM freq.?...)

Scheduled Pinned Locked Moved
General Discussion
3
17
914
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.
  • undefined
    Argo
    last edited by Argo 14 Mar 2021, 11:27

    Hi,

    I've spent many hours finding a solution to a new issue I've had and thought I'd share this bit of information to the forum in case someone else has this problem.

    Issue: Slowdowns during probing and short pauses only when the extruder and bed heater are turned on.
    This is not happening when the bed and extruder heater are turned off.

    I've recorded the short print pause. At second 6 you can see that the printer is pausing for a short time and then continues.
    https://www.youtube.com/watch?v=wd7UHM3LHCA

    Also during probing moves the printer had short slowdowns.

    So, what did I change? I just recently read here in the forum that the bed heater should be set to 10hz PWM because someone was complaining about a loud noise from the bed heater.
    Well, so I changed it to 10hz and stupidly forgot that I did the change yesterday. Whenever you change something in your config, write it down in a changelog. Lesson learned!

    So, when using the new heating PID algorithm don't use a slow PWM frequency for the (bed) heater. With 10hz I had slowdowns. No I've put the PWM back to my old value, which is 100hz, and the printer runs fine without pauses or slowdowns.

    Edit: Problem is still there. Probing does occur without slowdowns but they still happen during the print.

    undefined 1 Reply Last reply 14 Mar 2021, 11:36 Reply Quote 0
    • undefined
      deckingman @Argo
      last edited by 14 Mar 2021, 11:36

      @Argo There is something wrong there somewhere. Is your bed heater 12/24V and if so, is your power supply up to the job? 10Hz for a bed heater is usually fine and if you use an SSR, it is preferable.

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

      undefined 1 Reply Last reply 14 Mar 2021, 11:41 Reply Quote 0
      • undefined
        Argo @deckingman
        last edited by Argo 14 Mar 2021, 11:41

        @deckingman

        I've tested it with a Delta 250w and Meanwell 350w PSU. Both are 24v. The bed heater is also 24 volts.

        Printer is (was) a Prusa Mk3 printer.

        After I discovered that the slowdowns are related to the bed heater, I disabled PID, enabled Bang-Bang and the issue was gone. Then I remembered that I lowered my PWM frequency from 100hz to 10hz which started the issue. So I set it back to 100hz, re-enabled my PID tuning and the problem was gone.

        I don't see what else could cause this?

        undefined 1 Reply Last reply 14 Mar 2021, 11:49 Reply Quote 0
        • undefined
          deckingman @Argo
          last edited by 14 Mar 2021, 11:49

          @Argo I think it must in some way be related to you having a 24v heater (although I have no idea why). I've always used 10Hz and still do - in fact until very recently that was the default frequency for bed heaters because they are often used with SSRs. But then, for the last "n" years, I've always used mains powered bed heaters.

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

          undefined 1 Reply Last reply 14 Mar 2021, 11:53 Reply Quote 0
          • undefined
            Argo @deckingman
            last edited by 14 Mar 2021, 11:53

            @deckingman

            Are you already using the new PID tuning? I think it was implemented with RRF 3.2

            undefined 1 Reply Last reply 14 Mar 2021, 12:04 Reply Quote 0
            • undefined
              deckingman @Argo
              last edited by deckingman 14 Mar 2021, 12:04

              @Argo said in Slowdowns with new PID algorithm and low PWM freq.:

              @deckingman

              Are you already using the new PID tuning? I think it was implemented with RRF 3.2

              PID tuning has been around since Adam was a boy šŸ™‚ The algorithm changed in RRF3.2 but I've been using it for years. Having said that, I have not PID tuned the bed heater with the latest algorithm.

              EDIT. I lied - just checked my config.g file and I see this

              M307 H0 R0.104 C2186.5 D28.16 S1.00 B0 V0; auto tune 08/01/2021 using RRF 3.2. 
              

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

              undefined 1 Reply Last reply 14 Mar 2021, 12:15 Reply Quote 0
              • undefined
                Argo @deckingman
                last edited by 14 Mar 2021, 12:15

                @deckingman

                Yes, that's the new PID 😃
                The old PID didn't have the "R" value if I remember correctly.

                "V0" You are using a SSR? Then maybe your other assumption is right that it may have something to do with whether is a 24v (12v?) heater or not. But that's also only a assumption on my side.

                undefined 1 Reply Last reply 14 Mar 2021, 12:22 Reply Quote 0
                • undefined
                  deckingman @Argo
                  last edited by deckingman 14 Mar 2021, 12:22

                  @Argo said in Slowdowns with new PID algorithm and low PWM freq.:

                  ............ The old PID didn't have the "R" value if I remember correctly.

                  That's correct. Being a sad old git, I always comment out the old PID values when I enter a new one. That way one can revert back easily if something doesn't work as expected.

                  So I also have ......

                  ;M307 H0 A230.8 C2252.5 D20.3 S1.00 B0 V27.3 ; auto tune 06/08/2019
                  

                  EDIT. In the above case, the "V" was irrelevant because it's a mains heater with SSR.

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

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Argo
                    last edited by Argo 14 Mar 2021, 12:52

                    I did some research and found Prusa dev blog article about the topic:

                    "Prusa Dev Diaries #2: How we made the heatbed silent:"
                    https://blog.prusaprinters.org/dev-diary-2-how-we-made-the-heatbed-silent_30946/

                    I don't know though what is transferable to Duet hardware.
                    They are also describing slow downs with specific frequencies.

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      Argo
                      last edited by 14 Mar 2021, 13:24

                      The slowdown are still there.

                      After changing the PWM frequency to 100hz I could probe without slowdowns but during a print they still happen. Then I removed the "Q" flag as my old Duet 2 config also didn't use it. But it still happens...

                      https://www.youtube.com/watch?v=1WkCpfci4O4
                      (don't mind the sewing machine in the background)
                      The slowdowns always happen at corners. For the next test I'll disable pressure advance.

                      M122:

                      m122
                      === Diagnostics ===
                      RepRapFirmware for Duet 3 Mini 5+ version 3.3beta2 running on Duet 3 Mini5plus Ethernet (standalone mode)
                      Board ID: ZDWF8-8296U-D65J0-40KMU-J603Z-77MM8
                      Used output buffers: 1 of 40 (13 max)
                      === RTOS ===
                      Static ram: 99720
                      Dynamic ram: 101012 of which 200 recycled
                      Never used RAM 39916, free system stack 110 words
                      Tasks: NETWORK(ready,225) ETHERNET(notifyWait,569) HEAT(delaying,299) CanReceiv(notifyWait,943) CanSender(notifyWait,358) CanClock(delaying,339) TMC(notifyWait,100) MAIN(running,363) IDLE(ready,20) AIN(delaying,260)
                      Owned mutexes:
                      === Platform ===
                      Last reset 00:16:22 ago, cause: software
                      Last software reset at 2021-03-14 14:00, reason: User, GCodes spinning, available RAM 39916, slot 1
                      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
                      Error status: 0x00
                      Aux0 errors 0,0,0
                      Aux1 errors 0,0,0
                      Supply voltage: min 0.0, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
                      Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/158/122, gc cycles 0
                      Driver 0: position 24640, ok, SG min/max 0/432, read errors 0, write errors 1, ifcnt 68, reads 8503, writes 18, timeouts 0, DMA errors 0
                      Driver 1: position 19797, ok, SG min/max 0/432, read errors 0, write errors 1, ifcnt 65, reads 8290, writes 18, timeouts 213, DMA errors 0, failedOp 0x06
                      Driver 2: position 2159, standstill, SG min/max 0/312, read errors 0, write errors 1, ifcnt 59, reads 8503, writes 15, timeouts 3, DMA errors 0, failedOp 0x71
                      Driver 3: position 0, standstill, SG min/max 0/386, read errors 0, write errors 1, ifcnt 50, reads 8252, writes 12, timeouts 256, DMA errors 0, failedOp 0x41
                      Driver 4: position 0, standstill, SG min/max 0/314, read errors 0, write errors 1, ifcnt 59, reads 8506, writes 15, timeouts 0, DMA errors 0
                      Driver 5: position 0, assumed not present
                      Driver 6: position 0, assumed not present
                      Date/time: 2021-03-14 14:17:03
                      Cache data hit count 1406805765
                      Slowest loop: 158.68ms; fastest: 0.11ms
                      === Storage ===
                      Free file entries: 9
                      SD card 0 detected, interface speed: 22.5MBytes/sec
                      SD card longest read time 7.2ms, write time 148.3ms, max retries 0
                      === Move ===
                      DMs created 83, maxWait 158038ms, bed compensation in use: mesh, comp offset 0.000
                      === MainDDARing ===
                      Scheduled moves 10999, completed moves 10963, hiccups 0, stepErrors 0, LaErrors 0, Underruns [1, 0, 18], CDDA state 3
                      === AuxDDARing ===
                      Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                      === Heat ===
                      Bed heaters = 0 -1, chamberHeaters = -1 -1
                      Heater 0 is on, I-accum = 0.4
                      Heater 1 is on, I-accum = 0.8
                      === GCodes ===
                      Segments left: 1
                      Movement lock held by null
                      HTTP is idle in state(s) 0
                      Telnet is idle in state(s) 0
                      File is doing "G1 F1800.000" 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
                      Aux2 is idle in state(s) 0
                      Autopause is idle in state(s) 0
                      Code queue is not empty:
                      Queued 'M106 S249.9' for move 10985
                      1 of 16 codes have been queued.
                      === Filament sensors ===
                      Extruder 0 sensor: ok
                      === CAN ===
                      Messages queued 9142, send timeouts 9138, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 17 (min 16)
                      Last cancelled message type 4514 dest 127
                      === Network ===
                      Slowest loop: 148.43ms; fastest: 0.03ms
                      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
                      HTTP sessions: 1 of 8
                      - Ethernet -
                      State: active
                      Error counts: 0 0 0 0 0
                      Socket states: 2 2 2 2 2 0 0 0

                      config.g

                      ; General preferences
                      G90 ; Send absolute coordinates...
                      M83 ; ...but relative extruder moves
                      ; Network
                      M550 P"Pruset II MK3s" ; Set machine name
                      M552 S1 ; Enable network
                      ;*** Access point is configured manually via M587
                      M586 P0 S1 ; Enable HTTP
                      M586 P1 S0 ; Disable FTP
                      M586 P2 S0 ; Disable Telnet
                      M575 P1 S1 B57600 ; Panel Due
                      ; Drive Mappings
                      M569 P0.0 S1 V0 ; Drive 0: X Axis
                      M569 P0.1 S0 V0 ; Drive 1: Y Axis
                      M569 P0.2 S1 V0 ; Drive 2: Z Axis
                      M569 P0.3 S1 V0 ; Drive 3: E Axis
                      M569 P0.4 S1 V0 ; Drive 4: E1 used for Z1
                      ; Motor remapping for dual Z and axis Limits
                      M584 X0 Y1 Z2:4 E3 ; two Z motors connected to driver outputs Z and E1
                      M671 X-37:287 Y0:0 S10 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
                      ; Micrpstepping and Speed
                      M350 X32 Y32 E16 Z16 I1 ; Configure microstepping with interpolation
                      M92 X200.00 Y200.00 Z400.00 E415.00 ; Set steps per mm
                      ; Speeds, Acceleration and Jerk
                      M566 X240.00 Y240.00 Z24.00 E270.00 P1 ; Set maximum instantaneous speed changes (mm/min)
                      M203 X7200.00 Y7200.00 Z723.00 E1200.00 ; Set maximum speeds (mm/min)
                      M201 X1250.00 Y1250.00 Z1000.00 E500.00 ; Set accelerations (mm/s^2)
                      M204 P1250.0 T1250.0 ; set print and travel accelerations (mm(s^2)
                      ; Motor currents
                      M906 X800.00 Y850.00 Z700.00 E550.00 I15 ; Set motor currents (mA) and motor idle factor in percent
                      M84 S30 ; Set idle timeout
                      ; Printer geometry
                      M208 X0:250 Y-4:215 Z-0.5:205 ; Axis Limits
                      M564 H0 ; allow unhomed movement
                      ; Endstops for each Axis
                      M574 X1 S3 ; Set endstops controlled by motor load detection
                      M574 Y1 S3 ; Set endstops controlled by motor load detection
                      ; Stallgaurd Sensitivy
                      M915 X S-2 F0 H200 R0 ; Set X axis Sensitivity
                      M915 Y S0 F0 H200 R0 ; Set y axis Sensitivity
                      ; Input Shaper
                      ;M593 F58.5 P4 S0.2 ; Input Shaping 3.3/3.4
                      M593 F58.5
                      ; Z-Probe Super PINDA
                      M574 Z1 S2 ; Set endstops controlled by probe
                      M558 P5 C"^io3.in" I1 H1 F570 T6000 A50 S0.005 ; PINDA
                      ; Mesh Grid and Sheets
                      M557 X24:233 Y15:195 P8 ; Define mesh grid for probing
                      ;G31 P1000 X23 Y5 Z1.530 ; Textured Sheet
                      G31 P1000 X23 Y5 Z1.215 ; PEI Sheet
                      ; Heatbed Heaters and Thermistor Bed
                      M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.060000e-8 ; Set thermistor + ADC parameters for heater 0 Bed
                      M950 H0 C"out0" T0 ; Creates Bed Heater
                      M307 H0 R0.276 C365.2 D12.50 S1.00 V24.0 B0 ; PID 3.2
                      M140 H0 ; Bed uses Heater 0
                      M143 H0 S120 ; Set temperature limit for heater 0 to 120C Bed
                      ; HotEnd Heaters and Thermistor HotEnd
                      M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 ;define E0 temperature sensor e3d
                      M950 H1 C"out1" T1 ; Create HotEnd Heater
                      M307 H1 R2.301 C162.7:122.2 D7.10 S1.00 V24.3 B0
                      M143 H1 S285 ; Set temperature limit for heater 1 to 285C HotEnd
                      M302 S185 R185
                      ; Fans
                      M950 F1 C"out5" Q100 ; Creates HOTEND Fan
                      M106 P1 T45 S210 H1 ; HOTEND Fan Settings
                      M950 F0 C"out6" Q100 ; Creates PARTS COOLING FAN
                      M106 P0 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off PARTS COOLING FAN
                      ; Tools
                      M563 P0 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 0C
                      ; StealthCop calibration
                      M17
                      G4 P150
                      G1 X1 Y1 Z1
                      G4 S2
                      M84 ; disable motors
                      ; Filament Sensor Logic
                      M98 P"0:/macros/02_Functions/StartupFilamentSensorCheck" ; Runout Sensor Logic: Startup with filament = runout sensor active Startup without filament = autoload active
                      deckingmanundefined 1 Reply Last reply 14 Mar 2021, 13:39 Reply Quote 0
                      • deckingmanundefined
                        deckingman @Argo
                        last edited by deckingman 14 Mar 2021, 13:39

                        @Argo Yes, your extruder jerk is really low and there is an interaction between extruder jerk and pressure advance. So if disabling PA cures the pauses, whack the extruder jerk up. It does no harm to set it really high as there are very few instances when it would ever come into play. I have mine set to 3600 (you have 270). I'd also whack the extruder acceleration up too. If it's too low, then it could slow down any XYE print moves. Similarly to extruder jerk, I set extruder acceleration really high (6000) so that it's out of the way.

                        Edit. .......and changing jerk policy to 0 might help.

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

                        Argoundefined 1 Reply Last reply 14 Mar 2021, 14:03 Reply Quote 0
                        • Argoundefined
                          Argo @deckingman
                          last edited by Argo 14 Mar 2021, 14:03

                          @deckingman

                          Disabling PA does not cure the problem. When it happens it always pauses directly on the apex of a corner.

                          With my Duet 2 I never had problem with jerk policy set to 1.
                          The problems come and go with this new board though. 😿

                          Timeline with issues so far:

                          • Duet 3 Mini arrived - flashed latest stable 3.3.2 release: homing brutally crashes. In the forums i found a thread about a sensorless homing bug in 3.2.2. Version 3.3b1 fixes the issue
                          • 3.3b1 flashed: extruder is skipping steps / under-extrudes a lot. So I took the source code of 3.2.2 and took the one file that fixes sensorless homing from 3.3b1 and compiled my own working 3.2.2 and reported the bug on the forum. Printer worked like a charm (and I should've better stopped here 🐶 )
                          • 3.3.b2 was released so I wanted to give it a try. Same issue as with 3.3b1. Flashed back to 3.2.2 and everything worked as expected. Then I got some instructions on how to test 3.3b2 for specific issues so I reflashed 3.3b2 and the underextrusion issue was gone, which I can't really explain why.
                          • New issue since then with 3.3b2 and 3.2.2: Slowdowns during probing and short pauses during a print. Adjusting to a higher PWM frequency fixed the probing slowdowns but the pauses during the print are still there.

                          Something is still off here. I was also expecting that there was a hidden gcode somewhere in the Slicer start gcode that enables debugging during a print but setting PWM to 10hz outside a print could reproduce the slowdowns during G29 probing. I also have no daemon.g with some messy code that might draw CPU power from the board.
                          Speaking of CPU power. Is there a way to see how much CPU power is used? I never really bothered with debugging but maybe that might help.

                          deckingmanundefined 1 Reply Last reply 14 Mar 2021, 14:56 Reply Quote 0
                          • deckingmanundefined
                            deckingman @Argo
                            last edited by 14 Mar 2021, 14:56

                            @Argo I appreciate that you used jerk policy 1 before with Duet 2 but have you tried setting it to 0 with this board/firmware combination? Does the slow down correspond with layer change? Alternatively, do you use Z hop during retraction? - if so try disabling it. I'd be inclined to disable all the "embellishments" like input shaping, mesh grid, stall guard to see if that makes a difference and of so, then re-enable them one at a time.

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

                            Argoundefined 1 Reply Last reply 14 Mar 2021, 15:07 Reply Quote 1
                            • Argoundefined
                              Argo @deckingman
                              last edited by Argo 14 Mar 2021, 15:07

                              @deckingman

                              Thanks for your help. Of course I tried your suggestion before posting. šŸ™‚
                              Right now I've disabled / changed the following features:

                              • input shaper (DAA) off.
                              • dynamic fan speed (slicer)
                              • jerk policy sest to 0

                              The issue does not happen during a layer change. It happens always at the outer perimeter at the on a test Voron Cube.
                              It also happens at the exact same spot when printing the outer perimeter.

                              Right now I'm suspecting a Slicer issue/bug to be honest. The Voron cube has many overhangs paired with 45° corners.

                              The problem with those problems I'm having that they can be quite similar but have nothing to do with each other, like the problem with the probing slow downs when the PWM frequency is low. My thought was slow down, ok, when the print is having slow downs it must be the same issue but now I think it isn't.

                              I'll do another print and disable all overhang detection features in the Slicer software and report back.

                              EDIT.

                              Yes. The slow down during the print was a actual bug with the Slicer software and it's overhang detection and has nothing to do with the probing slowdowns when having a low PWM bed frequency. Right now I'm using 100hz for heater and fans. I don't know if that makes sense for the electronics of the board but probing does not slow down anymore with that frequency.

                              deckingmanundefined 1 Reply Last reply 14 Mar 2021, 16:08 Reply Quote 0
                              • deckingmanundefined
                                deckingman @Argo
                                last edited by 14 Mar 2021, 16:08

                                @Argo It's an easy trap to fall into. Problem A is caused by xyz, problem B looks just like A so one naturally thinks the cause is the same xyz,

                                So, in summary you just have weird behaviour when probing and when the bed PWM frequency is set to 10Hz. Increasing the bed PWM frequency to 100 Hz fixes the problem. Is that correct?

                                If so, then I'm not likely to be able to help because I don't use a Z probe (long story but I use a kinematic mount and have things arranged such that the nozzle acts as a switch for homing Z - the bed is mechanically flat and level so I don't use any form of firmware compensation).

                                But to help others help you, I suggest you provide more details. i.e. the board type, firmware version, what type of probe you use, etc. And maybe a short video clip showing the behaviour at 10Hz and again at 100Hz.

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

                                1 Reply Last reply Reply Quote 0
                                • Argoundefined
                                  Argo
                                  last edited by 14 Mar 2021, 16:32

                                  @deckingman
                                  The pause during print has been fixed. It was a bug in the Slicer software

                                  Taking your advice to sum the issue up:
                                  Slowdown during probes with low PWM bed frequency. After read the recommendation in the forum to use 10hz it began to have slowdowns during the probing sequence.

                                  Printer: Prusa MK3*ish printer. With Super PINDA probe. Mk3 heated bed 24v.

                                  Board: FIRMWARE_NAME: RepRapFirmware for Duet 3 Mini 5+ FIRMWARE_VERSION: 3.3beta2 ELECTRONICS: Duet 3 Mini5plus Ethernet FIRMWARE_DATE: 2021-03-10 13:41:12

                                  Bed PWM frequency at 10hz:

                                  https://www.youtube.com/watch?v=OEk7ahEcNFs

                                  By hearing at the tone you notice tiny little hiccups / slowdowns. Those are gone going up to 100hz PWM for the bed heater.

                                  droftartsundefined 1 Reply Last reply 14 Mar 2021, 17:19 Reply Quote 0
                                  • droftartsundefined
                                    droftarts administrators @Argo
                                    last edited by 14 Mar 2021, 17:19

                                    @Argo I’d guess the bed pwm is interfering with the probe. You can turn off heaters when probing, using the B parameter of M558. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M558_in_RepRapFirmware_Num_3

                                    Ian

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

                                    1 Reply Last reply Reply Quote 0
                                    3 out of 17
                                    • First post
                                      3/17
                                      Last post
                                    Unless otherwise noted, all forum content is licensed under CC-BY-SA