Thread pitch determines resolution. More threads per inch results in smaller step increments. Thus a 1/4-24 is better than a 1/4-20. (Yes, I know, those are machine threads not acme)
No, both are wrong because in either case, the number of microns per step is a non-terminating decimal, so you WILL have rounding errors in your layer height causing some layers to be thinner (and thus more compressed) than others.
That problem can be reduced, although not fixed, by using more correct layer heights in your slicer (so things like 0.1058mm instead of 0.1mm). But still, you’re only masking the underlying problem, and you’re far better off using a leadscrew with an actual metric pitch if at all possible.
Beyond that, I’m not sure I could choose a truly good leadscrew. But I do know a metric pitch is always the first step.
@Matthew_Satterlee It’s a pretty recognizable pattern. I know I saw it, or something like it, on my old Solidoodle 2 many times before @Whosa_whatsis wrote up the math of why everyone with imperial threaded leadscrews were seeing periodic errors just like this. The fixed layer heights I mentioned helped mask the issue well enough that you can almost ignore it. Almost.
I’ve also seen patterns somewhat like this with bad PID tuning on heated beds, but since switching leadscrews appears to have fixed it, I’m comfortable believing it’s bad leadscrew choice.
I’m not saying he’s wrong, I’m asking what was done to rule out mechanical error… Did anyone experiment with adjusting the steps/mm to a less problematic number? For a 1/4" Acme thread and 1/16th micro-stepping you could set the steps/mm to 2000 and see if the banding was eliminated. There would be about 1% dimensional error but it would isolate the issue as a rounding or mechanical error.
The prusa calculator linked above is useful, though the “Error over 10cm” column is useless, because @Josef_Prusa misinterpreted this as accumulating error when it is actually non-accumulating error.
@Whosa_whatsis not debating your point, just choosing the current cheapest option. I’ll work on sourcing the m6 lead screw. We have taken steps to move completely to metric on everything so it’s the final step.
On my dozen or so bots at Printrbot, there is no banding. None. Even when I do .3, .2, .1… Nothing. Our reviews and ratings speak for themselves.
All that said, I look forward to switching over (eventually) and removing any doubt or inconvenient math.
My designs have, admittedly, been off the beaten paths from time to time. Some I stand by as “good enough” for 3d printing… Some I look back on with regret and embarrassment. I don’t regret my cheap little acme rod, but switching sounds reasonable and prudent.
I think this is a red herring. My machine is about 2000 steps per mm on the z axis. Rounding errors will not be more than one step or 1/2000 mm. This is not enough to cause visible banding. A belt driven Z axis would exacerbate this problem by one to two orders of magnitude yet from what I’ve seen, such machines exhibit less banding, not more.
Banding issues equal to lead screw pitch in my experience have always been resolved by addressing mechanical issues. Especially subtle changes in machine geometry caused by a too stiff z coupler and/or too flexible structure. Other causes may be stiction in z axis and/or incorrect assembly of Z coupler such that the lead screw is not fully seated on the motor shaft.
I think it’s a stretch to think the most impactful change he made was Imperial to metric in that instance. He changed the coupler and the nut at the same time so my gut says the mechanical alignment was the key improvement made. Don’t get me wrong, I also think metric leadscrews are the way to go, I just don’t think this is a compelling example of why.
Look, I used imperial screw threads as an example of thread pitch differences, don’t get hung up on it. Yes metric will give you greater accuracy, by the simple fact that it is smaller in resolution. A m8-1.25 is not as fine a thread as m8-1.5, again not acme threads being used as an example. For true precision, you need to know the tolerances of your machine elements. Also your g-code should be intelligent enough to convert your units no matter what you use.
@Dan_Harvey You’ve got that backwards. Metric pitch is defined as the distance between adjacent threads (multiplied by the number of “starts” if applicable). 1.25 mm pitch is finer than 1.5 mm pitch and 1.0 mm is finer still. In any case, none of these will give you noticeably different results due to the difference in theoretical resolution. Even if you ignore microstepping completely, the 1.5 mm pitch is capable of giving you 7.5 micron layers at full steps.
From what I understand, this issue is because one layer may be calculated at 20 steps while another is 30. If so, then couldn’t we modify a marlin firmware to log it’s Z steps so we’d know how much difference there is?
It’s math, absolute accuracy of the z axis through the steps and the pitch. The firmware knows the position, but it can only move as accurate as the mechanics. It is obviously more apparent at low layer heights, like 0.1mm or lower. The actual position means that the layer height is off by a percentage until the position becomes divisible by the steps/mm. In whosa’s example it comes to 0.1048mm instead of 0.1mm, this means that the material is not flattened as much, making gaps in solid infill or the outer shell smaller. As the layers go up, this is reversed to where the material is flattened more. The net effect is a wavy pattern on the outside. This is not a mechanical failure, it is purely mathematical due to the absolute resolution of the machine, and the conversion of units. All of the reprap firmware operate in metric, so it goes without saying that the mechanical movements should be metric as well.
Imperial is terrible, using fractions on computers that can only natively store floating point. Without an added layer of abstraction, you will get further rounding errors.
An example: If you are printing with 0.2mm layers at 2016 steps/mm, this will be 403.2 steps/layer. Layers will be placed at 403 , 806, 1210 1613, 2016 steps or .1999, .3998, .6002, .8001, 1.000 mm. Without microstepping actual layers are .198, .397, .603, .802, 1.00. Trivial errors either way. Ergo, selection of leadscrew can be based on price and other factors than steps/mm.
thanks for discussion, it raised my awareness on layer height on my custom build wallace 3d printer, which got 5/16 inch rods not 8mm - thx to prusa calculator page got it modified and some of the effects gone (rest is wobble on coupler).
You can get banding even if the number of microsteps per layer is the same, but that number is not divisible by the microstepping setting. In other words, because microstepping is designed to smooth out the motor’s movement rather than to increase positioning precision, you need every layer to be some whole number of FULL steps from the last. For .3mm layers, (depending on pitch), you will have 75 full-steps at most, and the difference between 75 and 74 isn’t huge. If you use the same screw to print .05mm layers, you will be trying to make layers that are 12.5 full steps, and the difference between 12 and 13 is enough to cause visible banding if the microstepping is inaccurate (which is always is, so some degree).