Cura uses concentric circles to fill will be a layer of lag
-
I conducted a test, and if the extruder grows close to 0 and there are many cuts nearby, there will be vibration.
-
@fly Try tweaking the line width and reslice.
-
@fly, do you have pressure advance enabled? If yes, try setting it to zero. If that stops the stuttering, then the reason may be that Cura is not generating moves with a uniform extrusion rate. We have a GCode analyser that can look at this in more detail.
-
After testing, the DUET2 motherboard will not vibrate when the heating is not turned on. When the heating is turned on, it will vibrate even if the set temperature is 0. What I get roughly means that as long as the E extruder is involved, it will vibrate.
Test version 3.3 b1/3.3 b2
-
@dc42 There is no advance squeeze setting found in my config,So duet officially needs to be tested
-
@dc42 When the E command is close to 0, the gcode parser should ignore the value of E and only keep the XY parameter, which should solve this problem
-
@fly post your config.g file (copy the text and use the code snippet tool). That way we can see any issues in there, and have a go at recreating the problem.
-
@engikeneer It has nothing to do with the configuration file, gcode parsing problem. You can test the gcode I sent, or modify the filling mode of cura.
-
This is the configuration tested on my duet2 motherboard on ender3
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Apr 17 2021 11:41:47 GMT+0800 (中国标准时间); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S0 ; physical drive 0 goes forwards
M569 P1 S0 ; physical drive 1 goes forwards
M569 P2 S0 ; physical drive 2 goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E420.00 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.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
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X230 Y210 Z200 S0 ; set axis maxima; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M558 P1 C"zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds
G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X15:215 Y15:195 S20 ; define mesh grid; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 F0 ; 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 are not defined
-
This is the configuration I used on a large machine, using the stm32 motherboard, and using an external driver
; Configuration file for Fly-E3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.1-LPC on Mon Jan 18 2021 15:03:24 GMT+0800 (中国标准时间); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S1 T5.0:2.0:5:0.4 R1 ; physical drive 0 goes forwards using default driver timings
M569 P1 S0 T5.0:2.0:5:0.4 R1 ; physical drive 1 goes backwards using default driver timings
M569 P2 S1 T1.0:1.0:0.2:0.2 ; physical drive 2 goes forwards using A4988 driver timings
M569 P3 S0 T1.0:1.0:0.2:0.2 ; physical drive 3 goes forwards using A4988 driver timings
M569 P4 S0 T1.0:1.0:0.2:0.2
M584 X0 Y1 Z2 E3:4 ; set drive mapping
M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
M92 X266.67 Y266.67 Z1600.00 E92.65:92.65 ; 脉冲
M566 X500.00 Y500.00 Z10.00 E80.00:80.00 ; 最大速度变化mm/秒
M203 X30000.00 Y30000.00 Z600.00 E4800.00:4800.00 ;最大速度 (mm/min)
M201 X700.00 Y700.00 Z100.00 E700.00:700.00 ; 加速度 (mm/s^2)
M906 X800 Y800 Z800 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X600 Y600 Z63 S0 ; set axis maxima; Endstops
M574 X2 S1 P"!xstopmax" ; configure active-high endstop for high end on X via pin !xstop
M574 Y1 S1 P"!ystop" ; configure active-high endstop for low 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 P9 H4.5 F360 T8000 C"^probe" ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:565 Y15:565 S28 ;
G31 P1000 X-30. 5 Y-3 Z2.891 ;
M950 S0 C"servo0" ;
; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bed" T0 ; create bed heater output on bed and map it to sensor 0
M307 H0 R0.162 C136.2 D3.10 S1.00 V0.0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 R2.457 C230.3 D4.65 S1.00 V0.0 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off; Tools
M563 P0 D0 H1 F0 ; 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
M563 P1 D1 H1 F0 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0; Custom settings are not defined
M575 P1 S0 B57600
; Miscellaneous
T0 ; select first tool
M280 P0 S160 -
@fly I just ran your gcode files on my machine. CoreXY with Duet Wifi on RRF3.2.2.
other.gcode seems to have printed fine - smooth & no jerking motion at all.
second-lap.gcode does produce a vibrating motion like you describe. If however, I slow it down a lot (e.g. to 20%), the motion it smooth, but I can see the circle it prints isn't quite perfect (you can see the facets from the stl file and the line width varies a little)I think that the issue you are seeing is related to some non-uniform extrusion rate as DC42 suggested. You can see in the snippet of the gcode you posted that the extrusion rate is varying. It jumps from ~0.01438mm to 0.00005mm in one line (line 16 to 17), so it goes from extruding to stopping, then back to extruding again in three lines of gcode (in about 10ms of time at a motion speed of 4800mm/min). I calculate that as a speed change of about 160mm/min inboth directions for your extruder (-160mm/min then +160mm/min) which is higher than your jerk setting of 120mm/min (and 80mm/min on the other printer). There are some even higher jumps in the problem file looking at your graphs. The extruder has to be able to keep up with the motion requested and will slow/stop the xyz motion if it can't. Again, as DC42 said, if you have any pressure advance set (I do), this may make things worse as the pressure advance will be applied on top of the extisting fluctuations. All this is the Duet behaving as expected I think.
So your options are:
- Increase your extruder jerk (M566) significantly so that it doesn't impact/limit the motion planning
- Change your slicer settings so the gcode they output is more consistent (e.g. alter your line widths so the additional line is a more consitent size like @mrehorstdmd suggested)
- Change your stl file. It might be that the facets on the inner/outer surfaces are making the rim thickness of your part vary, hence the problem line has all these non-uniform extrusion rates.
-
Seems like expected behaviour from Cura actually. How it handles single width fill lines is pretty abysmal.
You can try this version of Cura that has some fixes for that behaviour. https://github.com/smartavionics/Cura/releases
Or try Prusa Slicer which has really good gap fill behaviour by comparison.
-
@engikeneer The M83 command is used in the gcode of RRF, which is not 0.01438mm to 0.00005mm. After extruding 0.01438mm, it will extrude 0.00005mm relative to 0.01438mm.
Modifying the speed and acceleration of the extruder is invalid. I have tried it many times.
Running this kind of gcode in marlin firmware will not have this use case, so I think the firmware program may also have bugs. -
@mrehorstdmd said in Cura uses concentric circles to fill will be a layer of lag:
@fly Try tweaking the line width and reslice.
@phaedrux said in Cura uses concentric circles to fill will be a layer of lag:
Seems like expected behaviour from Cura actually. How it handles single width fill lines is pretty abysmal.
You can try this version of Cura that has some fixes for that behaviour. https://github.com/smartavionics/Cura/releases
Or try Prusa Slicer which has really good gap fill behaviour by comparison.
Also if Cura is an amazing program is not perfect. I'm agree...the issue is in Cura. I lost age to try to figure it out and even on the Ultimaker forum there is no solution.
Just try to use different width for internal or external lines (or for the nozzle in general - 0,41 etc - , find the right combo and save the profile for this specific part). Sometime we expect that the program is capable to slice as better as we can image but it is not.
The vibration is generated by the slicer because the mess of micro variations. For my delta I can confirm this. (hundreds of attempts)
The concentric patter is the worst in Cura. (just in case, disable "spiralized", it is good for vase but not for thick wall with infill) -
@fly my calculations are still correct. To extrude 0.01438mm in the short segments yor gcode has at 4800mm/min, the extruder has to be moving at about 160mm/min. For the next line, to extrude 0.00005mm, the extruder has to be moving at about 0mm/min. Then on the following line it is back up to 160mm/min. It never goes backwards, but that is a significant change in speed required (both decelerating then accelerating) and is larger than your extruder jerk.
How comparable are your extruder accel, speed & jerk settings on your Marlin machine?
There may be some differences in how Marlin and RRF work (e.g. are you using the Marlin junction deviation?), but fundamentally RRF will respect the motion limits for every axis (including the extruder) and will slow down the motion if these are being violated. -
Looks like Cura is finally addressing this issue with a slicing engine overhaul. Beta available now with variable line width.
-
@phaedrux said in Cura uses concentric circles to fill will be a layer of lag:
Looks like Cura is finally addressing this issue with a slicing engine overhaul. Beta available now with variable line width.
Interesting phaedrux ! Soon as possible I'll try it. Now I'm stuck in other troubles that keep me far from the 3D printing world but I'll have to put me in soon or later. I also have near 4K of coreXY in pieces that wait just to be assembled.
-
@fly
I can confirm that this appears to be fixed in Cura 4.9 beta.This is a snip-it of infill from cura 4.8. I ran it through Arc welder. 80% concentric infill
;TYPE:FILL G3 X114.491 Y161.707 I-0.437 J-48.369 E0.09073 F3000 G1 X114.491 Y161.708 E0.00003 G3 X112.776 Y161.573 I2.616 J-44.197 E0.04541 G1 X112.776 Y161.574 E0.00003 G3 X111.066 Y161.378 I5.309 J-53.877 E0.04543 G1 X111.066 Y161.379 E0.00003 G3 X108.528 Y160.977 I6.489 J-49.181 E0.06786 G1 X108.528 Y160.978 E0.00003 G1 X107.692 Y160.815 E0.02248 G1 X107.692 Y160.814 E0.00003 G3 X101.451 Y159.114 I9.691 J-47.883 E0.17088 G1 X101.451 Y159.115 E0.00003 G3 X99.830 Y158.525 I16.258 J-47.191 E0.04555 G1 X99.83 Y158.526 E0.00003 G1 X99.434 Y158.371 E0.01122 G1 X99.434 Y158.37 E0.00003 G3 X92.106 Y154.756 I17.921 J-45.575 E0.21591 G1 X92.106 Y154.757 E0.00003 G1 X91.742 Y154.536 E0.01124 G1 X91.742 Y154.535 E0.00003 G3 X78.125 Y142.167 I25.749 J-42.029 E0.48848 G1 X78.124 Y142.168 E0.00004 G3 X75.241 Y137.890 I39.556 J-29.768 E0.13622 G1 X75.242 Y137.89 E0.00003 G3 X69.278 Y122.752 I42.239 J-25.385 E0.43148 G1 X69.279 Y122.752 E0.00003 G3 X69.105 Y121.905 I72.866 J-15.410 E0.02282 G1 X69.106 Y121.905 E0.00003 G3 X68.621 Y118.934 I49.398 J-9.589 E0.07949 G1 X68.622 Y118.934 E0.00003 G3 X68.426 Y117.224 I55.533 J-7.231 E0.04544 G1 X68.427 Y117.224 E0.00003 G3 X68.292 Y115.509 I44.062 J-4.331 E0.04541 G1 X68.293 Y115.509 E0.00003 G3 X68.293 Y109.491 I48.658 J-3.009 E0.15896 G1 X68.292 Y109.491 E0.00003 G3 X68.427 Y107.776 I44.197 J2.616 E0.04541 G1 X68.426 Y107.776 E0.00003 G3 X68.622 Y106.066 I53.877 J5.309 E0.04544 G1 X68.621 Y106.066 E0.00003 G3 X69.021 Y103.533 I49.888 J6.580 E0.06772 G1 X69.02 Y103.533 E0.00003 G3 X70.886 Y96.451 I48.980 J9.119 E0.19368 G1 X70.885 Y96.451 E0.00003 G1 X71.004 Y96.108 E0.00958 G1 X71.045 Y96.067 E0.00153 G1 X71.045 Y95.994 E0.00193 G1 X71.172 Y95.641 E0.0099 G1 X71.173 Y95.641 E0.00003 G3 X71.494 Y94.849 I6.106 J2.014 E0.02269 G1 X71.494 Y94.779 E0.00185 G1 X71.629 Y94.434 E0.00978 G1 X71.63 Y94.434 E0.00003 G3 X75.242 Y87.110 I45.520 J17.897 E0.21581 G1 X75.241 Y87.11 E0.00003 G1 X75.462 Y86.746 E0.01124 G1 X75.463 Y86.746 E0.00003 G3 X78.124 Y82.832 I41.949 J25.658 E0.12497 G1 X78.125 Y82.833 E0.00004 G3 X92.106 Y70.243 I39.455 J29.756 E0.49970 G1 X92.106 Y70.244 E0.00003 G3 X98.235 Y67.119 I25.448 J42.338 E0.18176 G1 X98.235 Y67.12 E0.00003 G3 X107.248 Y64.278 I19.269 J45.397 E0.24985 G1 X107.248 Y64.279 E0.00003 G3 X111.066 Y63.621 I10.367 J48.747 E0.10232 G1 X111.066 Y63.622 E0.00003 G3 X112.776 Y63.426 I7.231 J55.533 E0.04544 G1 X112.776 Y63.427 E0.00003 G3 X114.491 Y63.292 I4.331 J44.062 E0.04541 G1 X114.491 Y63.293 E0.00003 G3 X120.509 Y63.293 I3.009 J48.705 E0.15896 G1 X120.509 Y63.292 E0.00003 G3 X122.224 Y63.427 I-2.616 J44.197 E0.04541 G1 X122.224 Y63.426 E0.00003 G3 X123.934 Y63.622 I-5.309 J53.877 E0.04543 G1 X123.934 Y63.621 E0.00003 G3 X126.472 Y64.023 I-6.489 J49.181 E0.06786 G1 X126.472 Y64.022 E0.00003 G1 X127.308 Y64.185 E0.02248 G1 X127.308 Y64.186 E0.00003 G3 X133.549 Y65.886 I-9.704 J47.930 E0.17087 G1 X133.549 Y65.885 E0.00003 G3 X135.170 Y66.475 I-16.258 J47.191 E0.04555 G1 X135.17 Y66.474 E0.00003 G1 X135.566 Y66.629 E0.01122 G1 X135.566 Y66.63 E0.00003 G3 X142.890 Y70.242 I-17.897 J45.520 E0.21579 G1 X142.89 Y70.241 E0.00003 G1 X143.254 Y70.462 E0.01124 G1 X143.254 Y70.463 E0.00003 G3 X147.168 Y73.124 I-25.658 J41.949 E0.12498 G1 X147.167 Y73.125 E0.00004 G3 X159.757 Y87.106 I-29.686 J39.391 E0.49967 G1 X159.756 Y87.106 E0.00003 G3 X162.881 Y93.235 I-42.338 J25.448 E0.18176 G1 X162.88 Y93.235 E0.00003 G3 X165.722 Y102.248 I-45.311 J19.242 E0.24987 G1 X165.721 Y102.248 E0.00003 G3 X166.574 Y107.772 I-48.297 J10.286 E0.14760 G1 X166.573 Y107.772 E0.00003 G3 X166.707 Y115.509 I-48.955 J4.718 E0.20448 G1 X166.708 Y115.509 E0.00003 G3 X166.573 Y117.224 I-44.197 J-2.616 E0.04541 G1 X166.574 Y117.224 E0.00003 G3 X166.378 Y118.934 I-53.877 J-5.309 E0.04544 G1 X166.379 Y118.934 E0.00003 G3 X165.979 Y121.467 I-49.888 J-6.580 E0.06772 G1 X165.98 Y121.467 E0.00003 G1 X165.815 Y122.308 E0.02262 G1 X165.814 Y122.308 E0.00003 G3 X165.008 Y125.674 I-47.136 J-9.507 E0.09140 G1 X165.009 Y125.674 E0.00003 G3 X164.114 Y128.549 I-48.374 J-13.482 E0.07949 G1 X164.115 Y128.549 E0.00003 G3 X163.525 Y130.170 I-45.295 J-15.568 E0.04555 G1 X163.526 Y130.17 E0.00003 G1 X163.371 Y130.566 E0.01122 G1 X163.37 Y130.566 E0.00003 G3 X159.758 Y137.890 I-45.520 J-17.897 E0.21581 G1 X159.759 Y137.89 E0.00003 G1 X159.538 Y138.254 E0.01124 G1 X159.537 Y138.254 E0.00003 G3 X156.876 Y142.168 I-41.949 J-25.658 E0.12497 G1 X156.875 Y142.167 E0.00004 G3 X142.894 Y154.757 I-39.386 J-29.680 E0.49970 G1 X142.894 Y154.756 E0.00003 G3 X136.765 Y157.881 I-25.448 J-42.338 E0.18176 G1 X136.765 Y157.88 E0.00003 G3 X127.752 Y160.722 I-19.269 J-45.397 E0.24985 G1 X127.752 Y160.721 E0.00003 G3 X123.934 Y161.379 I-10.367 J-48.747 E0.10232 G1 X123.934 Y161.378 E0.00003 G3 X122.224 Y161.574 I-7.231 J-55.533 E0.04544 G1 X122.224 Y161.573 E0.00003 G3 X120.509 Y161.708 I-4.331 J-44.062 E0.04541 G1 X120.509 Y161.707 E0.00003 G3 X117.926 Y161.798 I-2.993 J-48.256 E0.06823 G0 F9000 X117.942 Y161.198 G2 X117.517 Y161.200 I-0.442 J-48.698 E8.06554 F3000 G1 X117.942 Y161.198 E0.01122
This is that same layer infill from Cura 4.9 beta. Again ran through arc welder. All settings the same.
;TYPE:FILL G3 X120.509 Y161.708 I-0.425 J-49.298 E8.10794 F3000 G3 X117.926 Y161.798 I-3.012 J-49.328 E0.06823 G0 F9000 X117.942 Y161.198 G2 X117.517 Y161.200 I-0.442 J-48.698 E8.06558 F3000 G1 X117.942 Y161.198 E0.01122
I air printed both, the stuttering is present with the first full gcode but not the second.
-