Problems with input shaping
-
@jay_s_uk beat me to it. 22Hz does seem low. From your earlier photo it looks like you are using a Delta printer. All of mine are cartesian so I hope my information is applicable. My printers are in the 38 to 45 Hz range. Others on the forum with Deltas are in the 50Hz range. Check your accelerometer is mounted securely.
You should be able to run the input shaping plugin then set a center frequency as you have done. You should then be able to pick an input shaper at the right and do another run to see the effect. I haven't done that last step lately. Instead I just set the frequency in my config and run a test print because there can be undesireable effects from some input shaping settings.
If you have Pressure Advance enabled turn that off. You will have to recheck PA again after you have selected your ideal Input Shaper and frequency/damping.
Instead of 0.2 Damping Factor try 0.1 or 0.
I am not sure a benchy is the best test for Input Shaping. Try the Klipper ringing_tower.stl in vase mode. Many other issues can affect a Benchy. The Ringing_Tower makes the Input Shaping changes very visible. Edit your gcode to change input shapers every 5mm or so then decide which one you are happiest with.
I hope these suggestions are valid for your printer.
-
@Lee it looks like your M566 (max instantaneous speed change, or jerk) line has had M201 (max acceleration) put at the beginning of it, and/or has been pulled back into the comment for that line. There's another M201 a couple of lines further down, so I assume this is an error:
M201 X600.00 Y600.00 Z600.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M566 X1200.00 Y1200.00 Z1200.00 E1200.00 M203 X70000 Y70000 Z70000 E7200.00 ; set maximum speeds (mm/min) M201 X7500 Y7500 Z3000 E3000 ; set accelerations (mm/s^2)
There's a couple of notes in the M593 entry in the Gcode dictionary that might be relevant:
High X and Y jerk values reduce the effectiveness of DAA; therefore you should set the X and Y jerk limits only as high as necessary to allow curves to be printed smoothly.
Keep in mind that you have to retune Pressure Advance after you have configured Input Shaping. The Pressure Advance will differ from shaper to shaper and from frequency to frequency.
So I'm not sure what M566 is actually set at the moment, but as you're seeing ringing at particularly low frequency, the chances are a high jerk is exciting this at the moment. You could probably reduce M566 to X300 Y300, or perhaps even lower. Check curves print smoothly, though.
Ian
-
@droftarts I have change my config and lowerd jerk i have tried 150 and 300
but i still get the Data collection cancelled! error.
Is it possible that the I parameter may be wrong i have a LIS3DSH mounted to the back of my tool head like this .
this is my config now:
; Configuration file for Duet Maestro (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.15 on Sun Mar 12 2023 20:43:39 GMT+0100 (Mitteleuropäische Normalzeit) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Kossel XL" ; set printer name M665 L371.000:371.000:371.000 R168.486 H346.526 B120.0 ; Set delta radius, diagonal rod length, printable radius and homed height B116 M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them M918 P1 E4 F2000000 ; configure direct-connect display ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S0 D3 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M350 E16 I0 ; configure microstepping without interpolation M92 X160 Y160 Z160 E663.00 ; set steps per mm M566 X300.00 Y300.00 Z300.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M203 X30000 Y30000 Z30000 E7200.00 ; set maximum speeds (mm/min) M201 X5000 Y5000 Z3000 E3000 ; set accelerations (mm/s^2) M906 X600 Y600 Z600 ;I100 ; set motor currents (mA) and motor idle factor in per cent M906 E1000 ;I10 ; set motor currents (mA) and motor idle factor in per cent ;M84 S5 ; Set idle timeout M950 S0 C"servo" ; configure servo ; Axis Limits M208 Z0 S1 ; set minimum Z ; Endstops M574 X2 S1 P"!^xstop" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin !^xstop M574 Y2 S1 P"!^ystop" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin !^ystop M574 Z2 S1 P"!^zstop" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin !^zstop ; Z-Probe M558 P8 R1 C"zprobe.in" H2 F300 T1500 ;S0.01 A15 ; set Z probe type to effector and the dive height + speeds M558 P5 R0.4 C"zprobe.in" H2.5 F240 T1500 M558 P5 R0.75 C"zprobe.in" H5 F60 T4800 ;M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P1 X0 Y0 Z-0.2 ; set Z probe trigger value, offset and trigger height M557 R110 S30 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S100 ; set temperature limit for heater 0 to 100C M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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 C"Part cooling Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 C"Hotend Fan" S1 H1 T45 ; set fan 1 name and value. Thermostatic control is turned on ; Tools M563 P0 S"E3D V6" 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 M81 C"pson" ; PSU off M955 P0 C"twd0+twck0" I16 P10 ; Accelorometer M107 ; fans off M572 D0 S0.0175 ; S0.3 ;S0.15 ; Set Pressure advance (old 0.95) 0.05 ;M592 D0 A0.0124929539412195 B0.00208450767751017 L0.2 ; Configure nonlinear extrusion M579 X1.0195758564437194127243066884176 Y1.0141987829614604462474645030426 Z1 ; Scale Cartesian axes ; Input shaping ;M593 P"ZVDDD" F0 S0 ;Triggers ;M950 J1 C"!^exp.pa21" ;M581 P1 S0 T2 R2 ;Orbiter Filament Sensor M950 J2 C"!e0_stop" ; define logical input for filament auto load M581 P2 T3 S0 R0 ; define trigger for filament auto load triggers trigger3.g ;M950 J3 C"!exp.pa22" ; define logical input for filament unload ;M581 P3 T4 S0 R0 ; define trigger for filament auto load triggers trigger4.g M591 D0 P2 C"!^e1_stop" S1 ; filament monitor connected to E1_stop ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool
-
@Lee said in Problems with input shaping:
M955 P0 C"twd0+twck0" I16 P10 ; Accelorometer
You have P0 and P10 in the same line. Did you mean R10?
Having the I parameter wrong wouldn't stop data collection.Ian
-
@droftarts Your right i change it to R10 but i still get "Data collection cancelled!" When run the recording right after finnishing the first move.
-
@Lee Hmm. Can you post a picture of your wiring at the Duet end? Can you check the wiring continuity? Does the fan (with the fan wire very close to the accelerometer wiring) run when you're collecting data? Anything else that might be causing interference?
Ian
-
@Lee The 'Data Collection Cancelled' problem was solved by @chrishamm. Refer to this post by @alexjx
Go down to the google drive link provided and get the latest version of DWC.
It is very important to get the axes correct with the I parameter but I have no idea how to do that for a delta printer. This link should help you get the orientation right (I think they use the same board as you):
https://forum.duet3d.com/topic/31411/lis3dsh-orientation-on-a-delta-printer/6 -
@droftarts Here are pictures of the cabel it selfe i have connected the shielding oh the wire to ground (underneath The shrink tubing)
continuity is good aswell -
@tas https://forum.duet3d.com/topic/31411/lis3dsh-orientation-on-a-delta-printer/6
I have checked I16 seems to be right for me.I have installed the the version you suggested i am was able to finish the data collection.
here are the results: (using M566 X150.00 Y150.00 Z150.00)
-
-
@tas I have run some more recordings and they all look almost Identical.
-
-
@droftarts I have not run a test print jett but i will start on now
-
This was printed ad 60 mm/S and M593 P"ZVDDD" F19,5 S0
-
@Lee Keep in mind I have no delta experience but the pattern of thin vertical lines looks like Very Fine Artifacts to me. That will not be addressed by input shaping.
The echoes of the scallop pattern are what you want to examine. There do appear to be some first layer issues you may want to deal with first.
-
@Lee I finally got my Ender 5 Plus back up and running today with new E3D 0.9 degree stepper motors (trying to get rid of my VFAs!). I will have to do a full recalibration so I will do some Input Shaping tests and see if I can come up with something of help to you.
-
@Lee I did some tests.
I now have the E3D 0.9 degree motors for X and Y. This has changed a lot for me so I have to do a full recalibration of the printer. For these tests I used my original values though and enabled only input shaping using my new center frequency of 39 Hz. So Acceleration of 1400 and Jerk max of 900. M593 P"EI3" F39.0 S0.0.
I used PrusaSlicer 2.6.0 with the following custom g-code in Printer Settings>After Layer Change G-Code:
;Try Input Shapers
{if layer_z >= 0.2}M593 P"none"{endif}
{if layer_z >= 5.0}M593 P"mzv" F39 S0.0{endif}
{if layer_z >= 10.0}M593 P"zvd" F39 S0.0{endif}
{if layer_z >= 15.0}M593 P"zvdd" F39 S0.0{endif}
{if layer_z >= 20.0}M593 P"zvddd" F39 S0.0{endif}
{if layer_z >= 25.0}M593 P"ei2" F39 S0.0{endif}
{if layer_z >= 30.0}M593 P"ei3" F39 S0.0{endif}Using the Klipper Ringing_Tower.stl as you did the above code chooses another Input Shaper at each new scallop.
So first sample, Acceleration 1400, Jerk 900, speed 50mm/s, no PA. I apologize in advance for my photography. Not great.
There is a slight difference at each corner for the different input shapers. This does not show up in my photos. For some shapers the start side of the corner looks better, for others the end side. For 'none' there is prolonged ringing and varying (but much less ringing) for the input shapers.
For the second sample I changed Jerk to 100 from 900. On the last three scallops at the top I doubled the speed to 100mm/s. A shallow wave appeared at that speed. Jerk gives worse ringing at 100 with no input shaper because the 1400 acceleration worked best with 900 jerk (and my old motors). However the lower jerk looks much better with input shaping. There is definitely less ringing.
.
You should definitely see a difference with input shaping enabled.
-
@Lee As others have said the resonance frequency you are targeting (19.5Hz in the above is very low) and my understanding is that input shaping does not work well below approx 25Hz. This is a comment from the Klipper documentation:
Another consideration is that if a resonance frequency is too low (below 20-25 Hz), it might be a good idea to increase the printer stiffness or reduce the moving mass. Otherwise, acceleration and printing speed may be limited due too much smoothing now instead of ringing.
-
@gloomyandy but what frequency should i use than? No matter what I do the results are almost identical every time
-
@tas I also have the e3d 0.9 degree motor i will try printing with the g code modifiers you used