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?
koreandi last edited by
Dear DUET-Team and DUET-Users,
I don´t want to grab out such an old topic...
But I am standing on a point to decide wheter I keep on going with DUET or Marlin/SKR.
I need to print parts with highly metallic-filled filament. The parts will be debindered and sintered and need to be filled by 100% in volume.
Having am Filament with 1,75 mm +/- 0,05 mm means the deviation can be 12 %. Most of the filament I tested so far do even have higher deviation within small sections on the spool.
Is there any way to use a softwarecompensation triggered by any kind of sensor?
There is M221 or M404 to influence it. But compared to Marlin there is no M405 to set the distance.
It would be nice to hear about any solution.
I want to stay with DUET and know a printer-developer that highly want to use such a feature.
oliof last edited by oliof
Hi @koreandi, another option might be a custom extruder that adjusts forward purely based on the mechanical principle of driving the filament. According to its inventor, the VDE or Schnekenstruder is such a design.
It is not commercially available, but you can find out more about it -- including BOM and how to build it -- at the venerable RepRap forum. Look around in that section of the forum, there are more postings about it.
koreandi last edited by koreandi
Thanks oliof for your quick reply.
The printers extruder is based on two belts transporting the material. The Belts eliminate any grabbing into the material and the feedrate is not influenced by any change in filamentdiameter that results to another circumference on the driving wheel.
The filament used is a WC-Co-filled fialement which is extremly brittle. I am not sure if such a rotaryextruder (simmilar to fuselab-design) might work.
oliof last edited by
@koreandi yeah that might be a bit of a challenge since the Schnekenstruder would be cutting a tiny groove into the filament (less than normal hobbed gear deformation for most plastics, but tungsten/cobalt filled is kind of a special case ...).
Alex.cr last edited by
koreandi last edited by
The hardware should not be the problem.
It is the firmware/software implementation.
I'll add this to the firmware wish list. What is the preferred communication method between the filament width measuring system and the Duet: async serial, or something else?