I've noticed a pattern on my prints for some time and now I've managed to track down its source: the extruder stepper is not really good at microstepping. It depends on the current, but can only be made worse by lowering the current, increasing the current does not help.

I've made a test file. It is a cube in vase mode, and the length of the perimeter is set so the extruder does exactly whole number of steps. This way the pattern shows as vertical lines.
Extruder microstepping
The motor current (M906 Ex) is varied from 100 at the bottom to 4 at the top. Some of the top lines are missing, because the extrusion stops on lack of torque. I know, that the maximum value is 255, but I've seen no change above 100. The default current (M906 E44) is somewhere above the center.

It would be nice if some of you would print this file and share the results. I would like to know, if this microstepping nonlinearity is property of every motor or just mine. It is about a 9 minute print using 1 gramms of filament.

February 23, 2016

psanyi psanyi
Exalted
949 posts

31 replies


@psanyi
Interesting finding.

I noticed that my print surface quality degraded quite a bit. The surface is not consistent nor clean and it shows like a rough surface. I tried changing the belts, lubricate my linear bearings, cleaning my hotend, changing hotend temp, and different cooling settings, but never could resolve it. It was a puzzle to me.

I had my micro travels enabled. I will try to disable it and see if there's an improvements.

February 23, 2016

3DForms 3DForms
Superstar
1774 posts

3DForms wrote:I had my micro travels enabled. I will try to disable it and see if there's an improvements.

That would do nothing IMHO. When using micro travels, the head movement remains exactly the same. The extruder is stopped, but the plastic does not stop at the nozzle, that would need retraction.

February 23, 2016

psanyi psanyi
Exalted
949 posts

I printed your test file. I can see those vertical lines but it's not wavy like yours.

Extruder microstepping

However, please note that my stepper motors are not stock motors. I have replaced mine with longer shafts motor to add in the vibration dampers.

February 23, 2016

3DForms 3DForms
Superstar
1774 posts

Thanks. Your pattern looks similar, so it probably depends on the internal structure of the motor. Did you replace the extruder stepper too?

February 23, 2016

psanyi psanyi
Exalted
949 posts

No, the extruder stepper motor is stock.

February 23, 2016

3DForms 3DForms
Superstar
1774 posts

Just curious. Do you know what's causing those vertical lines?

February 23, 2016

3DForms 3DForms
Superstar
1774 posts

I just have a guess. The controller is set up to use 32x microstepping on the extruder stepper, and you see the lines at the 'real' whole steps. So I think the cause is that the position of the motor does not follow the 'ideal', because of the size or shape of the poles. It stops at 31 positions between whole steps all right, just those positions are not at equal spacing.

The other guess is that the torque of the motor varies between whole steps and this causes the fluctuation in the flow.

February 23, 2016

psanyi psanyi
Exalted
949 posts

Can someone duplicate the same result on non-CraftBot printer?

February 23, 2016

3DForms 3DForms
Superstar
1774 posts

I guess it would be the same on a direct drive extruder, but you have to make the perimeter to exactly whole extruder steps. Maybe a prism with slightly oblique sides would produce this pattern at some layers.

February 23, 2016

psanyi psanyi
Exalted
949 posts

Just a theory no proof on my end...
Looks like a pressure effect, as in build up / release, although everything should be linear.

There is a lot of torque on the extruder for its size and parts involved could be something is worn out now or deflecting. A lose motor mount or bad motor bearing may cause the same effect, even the pivot with the spring but that would most likely be retraction problems not extrusion.

There is no known tolerance for these types of devices other than no play is best , you will have to use your best judgement, on something like this it maybe so small an amount that you can not visually see it, but if you can then that will probably be whats causing the problem.

On cnc machines this is known as backlash and maybe related to your problem.

February 25, 2016

BV BV
Honored
308 posts

The answer is, simply put, non-constant torque while microstepping.
Check out this article, scroll down to "Microstep mode".
I'll try to explain: The stepper works like this: at no load, the position of stepper motor is exactly where it should be, normal stepping or microstepping, doesn't matter. Once you apply load torque (in this case the force needed to push filament in), the position shifts a bit until an equilibrium is achieved. This shift is larger the closer the load is to the maximum torque.
I think these steppers have 1.8 degree steps (this is the resolution). So you will get the maximum torque at about half a step displacement (0.9 degrees). Any further than that and the motor jumps a step.
With microstepping we trade off torque for resolution. Microstepping divides the basic steps into for example 32 microsteps, meaning that we can set 32 positions inside one basic step of the stepper motor (in this case the resolution is 0.05 degrees). This is done by smart manipulation of winding currents, but the basic fact remains - to get full torque, you need half a step of deflection, so at any significant load you are several microsteps away from the intended position. Even worse: by manipulation of winding currents we reduce the torque available, because all the available current can't flow all the time. In fact, each pair of microsteps has a different maximal torque, so you will get a different force on the filament depending on the microstep currently set. In practice this should look like stronger extrusion for microsteps closer to the position of the basic step and a bit less extrusion for microsteps between the basic steps. Which is pretty much what your picture shows. More current alleviates the problem - more force means less (but still some) distance to the intended position.

February 26, 2016

Franci Kopac Franci Kopac
Honored
338 posts

Thanks Franci, it is a feature then :D.

February 26, 2016

psanyi psanyi
Exalted
949 posts

Yes, and the only way to get rid of it would be with proper servos ...

February 26, 2016

Franci Kopac Franci Kopac
Honored
338 posts

Now I understand, why this guy does it with DC motor and feedback:

This jumps to the interesting part.
#t=647
For some reason I cannot make the embedding work with positioning.

February 26, 2016

psanyi psanyi
Exalted
949 posts

One day, all 3D-printers will be powered with servos. Less power, lighter, better control, less noise. Extruders are the logical first step - with a servo you can control the pressure in the nozzle, which is much more related to the actual extrusion than the filament position we are using currently. It's not a particularly difficult technology to build, all normal printers use it, but it requires more tuning, adding a layer of complexity to building a 3D printer on your own. Like David in the video says, most people just copy designs and add small improvements, but this is a "from the ground up" upgrade, you need a new controller board, new controller software, different motors and quadrature encoders for position feedback. If I only had more free time ...

February 26, 2016

Franci Kopac Franci Kopac
Honored
338 posts

A real servo motor would introduce its own unique set of problems, not to mention added cost and gearing needed to develop enough torque to push the plastic through.

I would use a gear drive with the stepper or a bigger motor since you reach saturation around ~100 on the stock stepper.

92oz motor
Gear motor
The small 1 degree backlash could be compensated with a larger retract number if it was even a problem.

@franci
That doesnt explain why 3dforms print looks better than pansyls.
@pansyl
Couldnt get the link to work or I would give it a try also.

February 26, 2016

BV BV
Honored
308 posts

BV wrote:That doesnt explain why 3dforms print looks better than pansyls.

I expect this behavior to vary from stepper to stepper. I have an early model CraftBot. I expected that the top of 3Dforms' print would be missing also, maybe the current control is different in our machines.

BV wrote:Couldnt get the link to work or I would give it a try also.

I do not understand why, it is a simple shareable google drive link.

February 26, 2016

psanyi psanyi
Exalted
949 posts

I also have CraftBots, not the Plus.

February 26, 2016

3DForms 3DForms
Superstar
1774 posts

@BV: Added cost is only an issue until there is a commercial solution like we already have for the steppers. Normal printers, which are mass-produced and therefore intensely optimized for cost, have servos - if steppers were cheaper/better, they would have steppers. If you look at the video, the servo solution is much smaller and lighter even with the added gearing unit.
It's hard to judge the difference between prints, since they are not photographed in the same way, but the same thing happens, even if not with same intensity. Most likely, the difference is due to different filament - some PLAs flow differently than others. This is noticeable with color changes: I have a copper coloured one that prints different from white, even though I bought them at the same time in the same shop.

February 26, 2016

Franci Kopac Franci Kopac
Honored
338 posts

Yea servos are better, currently I am doing a cnc conversion on my mill using steppers with no feedback loop. Although at this level the cost would exceed the machine cost for good servos and all the support parts not to mention the cost of one ball screw alone costing more than the mill.
The video:
On a 3d printer using the resistor style feedback maybe viable and could work well over time, everything works better when its new.
The optical encoder on the extruder is a nice touch and the linear rails was what I planned to use before I received my Craftbot.

I think by the time that printer is ready for resale it will be well over $5000, I bet the CU team could ring in on what happens when you try to sell something for less than the cost of making it.

3D printers are evolving pretty fast though and as the parts start dropping in price there will be more options for everyone.

I dont know about that file , I am using Windows 10 and Firefox, one or both could be why I cant save it, all I get is a webpage folder and not the zip file. Ill try win7 or lubuntu and see if they can grab the file.

February 26, 2016

BV BV
Honored
308 posts

Just remembered that in the Sailfish manual there was a similar effect seen, named stepper clipping. It's not that obvious though as Psanyi's result though, so probably another cause, but also stepper related.
There are some other examples about "corner ringing" (fading out waves) ,
Extruder microstepping
"infill telegraphing" too
Extruder microstepping

Maybe nice to read it.

5.1.3.3 Stepper clipping (faint ripples on 25 or 50 Hz)

When infill telegraphing and corner ringing are not present, you may see some very faint rippling along flat faces when you look carefully in the right lighting and from the right angle. Figure 5.4 shows a print done on a Thing-o-Matic in ABS plastic which illustrates this effect.
Extruder microstepping
Figure 5.4: Faint ripples caused by stepper clipping
This faint rippling may be caused by clipping of the sinusoidal control signals to the stepper motors. Thing-o-Matics and Cupcakes with stepper motors from before May 2011 are especially vulnerable to this issue. Unfortunately, later models suffer as well, as evidenced by the model shown in Figure 5.4 which was produced on a Thing-o-Matic with post May 2011 stepper motors. Ed Nisley described and analyzed this in his May 2011 blog posting, Thing-o-Matic: MBI Stepper Motor Analysis, found at softsolder.com. At low speeds, this clipping produces a faint repeating pattern of about 25 Hz. At much higher stepper speeds, the pattern has a frequency of 50 Hz. Hardware replacement is needed to nearly eliminate the problem: stepper motors with winding resistances at or below 2 Ohms, sufficient pull in torque, sufficiently low inductance, and stepper drivers capable of handling the motors (e.g., Pololu).
Significantly slowing down the exterior printing speed may help mitigate the effects of stepper clipping. On well-designed and tuned printers, this is often the one remaining print quality issue. On suboptimal or untuned printers, it is still present but hidden by more visible printing defects.

March 3, 2016

Bartaar Bartaar
Service partner
1663 posts

I've seen those images, but my pattern depends on extrusion distance and not on timing, you get similar pattern at different speeds.

March 4, 2016

psanyi psanyi
Exalted
949 posts

Looks like it was because my Very ImPortant but early model CraftBot had some connections missing and could not alter the "Decay Mode" of the DRV8825 chip. With the necessary soldering it is way better now, those repeated artifacts are almost gone. One can test it with the M907 command. If M907E2 and M907E1 sound (whine) different, then that CraftBot is free from this effect. I guess most are.

Edit: Here is a test piece to show the effects of "Decay Mode". The middle is 1 (fast), the default on newer machines. The top is 2 (mixed), the only available on very old machines and the bottom is 0 (slow), I guess no one uses that. :-)
Extruder microstepping

June 9, 2016

psanyi psanyi
Exalted
949 posts

Whats this "necessary soldering?"


psanyi wrote:Looks like it was because my Very ImPortant but early model CraftBot had some connections missing and could not alter the "Decay Mode" of the DRV8825 chip. With the necessary soldering it is way better now, those repeated artifacts are almost gone. One can test it with the M907 command. If M907E2 and M907E1 sound (whine) different, then that CraftBot is free from this effect. I guess most are.

Edit: Here is a test piece to show the effects of "Decay Mode". The middle is 1 (fast), the default on newer machines. The top is 2 (mixed), the only available on very old machines and the bottom is 0 (slow), I guess no one uses that. :-)

June 9, 2016

Bixit219 Bixit219
Superstar
1448 posts

This is the lowest DRV8825 chip, I've cut it out from some old official picture of the PCB. The 5th pin from the top on the left is the DECAY pin, which puts the chip into mixed decay mode, if left as is. The pin above it is the FAULT pin, which is an open drain output, in normal use it is effectively unconnected.
Extruder microstepping
I'm told the later pieces got a solder bridge between them to repurpose the fault line, which was not needed on second thought to decay which they wanted. So I just put a bit extra solder between them at the green position, and voila, my artifacts are gone, but my printer is a bit whiny now :-(.
Extruder microstepping
Edit: For the extrusion it is enough to do it on the bottommost, but I've soldered all four.

June 9, 2016

psanyi psanyi
Exalted
949 posts

I was looking for the post 3dforms made about using the reinforced belts off of ebay, and ended up here.
Wanted to try the belts to see if it changes resonance any or ask what changes if any was observed.

Ive noticed now that I changed print speed I believe I am falling into a XY resonance and need to find either a command or some other way to reduce surface noise. (also changed the extruder motor to a lighter higher precision one, very close to a DC motor in smoothness that is visually noticeable.

I may need to find a new way to reduce XY noise now that I am printing at 90mms, although I may fine tune some settings and or go faster by evening the print speeds out more for a start.

Before you say its my fault :) I noticed the surface quality decline even before I changed anything/settings from the last firmware upgrade, I am also using the M1210 .5 I believe as a startup setting as advised by the op, not sure that is effecting the surface, mostly noticed in parts with radius's.

opinion...
The XY motors turn really slow and could be setup double precision with more idler pulleys and or smaller "gear" on the stepper if there was a way to mod the settings/firmware... that would probably help with cogging or resonance plus higher resolution.

July 11, 2017

BV BV
Honored
308 posts

I thought I would share my print of this but I cant run higher than E15 now.
Instead of editting the gcode I just made a 20mm cube and ran it with my adjusted settings.


80mms, .2mm layers and had to turn down the temp to 225c, not sure it can go lower with ABS and probably the only type of print I could run a cooling fan with, but I didnt run the fan this time.

I ran into a problem with craftware making this print, it shows in the gcode and also I made a video of it double extruding on one side. On the clockwise move it retracts but then without changing Z it comes back counterclockwise and double prints the one side.

This was done with my extruder motor swap in place, I think the finish is looking pretty good, now to do something with XY...

Extruder microstepping
Extruder microstepping
Extruder microstepping
Video of double extrusion

July 14, 2017

BV BV
Honored
308 posts

I havent tried the new firmware but heres a last run minus the new M5k settings.

This was done with Mattercontrol at .2 layers, 225 degrees- ABS .398 filament dia. and increased speed mostly 80-100mms and E15 constant extruder current. Finish time was about a minute longer than Craftware.

I tried to use .398mm dia. in Pslicer but it came back with an error about filament dia. and I was dead in the water from there.

The finish inside and out looks flawless, even through the cameras eye other than the one corner error, I maybe able to correct that in settings since it was the starting/stopping point of the print.

The part measures .4mm to a max of .45mm thick which is really tight.
STL is 20mm outside and 19.199mm inside.
Extruder microstepping
Extruder microstepping

July 15, 2017

BV BV
Honored
308 posts

Tried an 8 diode smoother on the extruder:
Extruder microstepping
This is the result:
Extruder microstepping
The left is with diodes, the right is without diodes. I do not understand why, but now I get the best result is with SLOW decay and that was the worst last time, but it is way better with all settings.

This is for the old, DRV8825 chip boards. I've ordered it from Aliexpress, search for "TL-Smoother Addon". Unfortunately all have the wrong connectors for the CraftBot, so some soldering is required.

May 10, 2019

psanyi psanyi
Exalted
949 posts

Great job, psanyi! That looks really good. Thanks for sharing.

May 10, 2019

3DForms 3DForms
Superstar
1774 posts

Now I've tested these on the XY (AB) axes too, but had no apparent improvement on quality.

Those big PCBs held by the connectors were a bit dodgy, so I went back to the original config on the AB. I kept the smoother on the E, where it helped and it got some support.

I did not try it on the Z axis, as the usual layer heights have whole number of full steps. With the 2 mm Z thread pitch and 200 steps per revolution every 0.01 mm is a full step in Z.

May 14, 2019

psanyi psanyi
Exalted
949 posts
To start a discussion or reply to a post please Login or Create an account.