Two truly excellent and well-written pieces. Some small suggestions:
1) In banding, how about adding some info to help a user identify the type of banding they have based on the banding properties, e.g.:
- z-backlash: random?
- wobble-driven z-displacement: periodic at 18tpi, symmetric (peak on one side of print matched by peak on opposite side), often sinusoidal, effects amplified at low layer heights, fixed by firmware compensation
- wobble-driven x/y-displacement: periodic at 18tpi, asymmetric/helical (peak on one site match by trough on opposite side), often sinusoidal, not affected by layer height, possibly fixed by third rail
- slicing/xy backlash: asymmetric, period = ?
- temperature swings: periodic but uneven, spacing between bands decrease as layer gets larger/more complex.
2) The preload nut referenced is really more of a jam nut IMHO, though I know this is what most people use. I suggest also linking to the spring-based preload (http://www.thingiverse.com/thing:34397) as it won't jam and should theoretically give better results since a spring make sure there is no gap at all.
3) In firmware compensation, mm2tts found out that the correct layer height should be measured from the *top* of the object when measuring the sinusoidal phase using a "drifting" object. Suggest noting that.
4) For measuring the error, suggest clarifying that this method can create a compensation curve of any periodic shape, so can be especially useful if banding is not strictly sinusoidal.
5) For measured (custom curve) compensation, suggest clarifying that if using a dial gauge, the distances entered into the gcode should be relative to the initial bed position (~.1, ~.2...), not the actual distance of the head from the bed (~1.5, ~1.6, ...).
6) Since sinusoidal correction also involves some sort of measuring (of test prints), what do you think about renaming these sections based on the curve shape (e.g. "experimentally-obtained sinusoidal curve" vs "measured custom curve")
Again, great job on everything.