Resonance, spreadCycle and stealthChop
-
@dc42 I think the documentation is confusing people, me included, so I went to he source code:
Setting the T param on the 22XX chips does nothing:
https://github.com/Duet3D/RepRapFirmware/blob/7c571137d68a1a2de0d79e2dc1741793a96c7279/src/Movement/StepperDrivers/TMC22xx.cpp#L611Only the 51XX chip family writes the register:
https://github.com/Duet3D/RepRapFirmware/blob/7c571137d68a1a2de0d79e2dc1741793a96c7279/src/Movement/StepperDrivers/TMC51xx.cpp#L513The register it writes to is
TCOOLTHRS
see here. The documentation for M915 says that T sets the "CoolStep control register", which I think a whole lot of users assumed was the "CoolStep config register" referenced here. The config register is written to but only via the set stall detect threashold and set stall detection filer.So the calculator that people are using doesn't do what they think it does. There is no way to write all the bits of the CoolStep config registers with M915. Any large values supplied to the T parameter get truncated to 20 bits and shoved into
TCOOLTHRS
. I don't think anyone pointed out this confusion.I think the documentation here and here should be updated to say that T writes to
TCOOLTHRS
. The only accurate description of how this works is here.Also, my Duet3 board has 5160's, verified by inspection.
-
@garethky said in Resonance, spreadCycle and stealthChop:
After some more testing this is a mixed bag.
[snip]
I read your interesting report and it's exactly my experience. In real life printing I can't use switching from stealth to spread, jolts and lost steps... it's a nightmare. At "high" speed stealth is not usable, not just for the noise but it loses steps. Unfortunately that happens already at around 130mm/s (with my motors).
So honestly I don't know what else to do apart throwing more money into motors or trying a corexyuv.
Long story short, I don't think this is an issue that can be solved with stealthchop
-
@matt3o said in Resonance, spreadCycle and stealthChop:
I read your interesting report and it's exactly my experience. In real life printing I can't use switching from stealth to spread, jolts and lost steps... it's a nightmare. At "high" speed stealth is not usable, not just for the noise but it loses steps. Unfortunately that happens already at around 130mm/s (with my motors).
So honestly I don't know what else to do apart throwing more money into motors or trying a corexyuv.
Long story short, I don't think this is an issue that can be solved with stealthchop
Agreed. I'm happy that I got it to work but unhappy with being limited to 150mm/sec. I'd like to see 300 max when loaded with a tool and maybe 500 when no tool is loaded.
I'm going to try the 1.8 degree 2 Amp steppers that the Voron community are recommending. But that is the last stepper I'm going to mess with. Seeing the StealthChop results we know its not the mechanical system that's at fault.
-
@garethky said in Resonance, spreadCycle and stealthChop:
I'm going to try the 1.8 degree 2 Amp steppers that the Voron community are recommending.
if they are the Moons 1.8° 2A, don't do it, I have them, they are good but they don't solve the issue (you just move the resonance to a different frequency). Also to be really fair, I get a much better surface texture with 0.9° on my corexy.
-
Would it be possible to add a command to write directly to the driver control registers for those who know what they are doing? (I would love to kill my chips in experimenting, my system has two more drivers than I really need! )
-
-
@matt3o said in Resonance, spreadCycle and stealthChop:
@garethky said in Resonance, spreadCycle and stealthChop:
I'm going to try the 1.8 degree 2 Amp steppers that the Voron community are recommending.
if they are the Moons 1.8° 2A, don't do it, I have them, they are good but they don't solve the issue (you just move the resonance to a different frequency). Also to be really fair, I get a much better surface texture with 0.9° on my corexy.
I have the Moons now. The Voron recommendation is the Stepper Online 17HS19-2004S1. I'm going with 1.8 because top speed is related to steps/second in the driver. I don't hold out much hope but it was cheap to try.
-
@garethky keep us posted!
-
@matt3o not sure if you've seen it before, but @Nxt-1 went through a lot of noise reduction stuff on his big delta a few months ago and did a very good job of writing it up. He even tried reinforcing the printer with concrete struts! In the end I think the maim source of noise was the motors themselves, so he got best results by fitting a torsional damper onto the motor shaft itself. I'm toying with the idea of getting some for my printer now too.
There's three long threads on it, but the final one sums it up best:
https://forum.duet3d.com/topic/18281/battling-sources-of-vibration-and-noise/82 -
@engikeneer thanks for the heads up, I'll have a look at that post, I made all kind of tests and I'm 99% sure the problem is with the motor shaft itself (not even the motor body). So what you say makes a lot of sense to me
-
So the StepperOnline 17HS19-2004S1, I'll admit I was skeptical. It doesn't sound any quieter in Stealth Chop mode, if anything its noisier. But in Spread Cycle, its significantly quieter and smoother than the Moons. So quiet that I think I could live with them in Spread Cycle mode in general and leave them on the printer. That's a big deal if you are on the Duet 2 and don't have access to Stealth Chop.
The other big difference is the low frequency rumble is greatly reduced.
I don't know why any of this is so?
The moons are 1.04 Ohm and 2.2mH
The Stepper Online motor is 1.4Ohm and 3.0mH -
@garethky I believe my problem is mostly the length of the belts. I have a 400x400 print area and belts are about 3m per side... but of course I could be wrong.
As you've probably seen in the video I posted the vibrations at 4000mm/m are really bad and I doubt new motors would solve the issue completely. But thanks for your report, they are rather inexpensive motors I might give them a try.
In the meantime I'm converting my corexy into a corexyuv. Shorter belts and motors don't play against each other. I think I'm gonna make the first XY test later today... wish me luck...
-
@matt3o said in Resonance, spreadCycle and stealthChop:
,..........In the meantime I'm converting my printer in a corexy into a corexyuv. Shorter belts and motors don't play against each other. I think I'm gonna make the first XY test later today... wish me luck...
I'm a bit confused by that. Did you really mean CoreXYUV or something else? It's just that a CoreXYUV use two gantries, stacked one above the other. So the belt lengths are the same (but you have more of them).
On the resonance thing, does it impact on print quality or are you simply trying to reduce the noise? If it's the former, there is a very simple solution.
-
@deckingman said in Resonance, spreadCycle and stealthChop:
I'm a bit confused by that. Did you really mean CoreXYUV or something else? It's just that a CoreXYUV use two gantries, stacked one above the other. So the belt lengths are the same (but you have more of them).
each gantry has it's own belts. So instead of 2x3m I have 4x1.2m and motors don't play against each other (I do not get resonance on diagonals).
@deckingman said in Resonance, spreadCycle and stealthChop:
On the resonance thing, does it impact on print quality or are you simply trying to reduce the noise? If it's the former, there is a very simple solution.
no, I don't care about the noise, it's a performance/quality issue.
-
@matt3o I'm also confused by what it is you are moving to. Can you post a diagram of the new belt layout? I assume your comment about not having resonance on diagonals refers to the "old" corexy setup?
-
@gloomyandy said in Resonance, spreadCycle and stealthChop:
I assume your comment about not having resonance on diagonals refers to the "old" corexy setup?
yes, on a corexy I don't get resonance on diagonals. In what I'm building I have individual X and Y axis so only one motor moves to go in straight lines.
This is an old picture but should give you an idea. (yeah to be honest I don't know what is the name of this config. I believe I've seen it referenced as corexyuv once).
-
@matt3o That ain't CoreXYUV. It looks like Cartesian with two X motors and two Y motors. If you try to run CoreXYYUV kinematics on that, bad things will happen.
-
This, is CoreXYUV https://www.youtube.com/watch?v=mTPV3Ss1D-4&t=752
-
@deckingman my bad
-
@matt3o said in Resonance, spreadCycle and stealthChop:
@deckingman my bad
No worries.
BTW, the reason why you don't get resonance on a CoreXY when doing diagonals, might be speed related rather than simply the fact that just a single motor is employed. The way the belt paths are arranged on a CoreXY, means that when doing pure X or pure Y moves, the belts actually move something like 1.4X the carriage distance. So for any given carriage move at any given constant speed, the motor speed could be 1.4x different purely depending on the direction of travel. Easy to test - try doing 45 degree diagonal moves at 1.4x the speed that you get resonance on pure X or Y and see if the resonance returns. (EDIT - or it be 1.4X slower - can't remember which way round it is).
And finally, if you don't care about the noise but want to improve print quality (assuming that you really do have issues due to resonance), then simply add mass to the hot end. That probably goes against everything you've read because the 3D printing community has a fixation about reducing moving mass (despite the fact that mass is not a limiting factor of print speed). Any vibration due to the motors will be transmitted to the hot end via the belts. This vibration can set up a sympathetic resonance in the hot end if the mass is low (think tuning fork). By adding mass, you lower the resonant frequency of the hot end (think tuning fork with very thick prongs) so that it won't vibrate - or at least, it will vibrate at a much lower frequency.
It's easy to test - visit you local tyre fitting company and scrounge some stick on wheel balancing weights. Stick one on the hot end and be amazed