Correcting Horizontal Banding by Processing gcode
-
Hello,
I've been commissioning a homebrew large format printer for a couple months now, pulling my hair out with redesigns to fix various mechanical issues as I go, but the Duet and Duex2 I'm using are great and I just ordered the Duex 5 (underestimated my needs), but all good.
Anyway, this isn't Duet specific but I thought people might be interested.
This machine is large (24" square build surface) and I went with a 4 linear shaft + 4 leadscrew arrangement belted to 2 motors. Learning an alignment/setup process has been painful and hindsight is 20/20, but long story short I have a periodic error in the Z movement which is likely due to eccentricity of the pulleys. Using a digital drop indicator revealed a periodic deviation of -.013mm to .042mm from the nominal Z movements with a period exactly equal to the leadscrew pitch.
This causes a fairly extreme degree of horizontal banding in my test prints and needed to be corrected.
I had already redesigned the Z motion system once, and considering the error is predictable, I wrote a simple Python script to post-process any gcode I run to imprint a negating deviation, being sure not to exceed the Z step resolution (5um in my case). This also required that I clock the leadscrew pulleys to be synchronized.
Anyway, here's a print without correction:
And with:
See here for a couple more photos: http://lightsmithscientific.com/justine-haupt/ZBandingFixer/
For me this is a temporary solution, but if anyone has a need I went ahead and put the code on GitHub: https://github.com/jhaupt/ZBandingFixer
~Justine
-
WOW!!!! Just wow….. So cool. Been there with the same problem. It is tricky with the large machines get the Z working well. This is a very clever way to deal with it, if it is mechanically hard to correct.
-
Ah cool, thanks PropellerHat!