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.
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...
Link to post
Share on other sites