Motor Whine/Loud Movement
-
Hey, I'm a little sad to find that after powering up and configuring my Delta for the first time, the motors are quite loud, both when moving and when idle.
Specs: Duet 2 Wifi
Latest firmware
Steppers : Nema 17 Bipolar 0.9deg 65.1 oz/in 2A 2.8V 3.0mH 1.4ohm from steppers online
24V meanwell PSUI've tried settings all the way from 800mA to 1800mA with little change in the sound. I'm using 1/16 interpolated µstepping.
Current config:
; Drives
M569 P0 S0 ; Drive 0 goes forwards
M569 P1 S0 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes forwards
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
M92 X160 Y160 Z160 E663 ; Set steps per mm
M566 X1200 Y1200 Z1200 E1200 ; Set maximum instantaneous speed changes (mm/min)
M203 X18000 Y18000 Z18000 E1200 ; Set maximum speeds (mm/min)
M201 X1000 Y1000 Z1000 E1000 ; Set accelerations (mm/s^2)
M906 X1400 Y1400 Z1400 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeoutAny help would be appreciated. I'd like to know how to mess with the 2660's spreadcycle parameters to see if that helps. Also, potentially the minimum step time is wrong? Idk.
edit: Also, the whine frequency changes each time it's moved in x/y. Reminds me a lot of when I tried to set up TMC2130s on my old printer with a 12v PSU, it did the exact same thing.
-
@pungoboy said in Motor Whine/Loud Movement:
Any help would be appreciated. I'd like to know how to mess with the 2660's spreadcycle parameters to see if that helps. Also, potentially the minimum step time is wrong? Idk.
In this thread: https://forum.duet3d.com/topic/5392/does-m906-set-rms-or-peak-current/18
You can find some information on how to mess around with the chopper configuration of the drivers and some values I found to be better and some to be always worse.
If you need it, I could upload my small tool to parametrically create the required integer bitmask.I recomment to first try to change
TOFF
and afterwards have a look atHSTRT/HEND
.edit: Also, the whine frequency changes each time it's moved in x/y.
According to the document linked in the other thread by dc42 it is normal to have different noise levels at different motor positions.
-
@wilriker said in Motor Whine/Loud Movement:
https://forum.duet3d.com/topic/5392/does-m906-set-rms-or-peak-current/18
I could definitely use some help generating the proper values to input, I only vaguely know the word bitmask and I'd like to not damage my nice new Duet messing about with it.
-
@pungoboy Are you able to compile an executable with the programming language Go? I could then upload the source code somewhere. Otherwise tell me what OS and CPU you are using and I could compile a matching version for you.
EDIT: I just uploaded the source code as well as three precompiled binaries for Windows/Linux/Mac AMD64 to https://github.com/wilriker/chopconf-generator (binaries can be found at https://github.com/wilriker/chopconf-generator/releases).
There is also some very short usage description.
-
Thanks for the quick response, I'll let you know if I run into any trouble.
-
@wilriker said in Motor Whine/Loud Movement:
In this thread: https://forum.duet3d.com/topic/5392/does-m906-set-rms-or-peak-current/18
You can find some information on how to mess around with the chopper configuration of the drivers and some values I found to be better and some to be always worse.
If you need it, I could upload my small tool to parametrically create the required integer bitmask.I recomment to first try to change
TOFF
and afterwards have a look atHSTRT/HEND
.Could you provide chopper configuration values for various TOFF values, so that users who only need to change TOFF can try them?
BTW you should be able to use hex values for the CCR in the M569 command if you prefix them with 0x. That makes computing bitmaps easier.
-
@dc42 said in Motor Whine/Loud Movement:
Could you provide chopper configuration values for various TOFF values, so that users who only need to change TOFF can try them?
Of course:
TOFF=0
->M569 C65968
(this means motors are off!)TOFF=1
->M569 C65969
TOFF=2
->M569 C65970
TOFF=3
->M569 C65971
TOFF=4
->M569 C65972
TOFF=5
->M569 C65973
TOFF=6
->M569 C65974
TOFF=7
->M569 C65975
TOFF=8
->M569 C65976
TOFF=9
->M569 C65977
TOFF=10
->M569 C65978
TOFF=11
->M569 C65979
TOFF=12
->M569 C65980
TOFF=13
->M569 C65981
TOFF=14
->M569 C65982
TOFF=15
->M569 C65983
You'll have to add at least the
Pnnn
parameter to specify the motor.BTW you should be able to use hex values for the CCR in the M569 command if you prefix them with 0x. That makes computing bitmaps easier.
I will have a look at my tool tomorrow to output hex values optionally
-
Do not use these - see below
So here is the same list as above just with hexdecimal notation:
TOFF=0
->M569 C0x101b0
TOFF=1
->M569 C0x101b1
TOFF=2
->M569 C0x101b2
TOFF=3
->M569 C0x101b3
TOFF=4
->M569 C0x101b4
TOFF=5
->M569 C0x101b5
TOFF=6
->M569 C0x101b6
TOFF=7
->M569 C0x101b7
TOFF=8
->M569 C0x101b8
TOFF=9
->M569 C0x101b9
TOFF=10
->M569 C0x101ba
TOFF=11
->M569 C0x101bb
TOFF=12
->M569 C0x101bc
TOFF=13
->M569 C0x101bd
TOFF=14
->M569 C0x101be
TOFF=15
->M569 C0x101bf
-
@dc42 said in Motor Whine/Loud Movement:
BTW you should be able to use hex values for the CCR in the M569 command if you prefix them with 0x. That makes computing bitmaps easier.
I only now tried to use hex value but any hex value is treated like 0, e.g.
M569 P2 S0 C0x101b4
(firmware defaults just explicitly provided as hex) will turn the motor off due the fact that when treated as0x0
it will setTOFF=0
which means motors off.Running
M569 P2
will though output the value as hex (when provided in decimal notation the correct corresponding hex value is output otherwise0x00000
). -
Fair enough, looks like hex input no longer works. So use the decimal values that @wilriker provided.