Bad Vibrations through printer
-
Hey Everyone,
I am having a bit of a strange issue with my printer. For some reason since I have been playing with the design of it by changing lots of things at once, I seem to have picked up some weird harmonics/vibrations. I thought it was coming from the extruder but it was not. It is a core xy and I am using the 1HCL boards but have not got them running with the encoders yet as I have been trying to sort other problems out. Basically it vibrates badly throught-out the printing range. Initially I had a duet 2 and copied everything across and had it has been running fine. I then went and added the new 1HCL boards, new motors, re did the motion system and now have this issue.
I have been playing around tonight with the F parameter in the M569 g-code. Miraculously it fixed the issue. I went from a value to F8 to F10 and then F11 and it made it quiet. I thought happy days, that will silence the other half who has come to despise the noisy white box in the office. I change the parameter in my config file, restarted the printer, and ran a print and it sounded just as bad as it did before. I then moved it back down and it stopped. It seems that by changing that parameter, it is fixing the vibration and it is virtually silent.
What could be going on here?
Config below
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Dec 08 2021 21:12:19 GMT+1300 (New Zealand Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Sam's Printer" ; set printer name M669 K1 ; select CoreXY mode ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives ;M569.1 P10.0 T2 C2500 R30 I9000 D0 ; Configure the 1HCL board at CAN address 10 with a quadrature encoder on the motor shaft that has 12.5 steps per motor full step ;M569.1 P11.0 T2 C2500 R60 I4000 D0 ; Configure the 1HCL board at CAN address 11 with a quadrature encoder on the motor shaft that has 12.5 steps per motor full step ;M569 P10.0 D4 S0 F8 ; Configure the motor on the 1HCL at can address 50 as being in closed-loop drive mode (D4) and not reversed (S0) ;M569 P11.0 D4 S0 F8 ; Configure the motor on the 1HCL at can address 51 as being in closed-loop drive mode (D4) and not reversed (S0) M569 P10.0 S0 F8 ; Non Closed Loop X Configuration M569 P11.0 S0 F8 ; Non Closed Loop Y Configuration M569 P0.2 S0 F10 ; physical drive 0.2 goes forwards M569 P0.3 S0 F10 ; physical drive 0.3 goes forwards M569 P0.4 S1 F10 ; physical drive 0.4 goes forwards M569 P0.5 S1 F10 ; physical drive 0.5 goes forwards M569 P20.0 S1 D2 ; physical drive 20.0 goes forwards M584 X10.0 Y11.0 Z0.2:0.3:0.4:0.5 E20.0 ; set drive mapping ;M350 X32 Y32 ; Closed Loop Configuration microstepping M350 X16 Y16 I1 ; Non Closed Loop Configuration for MicroStepping M350 Z16:16:16:16 U16 V16 W16 E16 I1 ; configure microstepping with interpolation ;M92 X160 Y160 ; Steps per mm Closed Loop Mode M92 X80 Y80 ; Steps per mm Non Closed Loop Mode M92 Z400:400:400:400 U400 V400 W400 E690 ; set steps per mm M566 X100 Y100 Z120:120:120:120 U120 V120 W120 E600 ; set maximum instantaneous speed changes (mm/min) M203 X60000 Y60000 Z400:400:400:400 U400 V400 W400 E7200 ; set maximum speeds (mm/min) M201 X5000 Y5000 Z250:250:250:250 U250 V250 W250 E8000 ; set accelerations (mm/s^2) M906 X1550 Y1550 Z1800:1800:1800:1800 U1800 V1800 W1800 E1200 I60 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ;M917 X80 Y80 ; Set the closed loop axes to have a holding current of zero ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X363.5 Y352 ; set axis maxima M208 Z412 S0 ; set axis maxima M671 X-45:-46:408:405 Y92:296:300:92 S3.0 ; Define the X and Y coordinates of the lead screw. Motor order: FL (1), RL (2), RR (3), FR (4).Snn Maximum correction in mm to apply to each leadscrew ; Endstops M574 X1 S1 P"10.io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin 11.io0.in M574 Y1 S1 P"10.io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin 11.io2.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P8 R1.0 C"!^20.io2.in" H5 F250 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X0 Y0 Z-0.20 ; set Z probe trigger value, offset and trigger height M557 X0:363.5 Y10:352 S20 ; define mesh grid ; Heaters M308 S0 P"spi.cs0" Y"rtd-max31865" ; configure sensor 0 as PT100 on pin spi.cs1 M950 H0 C"out1" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.200 K0.148:0.000 D38.10 E1.35 S1.00 B0 ; disable bang-bang mode for the nozzle heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S150 ; set temperature limit for heater 0 to 150C M308 S1 P"20.temp0" Y"pt1000" ; configure sensor 1 as PT1000 on pin 123.temp0 M950 H1 C"20.out0" T1 ; create nozzle heater output on 123.out0 and map it to sensor 1 M307 H1 R2.366 K0.162:0.000 D9.88 E1.35 S1.00 B0 V24.0 ; PID control Magnum Plus PT1000 ;M307 H1 R2.104 C430.2 D9.13 S1.00 V24.2 ; PID control Magnum Plus PT1000 M143 H1 S400 ; set temperature limit for heater 1 to 400C ; Fans ; Part Cooling Pump M950 F3 c"out2" Q25000 ; Assign Part Cooling Fan to Heater Port 2 M106 P3 X0.5 B0 H-1 C"Part Cooling" ; Part Cooling Fan Remap to Heater 2 ; Water Cooling M950 F4 c"!out6+out6.tach" ; Water Cooling Pump Output M106 P4 H1 B15 L0.3 X0.75 T40:500 C"Extruder" ; Water Cooling Pump Start M308 S10 P"temp0" Y"thermistor" A"Water Temp" T10000 B3950 ; Create Heater for Cooling Water M950 F0 c"!out9" Q25000 ; Assign Fan 0 to Fan 0 Port and Inverse M106 P0 H10 L.3 B.5 T60:80 C"Radiator" ; Set fan 4 PWR fan. Turns on when Radiator temperature (heater 103), hits 30C and full speed when the temperature reaches 60C ;Board Cooling Fan M308 S20 P"mcutemp" Y"mcutemp" A"Duet Board" ; Map Duet MCU to the Extra Table M308 S21 P"10.mcutemp" Y"10.mcutemp" A"Board 10 MCU" ; Map Duet Drivers to the Extra Table M308 S22 P"11.mcutemp" Y"11.mcutemp" A"Board 11 MCU" ; Map Duex2 Driver to the Extra Tabl M308 S23 P"20.mcutemp" Y"20.mcutemp" A"Tool Board MCU" ; Map Duex2 Driver to the Extra Tabl M308 S24 P"temp1" Y"thermistor" A"Control Area" T100000 B3950 ; Create Virtual Heater for Control Area M950 F1 c"!out4+out4.tach" Q25000 ; Assign Fan 1 to Fan 1 Port and Inverse M106 P1 L.3 B.5 T40:65 H20 C"Duet Fan" ; Set fan 1 PWR fan. Turns on when MCU temperature, hits 45C and full when the MCU temperature reaches 65C or if any TMC2660 drivers (virtual M950 F2 c"!out5+out5.tach" Q25000 ; Assign Fan 2 to Fan 2 Port and Inverse M106 P2 L.3 B.5 T40:65 H22 C"Control Area" ; Set fan 2 PWR fan. Turns on when MCU temperature, hits 45C and full when the MCU temperature reaches 65C or if any TMC2660 drivers (virtual ; Tools M563 P0 S"Extruder 1" D0 H1 F3 ; 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 M955 P20.0 I24 ; Accelerometer ;M572 D0 S0.005 ; Pressure Advance ;M592 D0 A0.009541 B0.001755 ; Non Linear Extrusion 0.4mm pla M593 P"zvddd" F60 ; Input Shaping ;Filament out sensor M591 D0 P3 C"20.io1.in" S0 R70:130 L26.26 E3.0 ; magnet sensor for extruder 0 is connected to E2 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length 25.88 M591 D0 ; display filament sensor parameters for extruder drive 0 ;Tool Board Buttons M950 J10 C"20.button1" M581 T2 P10 S1 ; Custom settings are not defined ; Miscellaneous M911 S20 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
Any help would be appreciated. This is when I changed it back and it started vibrating on startup again for which I went back to an F value of 11 and its quiet
Sam
-
-
Can you post a video of what you're seeing?
-
Hey @Phaedrux
Here is a video. Basically the very start of it is how the print will start no matter the F value. I then change the two steppers to a different value and it stops making the noise and goes quiet. I was extruding into thin air when I did this but it is the same when it is printing.
https://youtube.com/shorts/_EP5Q8Ma0PQ
Cheers
Sam -
This post is deleted! -
@samlogan87 I suggest you try using individual motor moves (G91 followed by G1 H2 Xxx or G1 H2 Ynn) to see whether the vibrations are associated with just one of the motors.
-
@dc42 said in Bad Vibrations through printer:
@samlogan87 I suggest you try using individual motor moves (G91 followed by G1 H2 Xxx or G1 H2 Ynn) to see whether the vibrations are associated with just one of the motors.
David. Looking at Sam's video it seems the part is 45 degrees from rear right towards front left, then another 45 degree move at 90 degrees in the opposite direction and the harsh vibration is present during both moves. So the machine being a CoreXY, I'd say it looks like both motors are equally affected.
-
@samlogan87 Sam. I don't have much of an idea but watching your video, it seems to me as if the motors resort to full steps rather than micro-stepping when the harshness is apparent. I could be wrong but it might be a clue???
-
How much tension is there from the tubing going to the print head? Seems to vibrate more as the tubes are bent more.
-
@Phaedrux The noise is gone, after the tool changed direction, even with the tubes still stretched out.
My shot from the hip: It's a belt walking up or down an idler until it rubs on something while moving left. When the tool moves right , the belt walks in the opposite direction. -
Hey everyone,
Thank you for your input thus far. @dc42 as @deckingman mentioned, it is doing it with both motors. @Phaedrux as @o_lampe said, I don't think it is the water cooling pipes as the fittings on the hot end swivel.
@o_lampe I don't think it is that as when I make an adjustment as below, it stops for the entire rest of the printTo elaborate more I guess. If I run the print normally, it will make that sound throughout the entire print. If I change the F parameter in the M569 for the two motors on the fly while printing via the console(eg both to 10), it instantly stops. After I finish a print and I add that value I sent via the console while printing to the config.g file and print again it will make that noise even though it stopped it the first time. Changing the value to something else via the console while printing fixes the issue( eg 11). If I repeat above with this new value it still does it again.
It is something to do either with the motors or the drivers as I can not see how it could be mechanical when by making that adjustment it stops it for the entire rest of the print. I am running the motors on 1HCL boards and I am wondering whether maybe there is something strange going on there. I will try and get the encoders sorted this week, however, I am not wanting to spend too much time on it just in case it causes me issues trying to tune them as well.Pretty stumped with where to go from here.
Cheers
Sam -
@samlogan87 To test my theory about the motors sounding like the drivers are reverting to full step mode, try a print with micro stepping set to 1. If my theory is right, then it should sound harsh throughout and changing the F parameter should have no effect. I could be miles off, but it's a quick test and might provide another data point as to the cause.
-
@samlogan87 With the new information at hand, I think the settings in config.g are ignored, maybe because the communication between main controller and 1HCL isn't established at that time.
That's why sending the M569 line again via DWC works.
There was a bug regarding 'steppers run wrong way' popping up regularly, which was also caused by missed coms between boards.One workaround could be to put these M569 lines in the start code of the slicer or wait and see, what the devs will suggest. ( eg. G4 dwell time in config to give more time for controllers to establish coms?)
-
So I played around again with it. Changing the dwell at the start to 10 seconds did not fix it and I also tried single micro stepping and it was unbelievably noisy so I am still at a loss. @dc42 Is there anything else I could try? I tried not defining the F parameter at all in the config.g file and it is still the same behaviour.
Cheers
Sam -
-
Do you have the specs of the motors?
-
@Phaedrux they are the LDO 2504AC motors. The specs can be found here. Mine have extended shafts for encoders
https://caribou3d.com/en/stepper-motors/843-18-stepper-motor-ldo-42sth48-2504ac.html
Basically max current is 2.5A, phase resistance is 1.2ohm, inductance is 1.5mH, torque is 55n-cm
Cheers
Sam -
@samlogan87 I watched the video. Is it accurate to say that the noise occurs mainly/only when the extruder is near the corner of the bed?
Can you post more photos of the printer, especially the belt layout of the XY mechanism?
-
@mrehorstdmd unfortunately it has nothing to do with the position on the bed or the belts. If you read a couple of replies above, by changing the f parameter in the M569 for the two motors the problem stops and it is quiet throughout the rest of the print no matter where it is on the bed. I only put a short video up to show how changing the parameter fixes the issue and it seems to only be applied when there is a direction change which is why I think people think it has to do with the area on the bed or the belts.
Cheers
Sam -
From DC42: we know that some motors are unpleasantly noisy with the 1HCL and we have significant improvements in the works for 3.5beta4.
Meanwhile, here are some tips on reducing noise in such cases:
-
Use a much lower P value than the auto tune suggests, e.g. 1/3 as much. You may have to accept slightly larger error bounds (M569.1 E parameter).
-
If running firmware 3.5.0beta2 or later, there is a new V parameter in the M569.1 command. A V value of a few hundred may help a lot to allow good speeds even with a lower P value.
-
Don't use the step function or the auto tune function to tune the P value. Instead, set the axis acceleration (M201) to quite a high value e.g. 5000, and tune using an explicit GCode move with acceleration, steady speed and deceleration segments; for example G91 G1 H2 X40 F12000 (assuming your machine can move at 200mm/sec).
-
Having selected a P value, re-tune I and especially D.
-
Re-test at the highest travel speed that you want to use, to make sure that the new P value is sufficient.
-
-
@samlogan87 I would add that the noise/vibration issue referred to by @Phaedrux is specific to closed loop mode. If you are also getting these bad vibrations when you run the motor in open loop mode, then the problem is mechanical.