I'm having difficulties reconciling getting dimensional accuracy with using enough plastic to merge together into a single solid part.
My setup: Rostock Max V2.
Upgrades: EZRStruder, Aluminum heat spreader
13-point software bed leveling calibration
0.5mm nozzle
Extruder steps/mm is calibrated to have less than 0.4% error.
Printing PLA, I was using stock settings and getting inner diameters printing 0.02-0.04 inch small. For example, to get an inner hole to print at 0.51" in diameter took CADing the hole at 0.54" diameter. External diameters were slightly large, but by a smaller amount. My extrusion value was at 103.5%. This was empirically arrived at, to make the surfaces full and flat, and each strand of plastic joined to its neighbors. My filament diameter was measured from the filament spool I'm using, and is still nicely accurate at 1.738mm.
I've tried playing with the outside perimeters extrusion width setting, but dropping it from 100% to 25% had no measurable effect.
Then I ran the dimensional accuracy procedure documented in http://forum.seemecnc.com/viewtopic.php?f=36&t=10081. Following this procedure got my 50mm and 100mm boxes within 0.005-0.01 inch, which I am very happy with. This required dropping the extrusion multiplier down to 93.5%. The problem is now that the printer isn't extruding enough plastic to make a solid surface. Even the bottom layer on the glass will have texture and gaps between strands. A single top layer is simply individual, non-touching strands resting on the infill material.
What am I missing? What other settings could I experiment with to counteract this? Right now I'm tempted to undo the dimensional accuracy calibration. This will boost the extrusion multiplier back to the level necessary to get solid prints, and then I'll just experimentally adjust any critical dimensions in the CAD until the print actually measures correctly. This means a lot of iteration through the printer, though, to get my desired results. This won't be particularly fast. It will also use up more filament than necessary.
Dimensional accuracy vs. extrusion volume
-
- Plasticator
- Posts: 12
- Joined: Sat Aug 13, 2016 1:30 pm
Re: Dimensional accuracy vs. extrusion volume
I've gone through this as well. It can be very frustrating. Just when you think you've got it sorted out, you print a different part and it's off.
In my opinion, your extrusion value of 103.5% is spot on. If your plastic is merging nicely, then that variable is sorted.
The last time I calibrated, I was getting accuracy of within +- 0.2%, which I was happy with. It took a long time to get there. I was using procedures and tools that I had to invent myself.
Here are the important points regarding delta calibration that I've slowly discovered, though long, long hours of frustrating tedium.
There are a couple of ways to measure this. Putting a caliper on the carriage and jogging the effector down in steps of 10mm is one way. I haven't found it to be more accurate than about 0.5% though.
A more accurate way that I've found is to run the following procedure, with an accurate Z probe:
Using a 7 factor calibration throws away the accurately measured diagonal rod length, and uses the (inaccurately assumed) value of 2mm per belt tooth of GT2 belt, and scales everything else based on that.
Both systems end up with a flat bed. The first system gives accurately sized parts. The second system gives inaccurately sized parts, at least in my experience.
In my opinion, your extrusion value of 103.5% is spot on. If your plastic is merging nicely, then that variable is sorted.
The last time I calibrated, I was getting accuracy of within +- 0.2%, which I was happy with. It took a long time to get there. I was using procedures and tools that I had to invent myself.
Here are the important points regarding delta calibration that I've slowly discovered, though long, long hours of frustrating tedium.
- Turn off grid compensation in the firmware, you don't want it active for this. Turn it back on right at the end if you need it.
- Measure your diagonal rods accurately (centre of ball to centre of ball), put that value into firmware, and don't change that value ever again.
- Carefully measure the distance between balls at the top and bottom of each pair (one pair on effector, one pair on carriage). You need to get these distances absolutely SPOT ON the same as each other. If they're not, then you get effector tilt, which plays havoc with your X/Y scaling. Also get the carriage balls absolutely level with each other, and absolutely at 90 degrees to the centre of the plate. Get it right. It's worth it.
There are a couple of ways to measure this. Putting a caliper on the carriage and jogging the effector down in steps of 10mm is one way. I haven't found it to be more accurate than about 0.5% though.
A more accurate way that I've found is to run the following procedure, with an accurate Z probe:
- Put all your starting values into the excellent delta calculator located here: http://www.escher3d.com/pages/wizards/wizarddelta.php
- Run a 10 point, 6 factor calibration. Put the recommended values back into the firmware, and then do it again.
- Note the difference between points 0, 2, and 4 (next to a tower), vs the points 1, 3, and 5 (between towers). If your steps/mm on the tower motors are wrong, then the first set of points will be consistently high, and the second set will be consistently low (or vice versa).
- Adjust the steps/mm on your towers by 1%, and repeat the steps above. You'll notice that the difference between the first set, and the second set has changed. Keep doing this procedure (with smaller adjustments to the steps/mm value) until the difference is negligible.
Using a 7 factor calibration throws away the accurately measured diagonal rod length, and uses the (inaccurately assumed) value of 2mm per belt tooth of GT2 belt, and scales everything else based on that.
Both systems end up with a flat bed. The first system gives accurately sized parts. The second system gives inaccurately sized parts, at least in my experience.
-
- Plasticator
- Posts: 12
- Joined: Sat Aug 13, 2016 1:30 pm
Re: Dimensional accuracy vs. extrusion volume
Nebbian, thanks for the response. I've got a few clarifying questions, if you don't mind.
What is grid compensation? Is it safe to assume that if I don't know what it is, I've not got it enabled? The only reference to it I could find is http://forum.seemecnc.com/viewtopic.php?f=111&t=11282. I searched a Gcode file of mine, and none of {M557, G29 G32} are in it. Also, I'm running Repetier firmware, not Duet, (on my stock Rambo board) so maybe I don't even have the option?
By measuring the distance between the balls, you are referring to the horizontal distance between balls on the same arm at each location--is that correct? The other interpretation would just define the length of the arms again, so that's why I think it's the former. Is this distance actually adjustable? I recall that the ball arms were solid, fixed-length nylon(?) plastic arms. (The printer is at a high school, owned by the FIRST Robotics team I mentor, so I can't confirm right now.) If my memory is correct on this, and the arm lengths are not identical, how would I adjust them? Buy an additional set and find the 6 (out of the 12) arms most identical in length?
Tonight I will check the physical dimensions of the arms and the ball rods, as you suggest. I'll make sure the firmware has the correct delta arm length and see how the lengths of the 6 ball arms compare. I will do my best to measure the angle of the 6 ball arms and ensure that they are parallel to the bed.
What do you mean by an 'accurate Z probe'? Are you referring to measuring the distance above the bed? I can do that, at very small distances. I will need to study the Echer3D link you posted carefully, and understand what it's trying to do before digging in.
Thanks again,
Tim
What is grid compensation? Is it safe to assume that if I don't know what it is, I've not got it enabled? The only reference to it I could find is http://forum.seemecnc.com/viewtopic.php?f=111&t=11282. I searched a Gcode file of mine, and none of {M557, G29 G32} are in it. Also, I'm running Repetier firmware, not Duet, (on my stock Rambo board) so maybe I don't even have the option?
By measuring the distance between the balls, you are referring to the horizontal distance between balls on the same arm at each location--is that correct? The other interpretation would just define the length of the arms again, so that's why I think it's the former. Is this distance actually adjustable? I recall that the ball arms were solid, fixed-length nylon(?) plastic arms. (The printer is at a high school, owned by the FIRST Robotics team I mentor, so I can't confirm right now.) If my memory is correct on this, and the arm lengths are not identical, how would I adjust them? Buy an additional set and find the 6 (out of the 12) arms most identical in length?
Tonight I will check the physical dimensions of the arms and the ball rods, as you suggest. I'll make sure the firmware has the correct delta arm length and see how the lengths of the 6 ball arms compare. I will do my best to measure the angle of the 6 ball arms and ensure that they are parallel to the bed.
What do you mean by an 'accurate Z probe'? Are you referring to measuring the distance above the bed? I can do that, at very small distances. I will need to study the Echer3D link you posted carefully, and understand what it's trying to do before digging in.
Thanks again,
Tim
Re: Dimensional accuracy vs. extrusion volume
Hi Tim,
Be sure to measure from the centre of one ball, to the centre of the other ball, measured along the distance of the diagonal rod. You can eyeball it, as with the distances involved, the percentage error will be small. Alternatively the actual distances are published by SeeMeCNC, but you do need to use the correct distance for the type of arms you have.
I hope this helps.
You do have the option in Repetier, but it's not really all that good, and if you had enabled it then you'd know about it. So ignore that part for now.What is grid compensation? Is it safe to assume that if I don't know what it is, I've not got it enabled? The only reference to it I could find is http://forum.seemecnc.com/viewtopic.php?f=111&t=11282. I searched a Gcode file of mine, and none of {M557, G29 G32} are in it. Also, I'm running Repetier firmware, not Duet, (on my stock Rambo board) so maybe I don't even have the option?
Yes, I was referring to the distance between balls on the same pair of arms at the one location. ie distance between arms that connect to the X tower, measured across the effector. If they're not adjustable, then still measure it, but this is just to confirm that it's not too far out.By measuring the distance between the balls, you are referring to the horizontal distance between balls on the same arm at each location--is that correct? The other interpretation would just define the length of the arms again, so that's why I think it's the former. Is this distance actually adjustable? I recall that the ball arms were solid, fixed-length nylon(?) plastic arms. (The printer is at a high school, owned by the FIRST Robotics team I mentor, so I can't confirm right now.) If my memory is correct on this, and the arm lengths are not identical, how would I adjust them? Buy an additional set and find the 6 (out of the 12) arms most identical in length?
Code: Select all
Tonight I will check the physical dimensions of the arms and the ball rods, as you suggest. I'll make sure the firmware has the correct delta arm length and see how the lengths of the 6 ball arms compare. I will do my best to measure the angle of the 6 ball arms and ensure that they are parallel to the bed.
By this I mean something that's more accurate than using a piece of paper to see if the nozzle grabs. I like to use a proper Z height sensor that is mounted to the effector, although I think that a set of feeler gauges might also give you a rough idea.What do you mean by an 'accurate Z probe'? Are you referring to measuring the distance above the bed? I can do that, at very small distances. I will need to study the Echer3D link you posted carefully, and understand what it's trying to do before digging in.
I hope this helps.