Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
flyguy

An idea to calculate volume of extrusion

Recommended Posts

I had a thought, because the volume of material being extruded is so critical to quality prints. I was trying to think of a way to calculate the amount of material is being extruded.

My thought is to use weight to calculate the volume of extruded material.

http://www.tekscan.com/flexible-force-s ... ifications

Anyone have input on this idea ?

Share this post


Link to post
Share on other sites

well, we already have the two parameters E_steps_per_mm and filament diameter. Those two together give you a volume extruded, and are both fairly easy to measure. They work fairly well too, as you can see people on this forum have been able to print at very tiny layer heights indeed (0.05 mm?). At that height, any error in volume extruded becomes disasterous, and the fact that they are able to do it means measuring those two parameters works fairly well.

I don't see how you could use weight to measure the volume of filament going in. You could measure the amount of filament coming out but then you can't do that during printing. One thing we could do with those sensors, however, is measure the amount of pressure applied to the filament by putting that sensor on the bowden tube. Bowden tube stretch is likely proportional to the force pushing the filament, which is in turn proportional to the rate that extrudate is coming out. Since we also know how fast the filament is being pushed in (extruder stepper) we could set up a control system to make the pressure on the filament stay constant, or make retraction much more effective by retracting only enough to bring filament pressure to zero. If we could regulate filament pressure, I think we could do a lot to eliminate strings, blobs, and filament slip, and the machine could be much more failsafe.

The question is whether putting a sensor on the outside of the bowden tube would even work; whether its sensitive enough, and whether there is a better way to solve those problems besides adding more complexity.

I wonder how much those sensors cost...

Share this post


Link to post
Share on other sites

I agree with the need of measuring the input filament, but measuring the weight as input parameter is impossible/wrong, especially if you think about other plastics (i.e. ABS vs PLA etc).

I was brainstorming with taylor the other day, and a simple way to get great adjustment of the extrusion during a print would be a digital caliper, hacked to connect to the arduino (see http://www.instructables.com/id/Reading-Digital-Callipers-with-an-Arduino-USB/), and mounted (with a yet to be designed holder) under the extruder. the arms (or mouth or whatever they're called) also get a printed holder for 2 bearings, one on each side (or 2 on each side, and the filamant is running in the groove between the 2 bearings), and a nice spring to keep pressure on the bearings holding the filamant. the firmware would need to know the distance between the caliper and the nozzle, and store that value.

before you slice, you would use another caliper, and measure the diameter, and slice accordingly. then you zero the mounted caliper, and start printing. any change in diameter (assuming you have good filament that is round, not the some cheap filament that isn't round), will be transmitted as a +-0.xx mm from the caliper to the arduino, which in return would adjust the extrusion via M221 Sxxx exactly after xxx mm (however long the distance between the caliper and nozzle is).

this would require a new feature in the firmware, some new inputs into the arduino, but would keep the extrusion pretty constant, especially if you are using filament that is round, but varies in diameter (greatly).

by extension, using 2 calipers perpendicular, one could use cheap, non-round, filament.

Share this post


Link to post
Share on other sites

How about a belt around all four rollers? you could read 'circumference' with only one caliper. You could spring load the caliper to keep the belt under tension. or a different take on that- you could wrap the belt around a cog on a small quadrature rotary encoder and save a lot of space, all in a printable frame. the belt path would be spring->belt->encoder cog->bearing->bearing->bearing->bearing->end clamp.

This is the type I'm familiar with, although there's bound to be something cheaper.

http://www.usdigital.com/products/encod ... ary/kit/e5

Kyle

Share this post


Link to post
Share on other sites

It looks like there are two parameters witch determine the volume: length and diameter.

as far as i understand, Flyguy is talking about the length: with the force sensor you measure the force on the tube and from there you can calculate the length deviation of the bowden witch stands for a length deviation of the material volume.

The measurement and calculation seems quit complex to me but really add value.

A cheaper and easier way can be a feed forward in your extrustrusion (extruder acceleration: force on bowden: longer bowden: needs higher set point and visa versa)

The bowden can be approached like a spring and we can predict its reaction an anticipate on it.

On the other hand: Joergen and thedudevt focus is on filament diameter variation.

I don't got a clue what the diameter variation profile looks like and how big is the impact on the extrusion result ?

In other words: how big are the diameter differences and how local are they ?

And another question from myself:

Does anyone has a good document where the hole extrusion process is described?

That means: from G-code to firmware calculations to motor steps to extruder gear ratios to nozzle extrusion.

Grtz,

Berend

Share this post


Link to post
Share on other sites
On the other hand: Joergen and thedudevt focus is on filament diameter variation.

I don't got a clue what the diameter variation profile looks like and how big is the impact on the extrusion result ?

In other words: how big are the diameter differences and how local are they ?

The constant changing the filament diameter in the slicer started to bug me, so I just left it at 2.90mm, and I have a small table on the screen stuck to the computer used for printing (next room, can't stand the ABS smell):

2.9mm base:

2.60mm 124.4%

2.65mm 119.8%

2.70mm 115.4%

2.75mm 111.2%

2.80mm 107.3%

2.85mm 103.5%

2.90mm 100.0%

2.95mm 96.6%

3.00mm 93.4%

the filament diameter changes over the course of 1m, depending on the quality, but 0.05mm variations are common for good quality filament (+-4%). bad filament can easily vary +-0.2mm (+-15% bad enough to ruin a print). so during longer prints, I measure the diameter, and simply adjust it via M221 Sxxx with the table above. crude but effective. my digital-caliper-readout tool would do the same, only automatically.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!