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

    Closed loop noise/oscillation

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    5
    175
    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.
    • Tech_Sam03undefined
      Tech_Sam03
      last edited by

      Hi,

      i installed two 1hcl boards with magnetic encoders on two A B stepper motors from my core xy printer. I use two LDO-42STH48-2504AC stepper motors with 48V power supply. My problem now is that I can't get rid of slight oscillations without the stepper motors sounding like a starting jet.

      However, if I use a lower P therm:

      • almost no oscillations
      • quieter motors at standstill and lowspeeds
      • higher step error at high speeds

      Higher P therm:

      • slight oscillations
      • loud motors at standstill and lowspeeds
      • lower step error at high speeds

      Higher D therm:

      • no oscillations
      • motor sound like a starting jet
      • almost no step error

      I run the steppers with 2,5A. Is there a way to tune the stepper drivers? How can i reduce noise/oscillation at standstill/lowspeeds but get the best results at high speeds?

      Thanks for help!

      1ba651cd-be15-4979-9ac1-430921542343.jpg

      Tech_Sam03undefined dc42undefined 2 Replies Last reply Reply Quote 0
      • Tech_Sam03undefined
        Tech_Sam03 @Tech_Sam03
        last edited by

        Here`s my config:

         ; Configuration file for RepRapFirmware on Duet 3 Mini 5+ WiFi
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.5.5 on Mon Nov 18 2024 20:57:08 GMT+0100 (Mitteleuropäische Normalzeit)
        
        ; General
        G90                                                                 ; absolute coordinates
        M83                                                                 ; relative extruder moves
        M550 P"CR20NG"                                                      ; set hostname
        M911 S19.8 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"                ; set voltage thresholds and actions to run on power loss
        
        ; Accessories
        M575 P1 S0 B57600 			                                            ; configure PanelDue support
        
        ; Network
        M552 S1 							                                              ; configure WiFi adapter
        M586 P0 S1 						                                              ; configure HTTP
        
        ; Can Board 
        G4 S2                                                               ; wait for expansion boards to start
        
        ; Y Axis
        M569.1 P50.0 T3 E2:3 R30 I1500 D0.05 A85000 V600                    ; Configure the Duet 3 Expansion 1HCL board with a Duet 3 magnetic encoder, warn if 1 fullstep threshold exceeded, error if 2 full steps threshold exceeded.
        M569 P50.0 D4 S1                                                    ; Configure the motor on the Duet 3 Expansion 1HCL controller as being in closed-loop drive mode (D4) and not reversed (S1)
        M584 Y50.0                                                          ; set X drivers
        M584 Y50.0                                                          ; set axis mapping
        M350 Y16 I1                                                         ; configure microstepping with interpolation
        M92 Y80                                                             ; configure steps per mm
        M906 Y2500 I30                                                      ; set axis driver currents
        M208 Y0:248                                                         ; set minimum and maximum axis limits
        
        
        ; X Axis
        M569.1 P51.0 T3 E2:3 R30 I1500 D0.05 A90000 V700                    ; Configure the Duet 3 Expansion 1HCL board with a Duet 3 magnetic encoder, warn if 1 fullstep threshold exceeded, error if 2 full steps threshold exceeded.
        M569 P51.0 D4 S1                                                    ; Configure the motor on the Duet 3 Expansion 1HCL controller as being in closed-loop drive mode (D4) and not reversed (S1)
        M584 X51.0                                                          ; set Y drivers
        M584 X51.0                                                          ; set axis mapping
        M350 X16 I1                                                         ; configure microstepping with interpolation
        M92 X80                                                             ; configure steps per mm
        M906 X2500 I30                                                      ; set axis driver currents
        M208 X0:232                                                         ; set minimum and maximum axis limits
        
        
        ; Z Axis
        M569 P0.0 S1 D3 V0                                                  ; driver 0.0 goes backwards (Z axis)
        M584 Z0.0                                                           ; set axis mapping
        M350 Z16 I1                                                         ; configure microstepping with interpolation
        M92 Z800                                                            ; configure steps per mm
        M906 Z2000 I30                                                      ; set axis driver currents
        M208 Z0:230                                                         ; set minimum and maximum axis limits
        
        ; All Axes
        M203 X700000 Y700000 Z1000                                          ; set maximum speeds (mm/min)
        M566 X3000 Y3000 Z60 P1                                             ; set maximum instantaneous speed changes (mm/min)
        M201 X10000 Y10000 Z400                                             ; set accelerations (mm/s^2)
        M201.1 X200 Y200 Z50                                                ; set special move accelerations (mm/s^2)
        
        ; Extruders
        M569 P124.0 S1 D2                                                   ; driver 124.0 goes forwards (extruder 0)
        M584 E124.0                                                         ; set extruder mapping
        M350 E16 I1                                                         ; configure microstepping with interpolation
        M906 E1200                                                          ; set extruder driver currents
        M92 E685.4                                                          ; configure steps per mm
        M566 E300                                                           ; set maximum instantaneous speed changes (mm/min)
        M203 E7200                                                          ; set maximum speeds (mm/min)
        M201 E3000                                                          ; set accelerations (mm/s^2)
        
        
        ; Accelerometers/Input Shaping
        M955 P124.0 I16                                                     ; configure accelerometer on board #124
        M593 P"EI3" F27,5
        
        ; PZ Probe
        M558 K0 P8 C"!124.io1.in" R0.5 F1000 B1 A2 H6 S0.03                 ; analogue mode, 0.5 sec delay, 400mm/min dive speed, turn off heater during probing, two probes per point, 5mm Dive Height.
        G31 K0 X0 Y0 Z-0.05 P100                                            ; Set probe offset from XYZ to Zero
        M557 K0 X5:228 Y0:222 P5:5                                          ; define bed mesh
         
        ; Trigger
        M950 J1 C"124.io0.in"                                               ; define logical input for filament auto load
        M581 P1 T2 S1 R0                                                    ; define trigger for filament auto load triggers trigger2.g
        M950 J2 C"124.io2.in"                                               ; define logical input for filament unload
        M581 P2 T3 S1 R2                                                    ; define trigger for filament unload triggers trigger3.g
        
        ; Kinematics
        M669 K1                                                             ; configure CoreXY kinematics
        
        ; Endstops
        M574 X1 S3                                                          ; configure X axis endstop
        M574 Y2 S1 P"51.io0.in"                                             ; configure Y axis endstop
        M574 Z1 S2                                                          ; configure Z axis endstop
        
        ; Sensors
        M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B3950          ; configure sensor #0
        M308 S1 P"124.temp0" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1
        M308 S2 P"124.temp1" Y"thermistor" A"Chamber" T100000 B4092          ; configure sensor #2
        M308 S3 P"50.temp1" Y"thermistor" A"B Stepper" T100000 B3950        ; configure sensor #3
        M308 S4 P"51.temp1" Y"thermistor" A"A Stepper" T100000 B3950        ; configure sensor #4
        
        ; Heaters
        M950 H0 C"out0" T0                                                  ; create heater #0 "Bed"
        M143 H0 P0 T0 C0 S125 A0                                            ; configure heater monitor #0 for heater #0
        M307 H0 R0.876 K0.393:0.000 D7.03 E1.35 S1.00 B0                    ; PID parameters heater 0#
        M950 H1 C"124.out0" T1                                              ; create heater #1 "Nozzle"
        M143 H1 P0 T1 C0 S305 A0                                            ; configure heater monitor #0 for heater #1
        M307 H1 R3.475 K0.467:0.585 D2.27 E1.35 S1.00 B0                    ; PID parameters heater 1#
        
        ; Heated beds
        M140 P0 H0                                                          ; configure heated bed #0
        
        ; Tools
        M98 P"revo/config.g" D0 H1 F0
        
        ; Fans
        
        M950 F0 C"124.out2"                                                 ; create fan #0
        M106 P0 C"Part Cooling" S0 L0 X1 B0.1                               ; configure fan #0
        
        M950 F1 C"124.out1"                                                 ; create fan #1
        M106 P1 C"Heatbreak" S0 B0.1 H1 T70                                 ; configure fan #1
        
        M950 F3 C"!out3"                                                    ; create fan #3
        M106 P3 C"6015 Cooling" S0                                          ; configure fan #3
        
        M950 F4 C"50.out0"                                                  ; create led #4
        M106 P4 C"LED" S0                                                   ; configure led #4
        
        M950 F8 C"51.out0"                                                  ; create led #4
        M106 P8 C"LED1" S0                                                  ; configure led #4
        
        M950 F5 C"out5"                                                     ; create fan #5
        M106 P5 C"Chamber Heater" S0 L0 X1 B0.5                             ; configure fan #5
        
        M950 F6 C"out6"                                                     ; create fan #6
        M106 P6 C"Air Filtration" S0 B0.1                                   ; configure fan #6
        
        M950 F7 C"!out4+out4.tach"                                          ; create fan #3
        M106 P7 C"Chamber Exhaust" S0                                       ; configure fan #3
        
        
        ; Extra configs/globals
        if !exists(global.runtime)
          M98 P"0:/sys/time/runtime.g"
        if !exists(global.myTimeStamp)
          M98 P"0:/sys/time/maintenanceLog.g"
        
        M106 P4 S1                                                          ; LED ON
        M106 P8 S1                                                          ; LED1 ON
        M106 P3 S0.2										                                    ; turns on the electronics bay fan
        
        global filamentType = ""                                            ; filament type
        global unloadTemp = 235                                             ; unload temperature
        global exhaustFan = 0.13                                            ; chamber exhaust fan
        global exhaustFanPrint = 0.13                                       ; chamber exhaust fan while printing
        global bedFan = 0                                                   ; bed fan
        T0
        M703
        
        
        

        Here is M122 from one board:

        	m122 b51
        Diagnostics for board 51:
        Duet EXP1HCL rev 1.0a or earlier firmware version 3.5.4 (2024-11-24 10:39:28)
        Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
        All averaging filters OK
        Never used RAM 45616, free system stack 186 words
        Tasks: EncCal(1,nWait 6,0.0%,469) Move(3,nWait 7,0.0%,165) CLSend(3,nWait 6,0.0%,147) HEAT(2,nWait 6,0.1%,105) CanAsync(5,nWait 4,0.0%,66) CanRecv(3,nWait 1,0.0%,65) CanClock(5,nWait 1,0.0%,64) TMC(4,nWait 6,67.1%,325) MAIN(1,running,30.6%,261) IDLE(0,ready,1.0%,29) AIN(2,nWait 2,1.1%,255), total 100.0%
        Owned mutexes:
        Last reset 00:01:39 ago, cause: software
        Last software reset data not available
        Driver 0: pos 0, 80.0 steps/mm, ok, SG min n/a, mspos 8, reads 3184, writes 46433 timeouts 0, steps req 0 done 0
        Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00
        Peak sync jitter -8/7, peak Rx sync delay 188, resyncs 0/0, next timer interrupt due in 5 ticks, enabled, next step interrupt due in 4220425770 ticks, disabled
        VIN voltage: min 48.5, current 48.5, max 48.6
        V12 voltage: min 12.1, current 12.1, max 12.1
        MCU temperature: min 26.6C, current 26.8C, max 26.8C
        Last sensors broadcast 0x00000010 found 1 164 ticks ago, 0 ordering errs, loop time 0
        CAN messages queued 1593, send timeouts 0, received 1671, lost 0, errs 0, boc 0, free buffers 38, min 38, error reg 0
        dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
        Closed loop driver 0 mode: closed loop, pre-error threshold: 2.00, error threshold: 3.00, encoder type rotaryAS5047, position -338
        Encoder reverse polarity: no, full rotations -1, last angle 16044, minCorrection=-11.3, maxCorrection=7.0, agc 74, mag 4688, no error
        Tuning mode: 0, tuning error: 0, collecting data: no
        Control loop runtime (us): min=2, max=62, frequency (Hz): min=9259, max=14423
        Accelerometer: none
        I2C bus errors 6, naks 0, contentions 0, other errors 0
        
        1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @Tech_Sam03
          last edited by

          @Tech_Sam03 have you tried slightly lower P and slightly higher D?

          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

          Tech_Sam03undefined 1 Reply Last reply Reply Quote 0
          • Tech_Sam03undefined
            Tech_Sam03 @dc42
            last edited by

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • Tech_Sam03undefined
              Tech_Sam03
              last edited by

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • Tech_Sam03undefined Tech_Sam03 marked this topic as a question
              • Tech_Sam03undefined Tech_Sam03 has marked this topic as solved
              • Tech_Sam03undefined Tech_Sam03 marked this topic as a regular topic
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA