DAA Ringing help please
I played a little bit with the settings to see if it makes a difference. Thanks for your feedback. Will try it today.
6000 accel and 600 jerk seems a bit odd to me. Are you modifying that in the slicer at all?
What print speed?
Try 2000 accel and 1000 jerk.
DAA isn't magic as you can only target one frequency at the moment.
M584 X0.0 Y0.1 Z0.3:0.4:0.5 E0.2 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z800.00 E418.15 ; set steps per mm M566 X1000 Y1000 Z24 E300 ; set maximum instantaneous speed changes (mm/min) M203 X20000 Y20000 Z600 E3000 ; set maximum speeds (mm/min) M201 X2000 Y2000 Z100 E5000 ; Set accelerations (mm/s^2) M906 X1600 Y1600 Z1600 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M572 D0 S0.06 ; set pressure advance M593 42.7 ; Dynamic Acceleration Adjustment to prevent ringing
Still massive ringing. Any ideas what to try next please?
If you grasp the hotend (when cold!) are you able to wiggle it around? In other words, is there slop on the print head movement? Belts tight?
Drop accel to 1000 and see if it gets better. Then 500. Is there any point where it goes away?
What print speed?
What is the printer?
Hotend is tight. Printer is a BLV mgn cube with Hevort ZR V2 triple axis. This one was printed @100mm and 50mm outer shell. Will try different belt tensions and accel values.
Thanks for your help!
Printing a ringing tower and modify the gcode at various z heights to change the accell/jerk/speed the values on the way up. This can be a big help for tuning out ringing like this. Similar to using a temp tower to find the ideal temp.
The first step is to find the lowest speed settings that doesn't have any ringing and work your way up.
If there is no speed where ringing can be eliminated then It's likely mechanical slop.
Also, disable DAA entirely until you've determined if it's a mechanical issue or not as it could be muddying the waters.
Did some test prints with DAA disabled.
To be honest I don't know what to do now Not that big differences?!
Well it definitely gets worse at the high end of acceleration.
For my external walls if I want absolutely no sign of ringing I use 600 accel and 600 jerk (and then higher for other print moves). So maybe give that a shot.
Though there still appears to be some additional mechanical noise that shows up in the repeating ridges on the long straight that don't seem to die down.
Photo of your printer?
DAA works best when XY jerk is low, jerk mode is 0, and acceleration is high. Your slicer may insert commands to change the jerk (M205 or M566) or acceleration (M201 or M204), so check that your gcode print file doesn't contain those.
The disadvantage of setting jerk too low is that it slows down curves.
Did a lot of test prints and found out that especially decreasing the maximum printing acceleration (M204) is having a huge impact on ringing.
Best values for outer shells I've found so far:
M566 X300 Y300 M201 X6000 Y6000 M204 P500
Added this to my S3D post-processing script:
[...] elif line.startswith('; feature outer perimeter'): linesNew.append('; feature outer perimeter\nM566 X300 Y300\nM201 X6000 Y6000\nM204 P500\n') elif line.startswith('; feature inner perimeter'): linesNew.append('; feature inner perimeter\nM566 X1000 Y1000\nM201 X2000 Y2000\nM204 P10000\n') elif line.startswith('; ; feature solid layer'): linesNew.append('; feature solid layer\nM566 X1000 Y1000\nM201 X2000 Y2000\nM204 P10000\n') elif line.startswith('; feature infill'): linesNew.append('; feature infill\nM566 X1000 Y1000\nM201 X2000 Y2000\nM204 P10000\n') [...]
Will test this further.
Of course this will slow down the print massive but only for the outer shell. Let's see if this is something I can live with Beside of that I think I also have a Y axis issue because ringing is always a lot of "stronger" on the Y axis. X axis looks quite better.
I think I cracked it down and found the best compromise between ringing and accel/jerk. It turned out that my ringing frequency is as low as 4.1.
But bet? Now I have another problem
Gcode looks like
[...] ; feature outer perimeter M566 X500 Y500 M201 X6000 Y6000 M204 P500 G1 X155.200 Y174.800 F9000 G92 E0.0000 G1 X155.200 Y155.200 E0.6128 F900 G1 X174.800 Y155.200 E1.2256 G1 X174.800 Y174.800 E1.8384 G1 X155.200 Y174.800 E2.4511 ; feature solid layer M566 X1000 Y1000 M201 X2000 Y2000 M204 P10000 G1 X156.789 Y173.760 F9000 G92 E0.0000 G1 X156.240 Y173.211 E0.0243 F1800 G1 X156.240 Y172.645 E0.0420 G1 X157.355 Y173.760 E0.0913 G1 X157.921 Y173.760 E0.1090 G1 X156.240 Y172.079 E0.1833 G1 X156.240 Y171.513 E0.2010 [...]
Although the M566/M201/M204 values are set correctly at the right positions (and verified during printing via console) the solid layer is not printed with the current active values. It is as "lazy" as the outer permimeters. How can that be? Or is it not supported to change these parameters frequently during prints?
Got rid of it by disabling DAA for non outer permimeters. Will test this now.
If someone is interested here's the code snippet:
linesNew =  for line in lines: if line.startswith('M557'): linesNew.append(re.sub(r'^M557 X\d+:\d+ Y\d+:\d+ S\d+:\d+', gridNew, line, flags=re.MULTILINE)) elif line.startswith('; feature'): if "outer perimeter" in line: linesNew.append(line + 'M566 X500 Y500\nM201 X6000 Y6000\nM204 P500\nM593 F4.1\n') else: linesNew.append(line + 'M566 X1000 Y1000\nM201 X2000 Y2000\nM204 P10000\nM593 F0\n') else: linesNew.append(line) return linesNew
M201 X2000 Y2000 M204 P10000
Don't use M201 at all in this case as it's setting the upper limit. Just set it once in config.g. M204 is the intended way to change it during the print. So in your example, M204 isn't having any effect because 10000 is greater than the 2000 limit set.
Makes sense. Thanks for pointing this out.