This seemingly innocuous calibration part was produced with a rather interesting set of numbers.

When extruding, the volume extruded (V) in mm³ is equal to πR²E, where R is radius of the filament, and E is distance passed from skeinforge/sfact via gcode.

For gcode to be printer-agnostic, we need a universal unit for filament extruded.

If we choose mm³ units, then we must solve D for D=2R, V=E, V=πR²E and feed this to skeinforge/sfact. The result is D=2.√(1/π), or about 1.128mm. Filament of this diameter would have the curious property that 1mm (length) has a volume of exactly 1mm³.

We must then alter our firmware to accept E in units of mm³, and adjust all the corresponding speeds appropriately. I had my sfact tuned for a filament diameter of 3.0mm. π(3/2)² is almost exactly 7, so all speeds must be multiplied by 7, and retract distance must also be multiplied by 7.

So, with diameter = 1.128 (orig. 3.0), E_steps=90 (orig. 635), retract distance = 12 (orig. 1.7) and retract speed=400 I produced the pictured calibration part.

Next step: move retraction into firmware! It's unlikely that we're all going to have printers that need to suck back 12mm³ of filament!

ps: my extrusion width is set to 0.5mm rather than the default 0.6, so the pictured reading shows a fairly well calibrated set of numbers :)