New Plugin: Anti Stutter - Need Testers

Seems logical to use something with arc (or maybe segment) in it but at the same time describe it's function. Is the primary intention is to reduce the size of GCode or to produce better quality prints? If the former maybe ZipArc or ArcZipper or Arcer if the latter ArcSmooth or SegmentSmooth or just Smoother.

I guess you'd want to append OctoPrint_ if it's implemented as an OctoPrint plugin.

FWIW which frankly isn't much, I think a standalone slicer post-processor makes more sense. Why burden OctoPrint with files that are twice as big as they need be. Also you'd get a whole bunch more users that way. If it's a good as the results so far slicers will add an option to output via your app.

I have posted working console versions on github, just no binaries yet. There is even an inverse processor (convert g2/g3 back to g1) i have been using to test some marlin modifications i have been working on.

Any chance to get this as simple slicer post processing script too?

You can as long as you can compile it. Check my GitHub repositories for ArcWelderLib. It is the ArcWelderConsole project that contains the code necessary to build the executable. Otherwise I will post the binaries once i have a chance to build them for all environments. I am currently doing some debugging.

Thirteen parts @ 4+ hours.

Before: 11,017,132 bytes
After:   5,235,468 bytes

1 Like

@FormerLurker Just saw you posted an update on GitHub. Does this mean that both relative and absolute extrusion modes will work?

Yes, it should. Be sure to read the release notes before installing otherwise you may miss a lot of goodies that have been added. Fyi, the software update check isn't working right, so I will probably amend that release since nobody will be getting update notifications.

Absolute extrusion should work perfectly since I stripped out extrusion adjustment. Turns out the adjustment was really too small to make any noticable difference, and perhaps more importantly, no firmware I have seen performs any adjustments when interpolating arc segments. That means an unadjusted extrusion value will be closer anyway. Removing the adjustment also speeds up processing by around 20-30%.

This is because your releases are pre-release and not full releases in the github repo. If you make that a full release the software update will pick it up I think. Not sure when there is other stuff in the release name, ie 0.1.0rc1.dev2 might not work, but 0.1.1 should. You're doing things I've never seen before in the plugin_version in setup.py though, so not sure.

I have the release, maintenance and development channels all set up, but the semantic check is failing. I've added commit info to the version to help me figure out who is using what when ppl use non-release (i.e., install from a branch or something), and that messes up the built in checks. I know the capability exists to use other version comparisons, but am still figuring that out. I'll have to update octolapse too eventually.

Hey, there is a retraction issue in the release.. Please uninstall if you've installed it. I'm removing the release now.

Interesting. I was under the impression that plugins couldn't hook into pre-release channels, etc. the way that OctoPrint can, and based on the docs some of the pieces you're providing aren't documented, ie prerelease.

https://docs.octoprint.org/en/master/bundledplugins/softwareupdate.html#sec-bundledplugins-softwareupdate-hooks-check-config

Yeah, I was trying to mimic OctoPrint as closely as possible, including the Versioneer commit info. Minus the Versioneer stuff, it's been working in Octolapse for a long time. Basically, it's looking at the software update settings and switching branches based on that. Then I just have to make sure that I update each branch appropriately when i do releases. It respects the 'prerelease' tags in github, so i can release for ppl who are tracking devel rcs or maintenance rcs so they get updates sooner.

1 Like

I posted a fix to the rc/devel branch. I will re-release once my test prints finish (face masks, hooray!). I used a less than instead of equal to by mistake in the c++ code that determines if an E parameter is needed. I didn't notice it because I was working with absolute extrusion, and forgot about the impact to relative extrusion, lol.

So I've successfully printed a few face shields using code sliced in different ways using relative extrusion, which verifies that the retraction issue has been solved. I will re-release as soon as I get the software update stuff working. You could install from the rc/devel branch if you want an early copy.

1 Like

Ok, so I finally got things fixed and have gotten a successful release! If you've been watching the repo, I'm sure you've seen all the various deleted and re-created releases. I was having some trouble with the software update plugin, the link to github, and versioneer. All that has been (hopefully) fixed. You can install that release, but be sure to uninstall and clean your current instance. It will probably work without doing that, but no need to take chances.

I think you'll enjoy the new release. It's got lots of goodies now :slight_smile:

Edit: Here is a link to the latest release notes.

2 Likes

The release looks great. However, I’m printing what is essentially a cylinder about an inch in diameter. With the plugin generated GCode, it goes what seems like half the speed compared to running it with the regular GCode.

I have edited my firmware to use the values you suggested.

Any ideas why that is happening?

Probably still firmware issues. See this issue on github.

Edit: feel free to chime in on that issue, btw. I think that is the best way to gather information about the problem.

I just installed this and ran it on my current print, as I had stuttering .. now its just slow on printing where I had the stuttering before .. im on Marlin 2.0.5.3, Creality CR10s.

What can I provide that helps on improving the plugin?

A note on print time on the UI (not the actual):
original gcode: 6.5 hours
AW gcode: 3.5 hours

Please check out this issue. I will be posting some suggested changes there soon.

So I would need to adapt Marlin as well besides the plugin or am I missing something?