Filament diameter tolerance compensation
NitroFreak last edited by
I want to implement a tolerance compensation via continuously measuring the diameter with a caliper and changing the extrusion factor based on that information.
What would be easier ?
- Implement a diameter measurement system separately with an arduino and have that feed the information via an unused I/O Pin into the Duet to change the Extrusion factor
- Implement directly in the Duet. ( I would not know where to start though)
The reason to why is that I work with some very high temperature materials like PPSU, which is not available in very tight tolerances. My typical filament has 1.75+0.05-0.07mm tolerance.
Because the filament is so expensive and I still want good quality prints, i thought about the diameter compensation.
Any help or point in the right direction would be great
Maybe with a device like this?
We have considered this in the past and there are probably a few forum discussions if you look back. Broadly there are two issues to overcome before it makes sense to tackle the job of changing the firmware:
Measuring the diameter accurately enough to have a sensible value for the diameter, this would need to be done on two planes as filament that is poor enough to benefit from this can also be oval in cross section, not round.
Characterising the elasticity in the system between the measuring device and the extruder output accurately enough that the compensation is applied the right point of any pressure change due to the change in filament diameter.
Those are both hard problems to solve, before we get to the firmware modification that would be required to handle this and synchronise it with pressure advance and non linear extrusion etc.
Every time we discussed this before we came to the conclusion that the way forward was to purchase filament with a consistent diameter.
NitroFreak last edited by
Thanks for the considerations.
Unfortunately buying different filament is not an option for me, i have to print PPSU which is extremely difficult to make into filament and to keep good tolerances. It is this filament. https://www.solvayamshop.com/ccrz__ProductDetails?viewState=DetailView&cartID=&sku=Z58-39679&isCSRFlow=true&portalUser=&store=&cclcl=en_US
My idea for the mechanical side of things was to use one or a pair of calipers with ball bearings screwed to them and tensioned with a spring, that the filament runs through. It is very easy to latch on to the calipers with an arduino and read out the measurements. I can then turn the measurements into a comparison of the area and compare it to the should-be area, which then can be converted into an extrusion factor, which the arduino could then tell the Duet via a PWM signal to adjust, say 0 was a 0.8 extrusion factor, 127 was a 1.0 extrusion factor and 255 was a 1.2 extrusion factor. This would then provide a "good enough" resolution.
@Phaedrux Thank you for the link, it is interesting. However, i dont know how accurate that optical measurement would be. I think i would trust a pair of calipers more
I have found that Marlin can do a similar thing, just within the firmware. found here
They have a setting for adjusting the distance between the measurement point and the hot end
In the Duet it would be a simple read of an Input pin and allocate that value to the extrusion factor.
Could you maybe point me in the right direction of where to do that?