Stepper Motor Upgrades to Eliminate VFA's (Vertical Fine Artifacts)

Stepper Motor Upgrades to Eliminate VFA's (Vertical Fine Artifacts)  

Page 49 / 50
Active Member

Ok i was able to fix the Combilier error, strangely I had 3 different Prusa Research Boards + the Ultimaker Board installed in my IDE.
Have now uninstalled all times and then searched for the right one via your json link.
Could now create it for the Einsy with "227528 bytes (89%)", are these values correctly?
Now I just have to figure out how to get the right K values, can that be done with the Marlin K-Factor calculator?
I then have to enter the correct values in the printer menu, is that true? Where can I find this menu?

Posted : 15/07/2020 6:19 pm
Active Member

Is this address from Github still the current one? Because another is always mentioned here.



Posted : 15/07/2020 6:35 pm
Bunny Science
Noble Member

Use the tool to create your k-factor testing file.

Use defaults except set your nozzle and bed temp to match your filament

Starting value for K of 0

Ending value for K of 0.5

K-factor stepping 0.025

Let your printer print the generated file.

Once you determine the k-factor that is correct for your printer, put that value into the PrusaSlicer Printer Settings custom startup g-code as a M900 command like below snippet where I set my k-factor to 0.1.



M104 S[first_layer_temperature] ; we heat extruder AFTER mesh to minimize ooze
M109 S[first_layer_temperature] ; wait for extruder temp
M900 K0.1 ;set LA 15 kfactor
G1 Z0.7 ; kuo put slightly above bed for easy clean intro line
G1 X170.0 E9.0 F1000.0 ; intro line
G1 X210.0 E12.5 F1000.0 ; intro line



This post was modified 8 months ago by Bunny Science
Posted : 16/07/2020 2:10 am
New Member

Wanted to share my experience.

I tried the  OMC stepperonline 17HM15-0904S and it made VFAs worse.

I have ordered a LDO-42STH40-1684MAC AKA LDO-42STH38-1684MAC from Printed Solid, it will be here today and will report back.


X-axis - jerk:5, current 35

Tevo 17HD4401 - significant VFAs

Stepperonline 17HM15-0904S - significant VFAs and noisy high pitch whine

Y-axis - jerk:1, current: 35

17HD8401-C5.18 - no VFAs.

Posted : 29/07/2020 1:35 pm
New Member


I tried this way and I noticed in the gcode that after few lines, the k factor is overwritten to 0.06 (default)

M900 K0.1 ; Filament gcode LA 1.5       *********** this is the one you set
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
M73 Q0 S12
M73 P0 R12
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
M900 K0.06 ; Filament gcode LA 1.5         ****** this is the overwritten
M900 K30 ; Filament gcode LA 1.0


Instead, I put the k factor in the filament settings > custom G-code

In the (Start G-code) box, the first line at the end, you will find this:

{elsif nozzle_diameter[0]==0.6}0.04{else}0.06{endif} ; Filament gcode LA 1.5

Change the bolded 0.06 to your desired value and it will be set without being overwritten

Posted : 29/07/2020 10:17 pm
Bunny Science
Noble Member

I would simply put the desired LA value in the later executed line Prusa code setting M900.

Posted : 30/07/2020 11:06 am
Active Member

First and foremost, a huge thank you to @guy-k2 for his work on the VFA elimination, and all of his other amazing contributions to the community!

I am very happy with the print quality after switching over to the recommended 0.9 degree Moons for X and Y, and swapping to a Bondtech extruder. The one thing that I'm still struggling with is X and Y layer shifts when printing in stealth mode. (I compiled the firmware as per Guy's instructions, including the correct defines for my setup: 0.9 degree X/Y, Bondtech extruder.)

What I suspect is happening is that there is insufficient stepper current in stealth mode which causing layer shifts, but I don't know why I might be the only one with this problem.

Another clue is the fact that I cannot complete the belt test when stealth mode is on. The Z axis goes up a bit, and before the X starts moving I get an axis length error. If I turn off stealth mode, belt test completes successfully. All rods are well lubricated, X and Y motion is smooth and belts are tightened just right.

I'm tempted to increase stepper current in the source and recompile, but figured I would check to see if anyone else has run into this, and if so, if this might be the right solution.


Posted : 31/07/2020 2:38 pm
Lukas Hejtmanek
Active Member


any idea to eliminate horizontal fine artifacts? I'm seeing regular ~2mm repeating pattern.

Posted : 31/07/2020 2:43 pm
Active Member

I don't know if what I ended up doing is the best or most correct way to address layer shifts in Stealth Mode, but since no one replied, I pushed forward.

After a bit of experimentation I ended up with the following:

#ifndef X_AXIS_MOTOR_09 
#define TMC2130_SG_THRS_X 1 // std stallguard sensitivity for X axis
#define TMC2130_SG_THRS_X_HOME 1 // std homing stallguard threshold for X axis
#define TMC2130_SG_THRS_X 1 // Kuo change here if different needed for 0.9 degree motors
#define TMC2130_SG_THRS_X_HOME 1

#ifndef Y_AXIS_MOTOR_09 //Kuo
#define TMC2130_SG_THRS_Y 1 // std stallguard sensitivity for Y axis
#define TMC2130_SG_THRS_Y_HOME 1 // std homing stallguard threshold for Y axis
#define TMC2130_SG_THRS_Y 1 // Kuo change here if different needed for 0.9 degree motors
#define TMC2130_SG_THRS_Y_HOME 1

#define TMC2130_CURRENTS_H {10, 10, 35, 30} // default holding currents for all axes
#define TMC2130_CURRENTS_R {10, 10, 35, 30} // default running currents for all axes

These seem to work for me. The X and Y axis do not crash violently into endstops anymore on homing or belt tests, and there are no layer shifts when printing in stealth. (Interestingly, belt tension numbers dropped each time I reduced the stallguard sensitivity numbers. Also interestingly the belt test still fails in stealth, exactly as it did previously.)

Your mileage may of course vary, especially if you have a different 0.9 steppers than the Moons I'm running, or even a different batch of the same stepper models (MS17HA2P4100)

Now, can someone please kindly summarize how to merge the 0.9-Degree-Stepper-Support branch with the mainline 3.9.0 firmware? I tried doing so with GitHub (command line and Desktop), but just ended up with a bunch of conflicts that I couldn't readily resolve.

Posted : 04/08/2020 10:11 pm
Noble Member

Just to add something to the discussion here that was relevant a while ago. There was a bug in the firmware that would appear on high speed deceleration with higher microstep or steps/mm counts. 

So contrary to popular belief, your 0.9 degree steppers are not maxing out the Einsy's capability at 200 steps/mm & 16 microsteps. 

I've been printing happily with a modified 3.9.0/200 s/mm/16 uS on 0.9 degree steppers after merging this pull request.

(Before I get the question, no, there's probably not much point in me sharing my changes, they are not stepper related. I could run a stock 3.9.0 setup because I'm fortunate enough not to need to mess with homing, if I wanted. I just have Q0L tweaks related to the MMU and other experimental features)


Posted : 04/08/2020 10:23 pm
Active Member

I got a link to a MK3s 3.9.0 firmware in another forum in which someone wrote specifically for the 0.9 OMC stepper on X+Y axis. He even offers a bond extruder, but this can also be left out. If you like to test them or maybe need them, here is the link.

Posted : 05/08/2020 6:58 pm
Active Member

Thank you for sharing this fork, @ricardo-f2!

This was exactly what I needed for my config, and it worked perfectly with my setup: 0.9° Moons on the X/Y, and the 0.9° LDO pancake on the Bondtech extruder!

I literally git cloned, compiled and flashed. Didn't need to change a thing, and it worked right away.

Much appreciated!


Posted : 07/08/2020 7:02 pm
New Member

I FINALLY reduced my VFAs

so I tried both the 17HM15-0904S and  LDO-42STH40-1684MAC  and NEITHER of them helped my VFAs, they were awful. For sharts and gargles last night I upped my x and y current from 35, 35 to 40, 40 and viola this was the biggest improvement in VFAs

I guess I had to increase the currents to effectively drive the motors

current setup up

X: 17HM15-0904S with TMC2130_current = 40

Y:  LDO-42STH40-1684MAC TMC2130_current = 40

heatsinks on the drivers are a requirement for running these currents at 35, I also added a 40mm fan in the case for good measure. 

steppers also get a little warm probably about 45C I may add heatsinks to those later.

Posted : 10/08/2020 12:54 pm
New Member

Huge improvement in VFAs on the corners. 

they may not seem too bad but the root cause of the VFAs causes the steppers to have a notchy motion which jerks the bed and causes the part to shake and amplifies VFAs the taller you print.


VFAs at the top of the 200mm part

Posted : 10/08/2020 1:04 pm
New Member

TL;DR: After installing 0.9 degree steppers on X/Y, xyz calibration won't pass on Prusa MK2x

Hey everyone,
first - thanks all for the information and experiences that you share here. That's what pushed me towards swapping X/Y steppers to 0.9 degree Moons (and geared 1.8 degree pancake on extruder).
Everythink went surprisingly smooth (given my lack of knowledge and not understanding half the stuff discussed here).
Ordered MS17HA2P4100 and pre-prepared cables, plugged in, changed steps and went ahead with printing. Didn't even need custom firmware. The results are really great and I felt satisfied ...

... until I needed to re-calibrate xyz.
I realized that all the firmware customizations discussed here apply to MK3 only and are modifying trinamic drivers. Which, unfortunately, I don't have on my MK25S Bear.
I was hoping that I'm not the first one running into this issue, however my googling skills failed to find anything useful for MK2x line. After some time, I just gave up googling and opened source code instead.
(Disclaimer: I do development for a living, although not C++ and far from hardware related. I'm able to find pieces related to my issue, but probably missing a lot of context and possible implications)
I ended up tweaking a bit more than expected: . With these changes, I can get through NEWXYZ calibration again.
I tried to make it more generic, following some practices that I saw in this thread. However I'm aware it still is a bit tailored for my use case. (One known issue: self-test doesn't work either, but I can live without it)

So, basically, I'd like to ask for any feedback. And advices, if it can be (or how to make it) useful for others?

Posted : 11/08/2020 9:45 am
Active Member

For @michal-k11 or anyone else who is interested in running 3.9.x with 0.9 degree steppers, there was work done by SigmaRelief to allow Vertigo235's branch to be easily configured for 0.9:

Unfortunately it has not yet been merged, but I can confirm it works when applied to Vertigo235's branch.

I'm running it successfully on my MK3S right now with Moons 0.9 X/Y and Bondtech extruder with 0.9 pancake stepper. Lots of variants are supported, including 2.5, 3, 3S, various Bears, taller Z, etc. If you would like to see this merged, please comment on GitHub.


This post was modified 6 months ago by gchedzhemov
Posted : 03/09/2020 3:24 pm
New Member

Just wanted to share my experience so far. I built my mk3s kit a few weeks ago and was very happy to find a solution for the vertical lines I was seeing. The past weekend I installed the 0.9 OMC stepper motors (17HM15-0904S) for X, Y, and Z. Unfortunately I have seen no improvement even after trying many of the different solutions posted (motor current, firmware from guy-k2, stealth mode, belt tension, microstepping, linearity correction, fan off/on etc.). I'm starting to think that maybe I am looking at something different and thought I'd post a photo here to see if anyone has another idea on what I can try. I am referring to the vertical lines best visible in the 3rd and 4th section from the bottom in the photo below.


From top to bottom 15 mm/s @ 0.2, 0.15, 0.1 and 0.05 mm layer thickness, 0.6 and 0.8 mm extrusion width @ 0.05mm thickness, 50 mm/s @ 0.2, 0.15, 0.1 and 0.05 mm layer thickness.


The vertical lines are not so noticable at thicker layers (0.2 mm, bottom section), but get progressively worse towards 0.05 mm layer thickness (4th section from the bottom). The first 4 sections are printed at 15 mm/s at 0.2, 0.15, 0.1 and 0.05 mm thickness. The next two sections are with a layer width of 0.6 and 0.8 mm (the vertical lines are still spaced the same here despite a different extrusion rate, so I'm pretty sure it's not extruder related). The top 4 sections are at 50 mm/s with thickness 0.2 - 0.05 mm. Test is printed with the silver PLA that came with the printer. I measured the lines to  be about 0.32 mm apart on average.


Although the vertical lines are masked at 50 mm/s by ringing and such, I tend to print smaller models at lower speeds and am quite bothered by the defects on the surface at 15 mm/s and lower layer thickness.

Posted : 06/09/2020 9:28 pm
Active Member


The first root cause that comes to mind is problem with your X/Y axis bearings - one of the small balls in a bearing may have stuck, so this increases friction and eventually scratch your rods badly. Have you noticed any variability in surface quality in X or Y direction only? Another thing to check is idler tension (Bondtech gears). I saw a comment that if a filament is ground too much by the gears than it may affect extrusion down the line because of pressure variability in the nozzle.

Prusa Bear MK3S + MMU2S. Hotend: TriangleLab Dragon Hotend + Rubber Sock.
TheZeroBeast MMU2S firmware...
Posted : 06/09/2020 10:00 pm
New Member


Thanks for your ideas on this. I see the lines both in X and Y direction. I have tried to put minimum idler tension but unfortunately this had no effect. Although I do have some IGUS bearings lying around, I haven't had the time yet to tear down the printer to replace them. Also not sure how likely it is that the bearings are the cause when it is both in X and Y direction.


One other test I did at different speeds did show that the lines are really most noticable at 15 mm/s. Even at 14 and 16 mm/s there is a remarkable decrease, to the point that the surface looks more shiny instead of rough when viewed at an angle. The lines are still visible, but much less. This makes me think it may also be some kind of vibration/resonance issue. I already have the printer with solid feet and felt on a concrete tile on some foam. Even tried a stepper motor damper on X-axis to no avail. Not sure what else I can do. Until I can pinpoint the cause, I am definitely changing the cooling threshold minimum speed in prusaslicer from 15 to 16+ mm/s 🙂

Posted : 09/09/2020 2:31 pm
Eminent Member

I have been out of the loop the last 8 months or so...

Can someone please point me to the latest firmware repo please?  I know Guy has been been occupied with bigger things.

I'm still on 3.8.ish


Posted : 12/10/2020 9:09 pm
Page 49 / 50

Please Login or Register