Massive Vibrations with Duet3 & NEMA23 drives



  • Hello dear community,

    I have the problem with one of my printers that the Y-axis causes strong vibrations in the printing part. The printer is a Cartesian with two Y-motors which are controlled with separate drivers. The motors are high-quality motors from NanoTec from Munich.

    I've tried a lot with the engine parameters.
    I have already varied speed change, Acc and motor current.

    NanoTec_NEMA23_SCA5618X2804-A.pdf

    Here are some pics of the printed parts:

    Swing2.jpg Swing1.jpg

    Here is the config:

    ; Configuration file for Duet 3 (firmware version 3)
    
    
    ; General preferences
    G90            ; send absolute coordinates...
    M82            ; and absolute extruder moves
    M550 P"I655-S" ; set printer name
    
    ; Network
    M552 S1        ; enable network 
    M586 P0 S1     ; enable HTTP
    M586 P1 S0     ; disable FTP
    M586 P2 S0     ; disable Telnet
    
    
    
    ; Drives
    
    M569 P0.0 S1 D2  ; physical drive 0.0 goes forwards Z0
    M569 P0.1 S1 D2  ; physical drive 0.1 goes forwards Z1
    M569 P0.2 S1 D2  ; physical drive 0.2 goes forwards Z2
    M569 P0.3 S0 D2  ; physical drive 0.3 goes forwards X0 
    M569 P0.4 S0 D2  ; physical drive 0.4 goes backwards E0
    M569 P0.5 S0 D2  ; physical drive 0.5 goes backwards E1
    
    M569 P1.0 S0 D2  ; physical drive 1.0 goes forwards X1 (U)
    M569 P1.1 S0     ; physical drive 1.0 goes forwards Y0
    M569 P1.2 S1     ; physical drive 1.0 goes forwards Y1
    
    ;New Mapping
    M584 X1.0 Y1.1:1.2 U0.3 Z0.0:0.1:0.2 E0.4:0.5  ; set drive mapping
    
    ;Leadscrews Z-Axis
    M671 X711:315:-88 Y15:585:15 S10 ; leadscrews at each corner
    
    
    M350 X16 Y16 U16 Z16 E16:16 I1  ; configure microstepping 
    M92 X80.40 Y35.56 U80.45 Z1600 E414:414 ;set steps per mm
    M566 X400 Y400 U400 Z12 E600:600   ;set maximum instantaneous speed changes (mm/min)
    M203 X30000 Y30000 U30000 Z1000 E9000:9000      ;set maximum speeds (mm/min)
    M201 X1000 Y1100 U1000 Z200 E1000:1000            ;set accelerations (mm/s^2)
    
    M906 X1200 Y2200 U1200 Z1500 E1000:1000 I30  ;set motor currents (mA)
    M84 S30             		    ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 U91 Z0 S1     ; set axis minima
    M208 X460 Y500 U548 Z500 S0         ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!io0.in" ; active-high endstop for low end on X via pin io0.in
    M574 U2 S1 P"!1.io4.in" ; active-high endstop for high end on U via pin 1.io1.in
    M574 Y2 S1 P"!1.io5.in" ; active-high endstop for high end on Y via pin 1.io2.in
    M574 Z1 S2
    
    ; Z-Probe 
    M558 K0 P8 C"^!io2.in" H5 F300 T8000 A3 S0.07; Z probe type -> Induktiv
     
    
    
    ;Z-Probe Piezo
    ;M558 P5 C"!io3.in" R1.0 K0 H5 F200 T6000 ; Z probe type -> Piezo
    ;M558 P5 C"!io4.in" R1.0 K1 H5 F200 T6000 ; Z probe type -> Piezo
    ;G31 K0 P100 X0.0 Y0.0 Z-0.30
    ;G31 K1 P100 X0.0 Y0.0 Z-0.30
    
    M557 X90:450 Y32:360 P08:08      ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4092          ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out0" T0                                    ; create bed heater output on out0 and map it to sensor 0
    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 S120                                          ; set temperature limit for heater 0 to 120C
    
    M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1                                    ; create nozzle heater output on out1 and map it to sensor 1
    M307 H1 B0 S1.00                                      ; disable bang-bang mode for heater  and set PWM limit
    
    M308 S2 P"temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin temp2
    M950 H2 C"out2" T2                                    ; create nozzle heater output on out2 and map it to sensor 2
    M307 H2 B0 S1.00                                      ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    
    M950 F0 C"out4"                                   ; create fan 2 on pin out4 and set its frequency
    M106 P0 S0 H-1                                        ; set fan 2 value. Thermostatic control is turned off
    M950 F1 C"out5"                                  ; create fan 3 on pin out5 and set its frequency
    M106 P1 S1 H2:1 T50                                   ; set fan 3 value. Thermostatic control is turned off
    
    M950 F6 C"out6" 
    M106 P6 S0
    
    
    ; Tools
    M563 P0 S"Links" D0 H1 F0  ; define tool 0
    G10 P0 X0 Y0 Z0 S210 R210        ; set tool 0 axis offsets
    M563 P1 S"Rechts" D1 H2 X3 F0   ; define tool 1
    G10 P1 Y0 U0 Z0 S210 R210        ; set tool 1 axis offsets
    
    
    
    
    ; Custom Safety Settings 
    
    ; Open Door Switch
    
    M950 J0 C"!1.io0.in" 
    M950 J1 C"!1.io1.in"
    M950 J2 C"!1.io2.in"
    
    M581 P0 S1 T2 R0
    M581 P1 S1 T2 R0
    M581 P2 S1 T2 R0
    
    ; Emergency Stop
    M950 J3 C"!1.io3.in"
    M581 P3 T0 S0 R0		;trigger #0 (calls trigger0 -> Emergency-Stop)
    
    ; Filament sensor
    M950 J4 C"!io3.in"			;left Filament Sensor 
    M581 P4 T4 R0	
    
    M950 J5 C"!io4.in"			;right Filament Sensor
    M581 P5 T4 R0	  
    
    
    ; LEDs
    ; Colour Blue
    M950 F2 C"out3" Q500  ; create fan 3 on pin out5 and set its frequency
    
    ; Colour Red
    M950 F3 C"1.out0" Q500  ; create fan 3 on pin out5 and set its frequency
    
    ; Colour Green
    M950 F4 C"1.out1" Q500  ; create fan 3 on pin out5 and set its frequency
    
    ; Colour White
    M950 F5 C"1.out2" Q500  ; create fan 3 on pin out5 and set its frequency
    
    M98 P"LEDTourquise.g"
    
    
    ; Miscellaneous
    
    M501          ; load saved parameters from non-volatile memory
    
    M98 P"startup_temperature.g"
    M98 P"LEDtouequise.g"
    
    M570 H1 P8 T25 S200 	;Configurate Heater Fault Detection 
    M570 H2 P8 T25 S200 ;Configurate Heater Fault Detection 
    
    M572 D0 S0.03
    

    Does anyone have any idea what's wrong here?

    I've already built very similar printers, they weren't as massive as this model. However, these printers at that time had NEMA17 motors installed ...

    And here a pic of the printer at itself...

    IMG_20200727_070647.jpg

    Thank you a lot! πŸ™‚



  • First, very nice looking printer!

    Second, at what print speed are you trying to print those perimeters? I see similar effects when trying to print curves at ~100 mm/s. I think it's because of belts not being rigid enough to change direction that fast.

    With increased size of printer, comes increased weight. Could this be it? The added weight of the gantry of the larger model is causing the belts to produce such motion?



  • @CR3D I would check the pulleys of y (at stepper and at the other end) and extruder and that the stepper shafts are rotating round without vibration. The waves are 2 mm long, in x direction also, so I would check the extruder first.

    Less probable your x gantry stucks every 2 mm (slow down and accelerate) because gantry is too stiff between the two y guides.

    Maybe the bed vibrates, as the z linear guide is connected with the y guides. You should be able to see (or feel) it directly where is the reason.

    Less probable is that the two y stepper have different properties (eg different pulleys) and fight each other.


  • Moderator



  • First of all, thank you very much for your answers πŸ™‚

    @bot thanks for your compliment! Now if it would also print well everything would be great! 🐢
    the perimeters were printed at approx. 60mm / s. the belts are very well tensioned at the moment.

    @JoergS5

    The pulleys really run very smoothly and evenly. These are very high quality pulleys from misumi for the 15mm gt3 belts (3mm Belt Pitch)

    -> What do you mean with: "Less probable your x gantry stucks every 2 mm (slow down and accelerate) because gantry is too stiff between the two y guides." ?

    What is to stiff?

    @Phaedrux
    Thank you for the link!

    Unfortunately, I don't quite understand the subject yet! Could someone help me with the parameter finding?
    I use the motor from the data sheet above on the Y-axis

    In addition to the bad surfaces, I have increased layer shifts in the Y direction!

    I would be very grateful if you could help me!
    Regards Christian



  • @CR3D said in Massive Vibrations with Duet3 & NEMA23 drives:

    What do you mean with: "Less probable your x gantry stucks every 2 mm (slow down and accelerate) because gantry is too stiff between the two y guides." ?

    I mean, the X gantry is moving on two Y rails which have a specific distance. If this distance is too low or high or the gantry is tilted, the friction will be high and an uneven torque of the stepper/belt system will lead to uneven movement.
    The distance can change through changed temperature e.g.
    Less probable because I expect you checked that the gantry moves smoothly.

    I expect the solution is, if you find out where the 2 mm frequency comes from (visible in both x and y direction), you know the reason.

    It's interesting that the belts are 3 mm, so they cannot be the reason.

    The article https://hackaday.com/2020/08/19/re-imagining-the-crossed-gantry-3d-printer/ has a lot of useful information about ghosting in the user comments section.





  • Are you using a Duet 2 (WiFi or Ethernet) or Duet 3?
    (asking just to double check, I see 'Duet 3' at the top of your config.g)

    I don't believe this is caused by your Nema23s. Nanotec makes nice stepper motors. I could see it being caused by having two steppers on two different drivers BUT I will not be diagnosing that, if it were the issue.

    Do you note the Nema23s getting OVERLY hot (above the temperature in which the insulation would fail)? I run OrientalMotor Nema23s with similar specs (higher torque but lower inductance) and they stay cool to the touch at 2.4amps on a Duet 2. If using a Duet3 I would run your Nema23s at 2.4A, but thats your call (double check the calculations for your machine).

    Which direction is the Y and X axes? Like the image below or the opposite?

    e8090ad1-0089-4d7e-9efc-e3e3b35210e2-image.png

    If you had a theoretical object, say 500mm long in the Y axis, does this ripple/'vibration' occur for the entire 500mm length, or only the first 50mm? Can you feel the vibration?

    I see no mention of M593, Dynamic Acceleration Adjustment in your config.g. I would recommend implementing that and reporting back.



  • @sebkritikel I have a Duet 3 and a Duet 2 Ethernet.

    For my cartesion printer, I have: M593 F23, for my Duet 2 Ethernet and the prior Duet 085.

    Currently don't have it set for my corexy that has the duet 3.



  • @Stephen6309 said in Massive Vibrations with Duet3 & NEMA23 drives:

    @sebkritikel I have a Duet 3 and a Duet 2 Ethernet.

    For my cartesion printer, I have: M593 F23, for my Duet 2 Ethernet and the prior Duet 085.

    Currently don't have it set for my corexy that has the duet 3.

    On my IDEX setup I have M593 ~F25 to combat ringing artifacts specifically as a result of ringing from the X and U axis.



  • @sebkritikel

    Thank you for your response! The part was printed as your picture shows ....

    I use the Duet 3 and I also think the problem is the firmware settings and not the steppers themselves ...

    I can feel the ripple along the whole object ... that's that strange for me ...

    the axes themselves run very smoothly and do not jam.

    A change in the acceleration values ​​can affect the shape of the waves ...

    @JoergS5

    ok now i understand what you meant!

    Yes, I've already checked it, the axes run very smoothly. The printed image occurs in a cold and in a warm state.

    I have been building the mechanical structure for about a year. Cartesian with two separate Y-motifs. So far it has always been NEMA 17 motors and the Duet Wifi.

    That was the reason why I first blamed the bigger motors or the other drivers.

    I once read a post by @dc42, where he said NEMA 23 tend to vibrate.

    on the subject of M593:

    How do you find the Find the right frequency?


  • administrators

    @CR3D said in Massive Vibrations with Duet3 & NEMA23 drives:

    I once read a post by @dc42, where he said NEMA 23 tend to vibrate.

    What I think I said, which was based on something I had read elsewhere, was that when designing a stepper motor there is a balance to be had between smoothness of microstepping (i.e. how consistent the size of each microstep is) and torque; and that Nema 17 motors were typically designed to favour smooth microstepping, whereas Nema 23 motors were typically designed to favour maximum torque.

    All stepper motors suffer from mid-band resonance, which is caused by the inherent elasticity of the magnetic forces combined with the rotor inertia. However, mid-band resonance tends to occur at travel speeds, not printing speeds.

    I suggest the following test. Print a long wall along the X or Y direction, which slopes back by 1mm for every 5mm of height. Change the print speed by a significant amount (e.g. halve it) after you have printed 10mm of height. Does the pattern continue over the whole length of the wall, or is it stronger at the starting end? Is the pattern vertical, or has the slight slope changed it to that it runs diagonally? Does the spacing in the pattern change when the print speed changed?



  • that is a 2mm pitch. are your belts 2mm pitch as well?

    maybe running tooth belt on a smooth idler.



  • @Veti they are GT3 3 mm belts, please see above.



  • @CR3D said in Massive Vibrations with Duet3 & NEMA23 drives:

    @sebkritikel

    Thank you for your response! The part was printed as your picture shows ....

    I use the Duet 3 and I also think the problem is the firmware settings and not the steppers themselves ...

    I can feel the ripple along the whole object ... that's that strange for me ...

    the axes themselves run very smoothly and do not jam.

    A change in the acceleration values ​​can affect the shape of the waves ...

    @JoergS5

    ok now i understand what you meant!

    Yes, I've already checked it, the axes run very smoothly. The printed image occurs in a cold and in a warm state.

    I have been building the mechanical structure for about a year. Cartesian with two separate Y-motifs. So far it has always been NEMA 17 motors and the Duet Wifi.

    That was the reason why I first blamed the bigger motors or the other drivers.

    I once read a post by @dc42, where he said NEMA 23 tend to vibrate.

    on the subject of M593:

    How do you find the Find the right frequency?

    Unfortunately I cannot find where it was written, but if the picture is as you say, the ripples are likely not caused by the Y stepper motors, but the the movement of the print head wobbling parallel to the X axis while the gantry moves down the Y axis.

    Please run the test DC42 recommended and report back to us.

    For specifically M593:
    'To measure the ringing frequency, take a print that exhibits ringing on the perimeters (for example a cube), preferably printed single-wall or external-perimeters-first. Divide the speed at which the outer perimeter was printed (in mm/sec) by the distance between adjacent ringing peaks (in mm). When measuring the distance between peaks, ignore peaks close to the corner where the ringing started (these peaks will be spaced more closely) because the print head will have been accelerating in that area.'

    If the perimeter is 60mm/s, and the 'waves' are 2mm pitch, 60mm/s / 2mm = 30 1/s, so "M593 F30; frequency 30hz"


Log in to reply