klipper_frame_expansion_comp icon indicating copy to clipboard operation
klipper_frame_expansion_comp copied to clipboard

Need methodology for different active lengths

Open cmgreyhounds opened this issue 3 years ago • 1 comments

I'm trying to apply this to an i3 bedslinger style frame, where the gantry is supported by twin stainless steel leadscrews, and inside an enclosure. The deviation from expected Z position is going to be dependent on the thermal growth of the length of leadscrew that is supporting the gantry. When the nozzle is at z=0 there's about 50 mm of active leadscrew, so if the chamber was heated from 20C to 40C the leadscrews would grow thermally 0.0000173 mm/mm/C x 50mm x (40C-20C) = 0.017mm. But when the nozzle gets up to z=100mm there would be 100+50 = 150mm of leadscrew active, so the total growth would be 0.0000173 x 150mm x 20c = 0.052mm. So the compensation needs to know the active length of the support element, which may change from layer to layer as it does in the case of the i3. I don't think what you currently have set up here takes that in to account.

cmgreyhounds avatar Apr 13 '22 00:04 cmgreyhounds

Ideally this would be implemented by allowing arbitrary equations in temp_coeff or an optional alternative equation config parameter. This would need to be parsed for Z height and temperature variables.

I will not be able to work on this for some time still, but feel free to submit a pull request!

alchemyEngine avatar Apr 21 '22 17:04 alchemyEngine