Input shaper causing stutters and blobs on curves RRF3.5.0-rc.1
-
@Arminas The way I decided on an L value was to create an STL that consistently exhibits the blobs and print it with settings which do the same. I started the print and listened for the knock sounds the printhead makes when stopping. I started inputting values into the console "M593 P"zvdd" F49 Lnnn" and slowly increased the number until the problem went away. For me it was at 500, but I added a margin.
Not sure if the M201 acceleration values are linked to this problem, but I am using 10000 acceleration for X and Y.
As far as I understand it, the L value will not be enabled on a corner if the overall accelleration is reduced below the value set.
From my testing so far, I can't see any difference in ringing with L800. But that may only apply to an M201 of 10000. @dc42 might be able to clarify.
-
News.
Tried 3 different shaper on 60hz 0.1 and l20-1000. stuttering getting worse over 600 and on 1000 i get emergency shutdown from the board.
So still no working shaper for me
Edit
Switched back to rrf 3.4.6 and running zvddd 60hz 0.1 l250 without any blobs and nearly perfekt print
-
-
@rex_sl Frustrating that in your case that you weren't able to get things working well.
I found moving to L100 from the default 10 seemed to make the problem worse for me. I did try up to L1500 in a ringing test, but didn't have any issues with shutdown.
It is probably better to stick with the stable release for now. But at least we have added some documentation for development.
-
Thats part of testing new releases. After thinking about it for 2 days there must be a user missinterpretatation of the shaper readings. We have to concentrate on 40-80 Hz and dont have to cancel over 80hz. Maybe the total wrong shaper and way too much damping on the end.
I will take more tests with a printer i dont need for daily work. And ordered a raspberry to look at klipper.
Now iam at
Mzv 60hz 0.1 l500
M566 x500 y500 e600
M201 x8000 y8000 e3000
Max speed 20000 -
Important update. I've gone back to 3.4.6 (Edit: I hadn't gone back to 3.4.6. See below) and removed the L value from M593 and I am getting blobbing and jolting of the print head again. No idea what's going on here.
Below are the settings I'm using.
M566 X600.00 Y600.00 Z300.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M203 X27000.00 Y27000.00 Z6000.00 E6000.00 ; set maximum speeds (mm/min) M201 X10000.00 Y10000.00 Z2000.00 E10000.00 ; set accelerations (mm/s^2)cent M572 D0 S0.028 ; set pressure advance value (slows down very high speed prints) M593 P"mzv" F66 ; use MZV input shaping to cancel ringing at 66Hz
And these are the settings I used before I installed the new print head and I never noticed and knocking sounds or blobbing.
M566 X600.00 Y600.00 Z300.00 E250.00 ; set maximum instantaneous speed changes (mm/min) M203 X27000.00 Y27000.00 Z12000.00 E800.00 ; set maximum speeds (mm/min) M201 X10000.00 Y10000.00 Z2000.00 E3500.00 ; set accelerations (mm/s^2) M572 D0 S0.032 ; set pressure advance value (slows down very high speed prints) M593 P"zvddd" F50 ; use ZVDDD input shaping to cancel ringing at 50Hz
I've run another blob test and I have to increase the L value to 1300 to stop the blobbing again in 3.4.6.
-
After printing yet another benchy in OrcaSlicer, I'm still getting blobbing on the chimney. It otherwise looks good. It looks like I might also be getting similar blobs on other sharp corners. These are not seams. The seam is aligned on the back of the chimney from the perspective of this photo.
This is very frustrating. Weirdly. I didn't get this in SuperSlicer, but I prefer some of the other features in Orca. I feel like all my fixes have been patching the symptoms, but not the root cause.
I've checked the speeds and they are exactly the same in Orca and Superslicer.
Could this be a limitation on the processor on the Duet 3 Mini 5+ once input shaper and pressure advance are enabled and we print at high speeds with sharp corners? Is there a way to check the CPU utilisation in the object model?
-
Post the results of M122 after a print has completed to see if you're overwhelming the MCU, but I suspect it's not the case unless you're also running very high steps per mm.
Perhaps share your full config.g
-
@Phaedrux Here are the M122 after a blobbing/stuttering print. I have temporarily disabled the M593 L command. It reports 3.5.0-rc.1, but I can confirm that I'm now back on 3.4.6. (Edit: I wasn't back on 3.4.6. See posts below)
M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.0-rc.1 (2023-08-31 16:16:56) running on Duet 3 Mini5plus Ethernet (standalone mode) Board ID: Used output buffers: 1 of 40 (32 max) === RTOS === Static ram: 102836 Dynamic ram: 124244 of which 0 recycled Never used RAM 10448, free system stack 130 words Tasks: NETWORK(1,ready,22.8%,139) ETHERNET(5,nWait,0.2%,566) HEAT(3,nWait,0.1%,329) Move(4,nWait,2.8%,258) CanReceiv(6,nWait,0.0%,939) CanSender(5,nWait,0.0%,337) CanClock(7,delaying,0.0%,342) TMC(4,nWait,1.4%,74) MAIN(1,running,71.9%,700) IDLE(0,ready,0.0%,29) AIN(4,delaying,0.9%,264), total 100.0% Owned mutexes: === Platform === Last reset 00:05:55 ago, cause: software Last software reset at 2023-10-02 20:05, reason: User, Gcodes spinning, available RAM 14336, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 MCU revision 3, ADC conversions started 355607, completed 355607, timed out 0, errs 0 MCU temperature: min 34.8, current 43.3, max 43.6 Supply voltage: min 23.7, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 30, reads 22271, writes 3, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 30, reads 22273, writes 1, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 30, reads 22272, writes 1, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 36, reads 22272, writes 1, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 36, reads 22273, writes 1, timeouts 0, DMA errors 0, CC errors 0 Driver 5: standstill, SG min 0, read errors 0, write errors 0, ifcnt 36, reads 22272, writes 1, timeouts 0, DMA errors 0, CC errors 0 Driver 6: standstill, SG min 0, read errors 0, write errors 0, ifcnt 36, reads 22272, writes 1, timeouts 0, DMA errors 0, CC errors 0 Date/time: 2023-10-02 20:11:25 Cache data hit count 515038510 Slowest loop: 20.53ms; fastest: 0.11ms === Storage === Free file entries: 18 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 4.2ms, write time 1.1ms, max retries 0 === Move === DMs created 83, segments created 43, maxWait 67678ms, bed compensation in use: mesh, height map offset 0.000, ebfmin -1.00, ebfmax 1.00 no step interrupt scheduled Moves shaped first try 555, on retry 0, too short 1781, wrong shape 5079, maybepossible 1568 === DDARing 0 === Scheduled moves 13275, completed 13275, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.4 Heater 1 is on, I-accum = 0.6 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0, sync state 1 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000803 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === Extruder 0: pos 325.90, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 2205, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 1225/0/0 Tx timeouts 0,0,1225,0,0,980 last cancelled message type 30 dest 127 === Network === Slowest loop: 11.83ms; fastest: 0.04ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 0 0 0 Socket states: 5 2 2 2 2 0 0 0
G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Voron" ; set printer name M669 K1 ; select CoreXY mode M950 E1 C"io3.out" T1 M950 E0 C"LED" T2 M150 E0 R25 U50 B127 W0 S19 ; set LED main lighting colours M918 P2 E-4 F2000000 ; configure direct-connect display M150 E1 R255 U255 B0 S3 ; set screen LED colours M150 E1 R18 U21 B0 S2 ; Network M551 P 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.2 S1 ; physical drive 0.2 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.0 S0 ; physical drive 0.0 goes forwards M584 X0.2 Y0.1 Z0.3:4:5:6 E0.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E713.00 ; set steps per mm M566 X600.00 Y600.00 Z300.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M203 X27000.00 Y27000.00 Z6000.00 E6000.00 ; set maximum speeds (mm/min) M201 X10000.00 Y10000.00 Z2000.00 E10000.00 ; set accelerations (mm/s^2) M906 X1700 Y1700 Z1400 E800 I70 ; set motor currents (mA) and motor idle factor in per cent M84 S1800 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y300 Z250 S0 ; set axis maxima ; Endstops M574 X2 S1 P"io5.in" ; configure active-high endstop for high end on X via pin io5.in M574 Y2 S1 P"io6.in" ; configure active-high endstop for high end on Y via pin io6.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P5 C"io4.in" H5 F800 T27000 ; set Z probe type and the dive height + speeds G31 P1 X0 Y-24 Z2.26 ; set Z probe trigger value, offset and trigger height M557 X24:276 Y24:276 S14 ; define mesh grid ; Heaters M308 S0 P"temp1" Y"thermistor" T100000 B4582 C1.013e-7 ; configure sensor 0 as thermistor on pin temp1 M950 H0 C"out0" T0 Q10 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S0.90 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S135 ; set temperature limit for heater 0 to 135C M570 H0 P10 ; allow 10 seconds before heater fault M308 S1 P"temp0" Y"pt1000" ; configure sensor 1 as PT1000 on pin temp0 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S0.80 ; disable bang-bang mode for heater and set PWM limit M143 H1 S305 ; set temperature limit for heater 1 to 305C M308 S2 P"temp2" Y"thermistor" T100000 B4582 C1.013e-7 M308 S2 A"Chamber" ; Fans M950 F0 C"out6" Q2000 ; create fan 0 on pin out6 and set its frequency M106 P0 C"Part fan" S0 H-1 L0.15 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"!out3+out3.tach" Q25000 ; create fan 3 on pin out3 and set its frequency M106 P1 X0.7 H1 T55 C"Hotend radiator fan" ; set fan 3 value. Thermostatic control is turned on M950 F2 C"out4" Q60 ; create fan 2 on pin out4 and set its frequency M106 P2 S0 H0 T60 C"Filter fan" ; set fan 2 value. Theromostatic control is turned on ; Tools M563 P0 S"Hotend" 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 ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool M569 P0 D2 M569 P1 D2 M569 P2 D2 M569 P3 D3 M569 P4 D3 M569 P5 D3 M569 P6 D3 M572 D0 S0.028 ; set pressure advance value M671 X-46:-46:345:345 Y9:368:368:9 S20 ; Z leadscrews positions M376 H2 ; set mesh compensation height limit to 2mm during a print ;G4 S1 ; 1 second pause to allow accelerometer to wake ;M955 P0 C"io2.out+io2.in" I60 ; configure accelerometer M593 P"mzv" F66 ;L3000 ; use MZV input shaping to cancel ringing at 66Hz M591 D0 P3 C"io0.in" S1 L25.42 R40:300 E40 A0 ; filament sensing ;OLD ;M592 D0 A-0.00597 B0.00135 ; Configure non-linear extrusion
-
I've noticed something else which I think is related. (TLDR; This problem also seems to be causing skipping steps due to the violent movement.)
When I ran the blob test last, I started missing steps on X and Y. Which is very weird because I'm using the same acceleration and jerk as I have done for months, and I have just reduced the X carriage from about 1100g to 555g.
Well, I thought I would find a lower M201 and M566 value that doesn't skip. Obviously, none of it really makes any sense, since I've reduced my mass by half.
I didn't want to waste more plastic, so I removed the heat up from the same gcode file and set things moving. Which of course sends constant "Warning: Tool 0 was not driven because its heater temperatures were not high enough or it has a heater fault" but stills sends all X, Y and Z movement commands.
It never skipped.
It seems that as soon as extrusion is added into the calculations, not only does the print head stop for a fraction of a second repeatedly, but these movements are not staying within the jerk/acceleration limits given.
It seems something is not playing right between my extrusion settings and my X and Y commands.
I didn't have any issues before I moved over to 3.5.0-rc.1. I have flashed back to 3.4.6. Could there be residual parts of 3.5.0-rc.1 left on the firmware?
-
@Threepwood Are you 100% sure you have gone back to 3.4.6? The M122 you posted earler showed 3.5. If M122 shows 3.5 then you are running 3.5.
There is no carry over from "previous" firmware installs, the only thing that will carry over is any changes you made to your config.g files. You seem to be running with a relatively low extruder jerk setting, you may want to try increasing that.
-
@gloomyandy As far as I can tell. Edit: Oh hang on. I just realised, does DWC not come with RRF? I think that's where I've gone wrong.
I tried increasing extruder jerk, but once I went above about 450, I started getting really bad extrusion problems. Huge holes in test prints and overall only extruding about 20% of what I should be getting. No idea what was going on with that. I'm running a Hextrudort and Goliath from VZbot, so I would expect to be able to go higher. Once I get all these problems sorted, I'll try increasing it again.
-
@Threepwood Okay now I'm back on 3.4.6 RRF, not just DWC.
-
@Threepwood None of those are showing the version number of the actual firmware. You need to look in the printer specific section of DWC or just run M122 in the console. Just to be clear DWC is not the same as RRF, they are two different components.
-
Now that I am actually back on 3.4.6. My problems seem to be gone again. Thanks @gloomyandy
Hopefully the next release of 3.5.0 will solve all these issues.
-
@Threepwood I had some issues with jerk settings today. I have increased it to 1800 and I had messed up print (I had some XY movement problems of round object perimeter and have found that it's caused by pressure advance and not high enough jerk), but the movement got even worse. Lowered to 600 and looks good for now. The only thing I am really missing right now is some explanation of correlation between acceleration and jerk settings
-
@Arminas Are you talking about extruder jerk?
I've just run a test with increasing extruder jerk values from 300 to 1400. I'm getting gaps in the print from 600 to 1400, but they don't get any worse between 600 and 1400. There was no clicking or anything from the extruder either.
This makes me think that the issue could be related to the extruder jerk allowing X and Y movement speeds/acc/jerk to increase, which is what is really causing the issues. Although, saying that, I think my acceleration and jerk are quite conservative for my Voron/VZbot setup. I am trying to print this test at 300mm/s though.
I'm not sure how to go about finding a good value for extruder jerk and acceleration. I've read people on here using 3600 extruder jerk.
Should I keep pushing it and listen for when it starts getting too clicky?
-
@Threepwood I change XY and E jerks at the same time, so not really sure what cause this issue, but my issue is related more to the XY movement.
During fast printing (200 mm/s) on rounded parts of the model the XY movement was not correct, instead of smooth circular line, it was wavy. I also noticed that lowered XY jerk leads to better input shaping results.
As for the extruder jerk, I don't really know, I just lower it together with XY and there is no issue so far. I am on RRF 3.4.6. With RRF 3.5.0 I also had blobs, so now I know that it's related to jerk settings (based on your experience), but I am not going to test it now until I find some good info about jerk/accel and speed relation.
I guess I am just trying to say that incorrect jerk settings are causing these strange things with XY and E. And it gets even more complicated with Input Shaping and Pressure Advance activated.
I have also been reading some posts where it was said to keep jerk as low as possible. I will try to do that now.
-
@Threepwood Actually, I have found good info on what exactly jerk is in a normal human language I will keep it between the standard values 300-600 mm/s
-
@Arminas said in Input shaper causing stutters and blobs on curves RRF3.5.0-rc.1:
@Threepwood I change XY and E jerks at the same time, so not really sure what cause this issue, but my issue is related more to the XY movement.
During fast printing (200 mm/s) on rounded parts of the model the XY movement was not correct, instead of smooth circular line, it was wavy. I also noticed that lowered XY jerk leads to better input shaping results.
As for the extruder jerk, I don't really know, I just lower it together with XY and there is no issue so far. I am on RRF 3.4.6. With RRF 3.5.0 I also had blobs, so now I know that it's related to jerk settings (based on your experience), but I am not going to test it now until I find some good info about jerk/accel and speed relation.
I guess I am just trying to say that incorrect jerk settings are causing these strange things with XY and E. And it gets even more complicated with Input Shaping and Pressure Advance activated.
I have also been reading some posts where it was said to keep jerk as low as possible. I will try to do that now.
There is an interaction between extruder jerk and Pressure Advance when extruder Jerk is too low. Remember that for any X Y and E move, both the axes and the extruder moves have to be synchronised, so a low extruder jerk setting will of necessity have to slow down the XY axes to keep them synchronised with the extruder. You can set extruder jerk to a "silly high" number without any adverse effects because it would only apply to extruder only moves and even then, only when there is a change of direction during that move (which never happens for extruder only moves).
-
@deckingman Any idea how to choose the most optimal jerk settings?
This line should be straight... I lowered the jerk and solved it, but now the printer does not reach max speed on curved toolpath.