Unsolved Why does my input shaper not seem to be working.
-
@SanderLPFRG said in Why does my input shaper not seem to be working.:
ohkee, I think that is not clearly stated in the Documentation on the gcode dictionary (under M593)
Maybe it is an idea to adjust this?@dc42 informs me:
High jerk values are an issue for all types of IS because the theory behind IS assumes no jerk.
Another cause of IS not working is mesh compensation with a fine mesh and low acceleration. This splits the acceleration and deceleration parts of a move across multiple segments, which makes it difficult for RRF to apply IS.
A third cause is short accelerate/decelerate moves. I intend to do something about this in 3.5rc1.I have updated the documentation.
Try a print without mesh compensation, if you use it.
Ian
-
I am not using mesh levelling. However, I am doing 3-point bed alignment, but that couldn't be it, right?
My start gcode;
; General settings; G90 ; set absolute coordinates var purgelength = 15 ; Heat up for probing M104 S150 ; set extruder temp for bed leveling M140 S{param.B} ; set bed temperature M109 S150 ; wait for hotend probing temp M190 S{param.B} ; wait for bed temperature ; Prepare for automatic calibration M302 S140 ; lower cold extrusion limit to 160C G92 E0 G1 E-2 F2400 ; cold retraction M302 S170 ; restore cold extrusion limit G28 ; home printer ; Auto calibration; M98 P"0:/macros/kinematic-tramming" ;G29 ; Heat up for printing G90 ; absolute coordinates G1 X10 Y10 Z15 F9000 ; move to park position M104 S{param.E} ; set extruder temp M109 S{param.E} ; wait for extruder temp ; Extrude purge line G92 E0 ; reset E position G0 X{param.L} Y{param.F-5} F4800 ; move to purge start G1 Z0.2 F720 ; move Z to purge height G1 E2 F2400 ; deretraction G91; relative movement G1 X{var.purgelength} E{var.purgelength * 0.15} F1000 ; move right G1 Y1.5 E{1.5 * 0.15} F1000 ; move down G1 X{-var.purgelength} E{var.purgelength * 0.30} F800 ; move left G92 E0 ; Reset E G90; absolute movements
Kinematic tramming macro;
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; if printer is not fully homed yet G28 ; home printer endif ; Tuning cycle 1 G1 X{move.axes[0].max / 2} Y{move.axes[1].max / 2} F9000 ; move to middle M18 Z G30 Z-99999 F1200 ; probe Z G90 G30 P0 X{move.axes[0].max / 2} Y{move.axes[1].max - 30} Z-99999 ; probe near rear leadscrew (117.5,225) G30 P1 X{move.axes[0].min + 10} Y{move.axes[1].min + 10} Z-99999 ; probe near left leadscrew left (10,10) G30 P2 X{move.axes[0].max - 10} Y{move.axes[1].min + 10} Z-99999 S3 ; probe near right leadscrew and calibrate 3 motors (225,10) ; Tuning cycle 2 ;G30 K0 P0 X{move.axes[0].max / 2} Y{move.axes[1].max - 30} Z-99999 ; probe near rear leadscrew (117.5,225) ;G30 K0 P1 X{move.axes[0].min + 10} Y{move.axes[1].min + 10} Z-99999 ; probe near left leadscrew left (10,10) ;G30 K0 P2 X{move.axes[0].max - 10} Y{move.axes[1].min + 10} Z-99999 S3 ; probe near right leadscrew and calibrate 3 motors (225,10) ;G90 ; absolute coordinates G1 X{move.axes[0].max / 2} Y{move.axes[1].max / 2} F9000 ; move to middle M18 Z G30 Z-99999 F1200 ; probe Z ;G1 Z5 F300 ; move Z down ; clear nozzles ;G1 Z{global.zsafeheight} F600 ; move nozzle to z- safe height
-
@SanderLPFRG Mesh bed levelling (enabled with G29) causes movements to be segmented, which at the moment interacts with input shaping. The same is true if you use M669 to enable segmentation. I just wanted to check to see if that might be causing your problem.
-
@gloomyandy Ahh I understand, thankyou.
I do not have the G29 active, it is uncommented.
-
@SanderLPFRG You can check to see if a mesh is in use by running M122.
-
@gloomyandy said in Why does my input shaper not seem to be working.:
M122
M122 reports bed leveling as "none
=== Move === DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000 no step interrupt scheduled
-
Great thread. The following questions may help people further.
-
If you're using M376 to taper, will input shaping resume normal behavior after that point?
-
Does your recommended jerk setting of 300mm/s apply to all printer geometries including corexy?
-
When you say input shaping isn't currently applied to short segments, just how short if you have accelration set to 5000mm/s² and a speed of 100mm/s? Does this include curves of any radius since they are nothing but short segments?
-
What other things can we troubleshoot if input shaping doesn't give us the results we expect? For example, what print artifacts can we look for that might indicate a hardware issue such as loose belts, or non concentric drive gears, bad alignment with dual rods or rails etc?
-
-
@ctilley79 Thanks for the great reply.
To add some information;
2. I am using markforged kinematics
3. I currently am printing with 300 mm/min jerk, 9000mm/s2 acceleration and 170mm/s (later will go up to 200mm/s)
4. Belt tension is tested very loose up to very tight. Only the frequency and print quality changed, but no difference between IS on and IS off. I contacted Gates and set the belt to the exact right tension advised by them. verified it by measuring the frequency on 150mm/s.
I can confidently say the belts are set right, the pulleys are running smoothly, and the frame is rigid. -
@gloomyandy Any updates or more things I can try?
-
@SanderLPFRG Check this post by @Lee
https://forum.duet3d.com/topic/32744/problems-with-input-shaping/4?_=1688471721215
Especially the last entry where he averaged his frequencies to finally get a change with IS on.
Perhaps try reducing Jerk to 100mm/min just as a test.
IS does work in the latest RRF versions so if you are not seeing any result it may be the 'wrong' frequency being used. Just a thought.
-
I tried and went as low as 100mm/min jerk, which causes the curves to stutter, but also does not give an effect....
I suspect it has to do with the kinematics. Ill open a new ticket for the BETA firmware categorie
-
-
@SanderLPFRG did you ever find a solution to this? I'm having the same issue on my RatRig VCore 3.1 400 printer. IS on or off makes no difference, ringing is identical. I've beed trying to fix this for days now..
-
@Reine There's a couple things that keeps input shaping from working well in RRF.
- Jerk must be set low
- Acceleration must be increased to compensate
- Input shaping is not applied on short segments; less than 15mm or so
- You cannot set different input shaping values per axis like Klipper does
Point 3 is reportedly going to be fixed in 3.5 RC1, but I'm not sure how much of it has been implemented yet.
As you can see, I believe point 3 is causing spots where input shaping is applied and others where it’s not causing a nasty ringing. This is only 60mm/s perimeters.
-
@ctilley79 check this video out, one part is without IS the other with, no difference.
https://imgur.com/a/hiu7uJGYou think this is down to the segments being too short?
Right now I'm printing the Klipper ringing tower and trying different settings on the flyt but still... nothing. I even tried with and without mesh leveling in the middle and still the same. -
This is printing now.
Jerk: 100
External perimeters: 80mm/s
Acceleration: 2500Here are all changes I've made, live in that print. Can you see any of them? I cant. Only thing I can see is when I tensioned the belts, just to force something visible in the print.
-
Should add I was running a 10x10 mesh, but changed to 5x5 with no visible difference.
-
Isn't this interesting -- no ringing on one axis and significant on the other.
https://imgur.com/a/IRbwK3b -
@Reine one thing I do recall DC42 mentioning is that Input shaping doesn’t work with a mesh active. Try printing without a mesh.
I’ve also had weird issues where I had ringing moving one direction on the same axis, but during a move in the opposite direction on the same axis had none. So it’s strange. I’ve made sure my belts are properly tensioned, frame deracked and square etc. I may have to just disable IS and print slower with less acceleration until David has time to work on it.
-
@ctilley79 Having a mesh can interfere with IS, but that typically happens with a fine mesh, low acceleration and higher target speeds. It is certainly worth trying with the mesh disabled to see if that makes any difference. As I mentioned earlier using M669 (move segmentation) can also stop IS from being applied to some moves.