New Plugin: Anti Stutter - Need Testers

I have also done some testing and here are my results.

I have a stl file with many curves that give blobbing effects. I’ve scaled it down to 30% and cut off the top 40mm, which left 7 mm to print.
I had to reactivate Arc Support in Marlin 2.0.5 and I started with default settings for MM_PER_ARC_SEGMENT (1mm). I changed it to 0.1mm and then 0.05mm.

This is how the file prints without AntiStutter. There was lots of blobs printing through Octoprint but a near perfect print on SD card.



This is how the file prints with Antistutter. Huge improvement but still blobs and blemishes, especially around the 'handle'. There was no quality difference when printing on SD card.



Although the 'handle' looked almost identical whether AntiStutter was used or not, there was a noticeable difference at the rounded tip of the 'handle'. This might be the indication that the MM_PER_ARC_SEGMENT was too large.

Reducing the MM_PER_ARC_SEGMENT to 0.1mm made a large improvement. There are, however, still blemishes on the 'handle'. Printing on SD card was an improvement.



Reducing the MM_PER_ARC_SEGMENT to 0.05mm did not make any noticeable improvement. There are still blemishes on the 'handle'. Printing on SD card was still an improvement.




Here is a comparison between the 0.1mm and 0.05mm MM_PER_ARC_SEGMENT.

The last comparison is between the original SD card printed file and the OctoPrint printed AntiStutter file.




There is still a difference between AntiStutter on OctoPrint and normal file on SD card but the difference is much less than it was without AntiStutter. The advantage of using OctoPrint outweighs the small differences seen in this comparison.
There is also no difference in the time it takes to print these files. However, in general it takes less time to print on SD card versus printing using OctoPrint, as can be seen in the table below.

Time to Print (min) On OctoPrint On SD Card
Reference 68 38
AntiStutter (1mm) 40 27
AntiStutter (0.1mm) 39 33
AntiStutter (0.05mm) 38 31

Printing Info:
RaspberryPi model B with OctoPrint 1.4.0 on OctoPi 0.16.0
Slicer: Cura v4.5
Ender 3 Pro with BTT SKR mini E3 v1.2 and BLTouch
0.2 mm with 0.4 mm nozzle
50 mm/s, 3 walls @ 0.4mm, infill 15%
max resolution 0.5mm, max deviation 0.05mm, relative extrusion

2 Likes

Looks interesting.
I may missed it: What printer?

1 Like

Great work, thank you! This will take me a while to examine and digest. When you say you used a raspberry pi model B, you mean RPi 1b?!?!

By the way, craftware does not support arc commands :frowning:. It is too bad, because it appears to have some great features. Thanks for your suggestion!

The printer was specified in an earlier post (the thread grows large):

1 Like

If PricklyPear says "yes" then I'm going to wear my I-told-you-so face.

Hmm, I'm actually quite excited if that was a 1B. I'm not holding up hope, but I'd be shocked to see such good performance. I couldn't even get NES games to run properly on my 1B!

@PricklyPear I might have missed it. Are you using JD or Classic Jerk?

Not sure how JD works with ARC commands and if this might be coming into play somewhere?

Yeah, I believe I had JD and it could have impacted the result.

Yes, that's right.
I forgot to mention it but I have now updated the post with Ender 3 Pro, upgraded with BTT SKR mini E3 v1.2.

Correct. I think I bought the Rasperry Pi model B way back in 2013.

1 Like

I have never played around with Jerk (although I worked for a professor once who's first name was Jerker!) so I don't know. However, a quick dive into my Marlin setup tells me that I am using Junction_Deviation and the value is 0.08mm.
I didn't notice much slowdown during printing, other than in the prints where lots of blobs where present, so I can't tell if I had the issue that was mentioned in the Bug Report link.

What is the effect of disabling junction deviation? Is that something you would be willing to test?

I could try. I have no idea what the difference is between Classic Jerk and Junction Deviation, although it is described here: http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html

Is the default settings ok for Classic Jerk, or should I adjust them? In Cura, I had the Print Jerk setting set to 8mm/s. Not sure what this setting would do to Junction Deviation if Classic Jerk is disabled.

/**
 * Default Jerk limits (mm/s)
 * Override with M205 X Y Z E
 *
 * "Jerk" specifies the minimum speed change that requires acceleration.
 * When changing speed and direction, if the difference is less than the
 * value set here, it may happen instantaneously.
 */
//#define CLASSIC_JERK
#if ENABLED(CLASSIC_JERK)
  #define DEFAULT_XJERK 10.0
  #define DEFAULT_YJERK 10.0
  #define DEFAULT_ZJERK  0.3

  //#define TRAVEL_EXTRA_XYJERK 0.0     // Additional jerk allowance for all travel moves

  //#define LIMITED_JERK_EDITING        // Limit edit via M205 or LCD to DEFAULT_aJERK * 2
  #if ENABLED(LIMITED_JERK_EDITING)
    #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // ...or, set your own edit limits
  #endif
#endif

#define DEFAULT_EJERK    5.0  // May be used by Linear Advance

/**
 * Junction Deviation Factor
 *
 * See:
 *   https://reprap.org/forum/read.php?1,739819
 *   http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
 */
#if DISABLED(CLASSIC_JERK)
  #define JUNCTION_DEVIATION_MM 0.08  // (mm) Distance from real junction edge
#endif

/**
 * S-Curve Acceleration
 *
 * This option eliminates vibration during printing by fitting a Bézier
 * curve to move acceleration, producing much smoother direction changes.
 *
 * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
 */
#define S_CURVE_ACCELERATION

//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================
// @section probes

There was no improvement with Classic Jerk enabled in Marlin (with default settings). On the contrary, the quality was worse overall with blobs showing in different spot. The 'handle' is also worse.
The printing time, however, was the fastest on OctoPrint with 35 min. It was visibly faster too but with a lot more jerky movements.
I guess that the quality could be improved by optimising the Jerk settings but I there is no need... just keep the Junction Deviation. The reported bug is maybe a special case.




Thank you for that! It seems obvious that the firmware is playing some kind of role in the defects we are seeing, whether or not JD is to blame. I hope to play around with this over the weekend, and am looking for an RPi 1b for testing (that was an excellent idea, btw).

I printed these:

Normal: 1.3 MB, 55:44 print time, 1.94 m filament use
AntiStutter: 142.3 kB, 51:07 print time, 0,56 m filament use.

Your object is quite challenging. I wonder if my setup could handle it.

Wait, what? It used only about a quarter of the filament with the plugin vs without?!

1 Like

Which is which in the image? I'm not sure which one is using the modified (arc) gcode and which is the original.