Loud z axis motor irrespective of micro-stepping
-
Hi everyone. I've been experiencing some issues with my Z axis motor. It is a 42HB34F04ASG-09 from Bohong. The specs are:
Step angle: 1.8
Rated voltage: 13.2
Current: 0.4A/phase
Resistance: 33 ohms/phase
Inductance: 45 mH/phase
Holding torque: 2.4 kg/cmThe integrated lead screw is TR8 with 4 starts, 300mm.
I am using a Duet 3 Mini. My config.g is:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves ; 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 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X128 Y128 E64 I0 ; configure microstepping without interpolation M350 Z16 I1 ; configure microstepping with interpolation M92 X711.00 Y711.00 Z400.00 E582.00 ; set steps per mm M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z360.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z50.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-45 Y0 Z0 S1 ; set axis minima M208 X230 Y150 Z150 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!xstop" ; configure active-high endstop for high end on X via pin !xstop M574 Y2 S1 P"!ystop" ; configure active-high endstop for high end on Y via pin !ystop M574 Z1 S1 P"!zstop" ; configure active-high endstop for low end on Z via pin !zstop ; Z-Probe M558 P0 H-5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X-30:215 Y15:125 S20 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) M308 S0 P"spi.cs1" Y"thermocouple-max31856" ; configure sensor 0 as thermocouple via CS pin spi.cs1 M950 H0 C"e0heat" T0 ; create nozzle heater output on e0heat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H0 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ; Tools M563 P0 D0 H0 F0:1 ; 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 ; Custom settings M671 X65:165:116 Y10:10:150 ; set positions of bed levelling screws ; Miscellaneous T0 ; select first tool
As can be seen, I have set the Z axis stepper current to 400mA, with x16 micro-stepping with interpolation. With these settings, I am getting a lot of noise:
https://www.dropbox.com/s/k89gnkdi3inhgwb/16_interp_400mA.mov?dl=0
This is using the following gcode:
M350 Z16 I1 M92 Z400 M906 Z400 G28 Z G1Z10 G1Z0
I installed a stepper damper between the motor and the chassis hoping that it would reduce the noise, however it didn't make any difference.
I have tried every micro-stepping setting (interpolated and not) and its compensated steps/mm, and it didn't make any difference with the noise. The only thing that made a difference was increasing the current.
This is with 800mA:
https://www.dropbox.com/s/iqo8btcrsayl4ys/16_interp_800mA.mov?dl=0
It removes the high frequency, but it is still very loud.
Has anyone run into a problem such as this before? How can I reduce the noise?
Thanks!
-
I should also mention that I am running the printer on 24V.
According to the EMF calculator for 800mA, it says:
Approximate peak back EMF due to rotation per motor: 6.5 V at 200.0 mm/s Approximate peak back EMF due to inductance per motor: 56.5 V at 200.0 mm/s Step pulse frequency: 16.0 kHz at 200.0 mm/s Speed at which torque starts to drop (low slip angle): n/a Speed at which torque starts to drop (high slip angle): n/a
For 400mA:
Approximate peak back EMF due to rotation per motor: 6.5 V at 200.0 mm/s Approximate peak back EMF due to inductance per motor: 28.3 V at 200.0 mm/s Step pulse frequency: 16.0 kHz at 200.0 mm/s Speed at which torque starts to drop (low slip angle): 106.7 mm/s @ 8.5 kHz Speed at which torque starts to drop (high slip angle): 126.5 mm/s @ 10.1 kHz
The back EMF due to inductance is very high. Is this the cause?
-
@j3d said in Loud z axis motor irrespective of micro-stepping:
Step angle: 1.8
Rated voltage: 13.2
Current: 0.4A/phase
Resistance: 33 ohms/phase
Inductance: 45 mH/phase
Holding torque: 2.4 kg/cmI would say those motors aren't very suitable for a 3d printer. You should seek out motors with a lower inductance.
https://duet3d.dozuki.com/Wiki/Choosing_and_connecting_stepper_motors
-
@j3d
I'd also scream with a current 2 times of max. current.
Even 0.4A is too much, better go for 80% of max current or the steppers will get pretty hot.
Did you try to run the motors without the Bed (no load)?
Where does the noise come from, the leadscrews are OK?
Greased and run-in?Also your test code has no speed limit. Try to add a
G1 F180
before G28 Z, which is half speed. Those leadscrews get really loud when driving too fast.
-
@j3d said in Loud z axis motor irrespective of micro-stepping:
The back EMF due to inductance is very high. Is this the cause?
Yes. If the motors are run at a current/speed combination that makes the peak back emf greater than the VIN supply voltage, then the drivers can't generate a smooth current waveform and the motors will be noisy.
-
It may be worth trying to get them to run in stealthchop rather than spreadcycle, try adding V20 to your M569 for whichever motor you are using for Z.
-
@o_lampe
The lead screw is oiled, and it still makes the noise when the bed has been removed. The lead screw is straight.Setting the motor current to 300mA made no difference.
I changed my test gcode to include your change. No difference.
I changed the max requested speed in the EMF calculator to what I actually set (60mm/s) and the results are better, however in practice, it's still quite loud.
Approximate peak back EMF due to rotation per motor: 3.9 V at 60.0 mm/s Approximate peak back EMF due to inductance per motor: 6.4 V at 60.0 mm/s Step pulse frequency: 4.8 kHz at 60.0 mm/s Speed at which torque starts to drop (low slip angle): 121.6 mm/s @ 9.7 kHz Speed at which torque starts to drop (high slip angle): 163.2 mm/s @ 13.1 kHz
@gloomyandy Unfortunately setting the driver to spread cycle didn't make a difference either.
I'll put in an order for another motor. Fingers crossed!
-
@j3d What change did you actually make? My suggestion was to keep the driver in stealthchop mode, not to use spreadcycle. By default it will be switching to spreadycycle at a pretty low speed, spreadcycle can on some motors produce a noise like the one you are hearing.
-
Thanks @gloomyandy, I misunderstood. Changing it to:
M350 Z16 I1 M92 Z400 M906 Z300 M569 D3 P0.2 V20 G1 F60 G28 Z G1 Z10 F60 G1 Z0 F60
made it silent. Thank you so much!
-
@j3d
Glad you found a solution.
The speed setting in G1 moves are in mm/min while the calculations of the EMF tool are in mm/sec
So your setting of F60 might be very slow.
I doubt the leadscrews will be silent at F3600, but you will find a max. speed you can live with.