Welcome! Log In Create A New Profile

Advanced

How accurate is your delta?

Posted by iira 
How accurate is your delta?
December 16, 2014 09:00PM
I've been building a Rostock variant over the past couple of months and while it prints very well, I've been fighting accuracy problems for a while now. Even after rebuilding it quite meticulously with Traxxas rod ends and laser cut bottom and top pieces, I'm still seeing small inaccuracies in prints. I'm not really sure where to start looking for problems now, I've kind of exhausted my list of things to check (except for the printed parts bought off eBay).

I'd like to build a Kossel at some point, and I've been wondering if my printer is capable of printing the parts accurately enough. I've attached an STL and SCAD file of the test print I use.

When printing this little asterisk, some of the lines aren't exactly the same size or thickness. There are discrepancies of 0.3 - 0.5mm between some. That's only 0.15% - 0.25% out of kilter from the intended size, but I worry that it's enough to cause problems if I'm making parts for other printers.

How accurate is your delta? How much of this can I attribute to the warping and shrinkage of plastic, rather than errors in the printer? I'm going to try printing the asterisk with thicker and taller lines tonight to see what happens.
Re: How accurate is your delta?
December 17, 2014 03:41AM
I don't see any attachments - did you forget them?



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 17, 2014 04:36AM
Anytime I checked dimensions of parts I print, they were always 0.1±0.06 mm bigger than the model specifies regardless of the model size. That is not true for small holes. Small holes close more than that.

I guess it is all down to extruder calibration, filament diameter variability, and surface roughness. If the surface is rough then it makes the part a bit bigger because the callipers will measure only on the tops of the surface bumps.

If you are getting bigger errors than ±0.1mm then your printer is most probably badly calibrated. Other option is that your printer cannot be even well calibrated since it has an unwanted play in joints or is not rigid enough or is too imprecisely built.

If you are good at math you can use this to calibrate your printer precisely [github.com]
The document also explains the conditions under which it is applicable.
Re: How accurate is your delta?
December 17, 2014 11:15AM
If you are using the calibration instructions on the wiki, my cursory review of the delta ones (which I will be using shortly as I have a Kossel-Mini kit on order) raised some questions on setting parameters in the firmware for a delta. The instructions left me with some confusion and questions regarding the adjustment of the z-axis flatness parameters that I cannot help but think might confuse others as well. I feel strongly that not getting THAT calibration right on a delta would greatly effect any hopes of improving accuracy.

Again, I haven't performed the process yet, and am just speculating on what I felt was a potential problem (and it may just be me....the instructions might be fine for others).
Re: How accurate is your delta?
December 17, 2014 01:35PM
nozzle quality is also a problem I find. sometimes the orafice is not machined just right and it causes inconsistant extrussions. My home built delta manages quite well at +- .05mm at this point, but I built it for size vs very high precision. Smooth rod calibration is a pain without a depth gauge.


My Personal Blog. Build blog.
[engineerd3d.ddns.net]

Modicum V1 sold on e-bay user jaguarking11
Re: How accurate is your delta?
December 17, 2014 03:00PM
The standard firmwares I have looked at calculate the head movement for a delta using an approximation method. They divide a single large linear movement into a number of short linear segments. They then calculate the coordinates of each stepper motor at the intersections of the segments, and drive the stepper motor linearly between those coordinates when printing the segment. Has anyone calculated the positioning error that this introduces? Maybe it's small enough to be ignored, maybe not. For Marlin firmware, it will depend on the print speed, because the number of segments to use is specified "per second" in the M665 command.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 17, 2014 03:34PM
Quote
dc42
Has anyone calculated the positioning error that this [delta segmentation] introduces?
Just to give you an idea for Marlin: [forums.reprap.org]

Edited 1 time(s). Last edit at 12/17/2014 03:38PM by hercek.
Re: How accurate is your delta?
December 17, 2014 03:40PM
Quote
dc42
For Marlin firmware, it will depend on the print speed, because the number of segments to use is specified "per second" in the M665 command.
That's a very interesting point. I'm guessing a non-delta would not have the same possible issues?
Re: How accurate is your delta?
December 17, 2014 04:02PM
Quote
hercek
If you are good at math you can use this to calibrate your printer precisely [github.com]
The document also explains the conditions under which it is applicable.

I'm not quite that good at math haha, but I found your notes interesting. I only performed manual levelling at the tower bases, not between towers. I'll run through calibration again and see where I end up. I printed a test object last night (and this time actually attached it) and I definitely have an issue where the rear tower produces a line that is 0.5mm longer than the rest, is thinner towards the tower and thicker further away from the tower (a total shift of 0.3mm). At a guess I would say my rear tower has something funny going on with it - any suggestions on where to start?

I'm going to make a z-probe over the coming week to see whether the autolevel in RichCattell's marlin fork can solve any of this, and then there's some of the more manual calibration procedures to try...
Attachments:
open | download - asterisk.scad (394 bytes)
open | download - asterisk.stl (13.9 KB)
Re: How accurate is your delta?
December 17, 2014 04:25PM
Just a quick question regarding SMOOTH_ROD_OFFSET - It's the horizontal distance from the centre of the smooth rods to the centre of the build platform, correct? If so, my value for this is 4mm less than it should be (currently 175.0, but that's without allowing 4mm for the radius of smooth rods)... No idea how I managed to level (level enough to print, at least) it if that's the case?

Edited 1 time(s). Last edit at 12/17/2014 04:39PM by iira.
Re: How accurate is your delta?
December 17, 2014 04:29PM
Quote
iira
... and I definitely have an issue where the rear tower produces a line that is 0.5mm longer than the rest, is thinner towards the tower and thicker further away from the tower (a total shift of 0.3mm). At a guess I would say my rear tower has something funny going on with it - any suggestions on where to start?
If that is the only major error you have then it indicates that the rear tower position is wrong. Try to move it a bit (lets say about 0.5 mm) more far away from the centre or more nearer to the centre. Direction is unknown since I do not know whether your thickness is in the direction of X axe or in the direction of Z axe.
Re: How accurate is your delta?
December 17, 2014 04:47PM
Quote
hercek
If that is the only major error you have then it indicates that the rear tower position is wrong. Try to move it a bit (lets say about 0.5 mm) more far away from the centre or more nearer to the centre. Direction is unknown since I do not know whether your thickness is in the direction of X axe or in the direction of Z axe.

Thanks, I thought that could be the case. That's the only error I can see in my test prints, and based on measurements it looks like this error (pic attached) described by Aaron Birenboim in his calibration docs. It gets thicker further away from the rear tower, and thinner at the base of the tower. I'll try shifting the tower in and out and see what happens.
Attachments:
open | download - towerDisplacementXYdistort.png (35.7 KB)
Re: How accurate is your delta?
December 17, 2014 06:35PM
Quote
dclarkm
Quote
dc42
For Marlin firmware, it will depend on the print speed, because the number of segments to use is specified "per second" in the M665 command.
That's a very interesting point. I'm guessing a non-delta would not have the same possible issues?

That's right, a non-delta does not need to make this approximation. However, some non-delta firmwares use other approximations, which cause the step pulses to be generated at less than ideal intervals.

Quote
hercek
Just to give you an idea for Marlin: [forums.reprap.org]

Thanks, that's a useful thread. Currently, I'm trying to implement a mechanism that gets rid of delta segnentation altogether (as mentioned in post [forums.reprap.org] in that thread) in my adaptation of the Duet electronics firmware for delta printers. The limiting factor is the time needed to calculate the square root of a 64-bit integer. I have it down to less than 16us, and I am hopeful of reducing it further.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 17, 2014 08:16PM
Quote
dc42
The limiting factor is the time needed to calculate the square root of a 64-bit integer. I have it down to less than 16us, and I am hopeful of reducing it further.
Maybe you already know, but if not then this may be useful: [www.finesse.demon.co.uk]

Edit: Also Repetier uses integers instead of floats if the printer and the steps per mm are not too big.

Edited 1 time(s). Last edit at 12/17/2014 08:18PM by hercek.
Re: How accurate is your delta?
December 18, 2014 03:12AM
Thanks, hercek, I hadn't found that page. Unfortunately it only gives code for square root of 32 bit integers, and I need more than 32 bits. But it's given me hope that by moving to assembler and doing a few other tricks, I can make it fast enough. I already use integers for all the calculations done in the step ISR.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 18, 2014 07:01AM
Yes, I know. I think you should be able to extend it to 64 bits. Also there is an option that you do not really need full 64 bits but only 24+24=48 bits. Since the algorithms depend on the number of bits processed that would save you quite a bit. But I understand the appeal to use full 64 bits instead of 48 only.
Re: How accurate is your delta?
December 18, 2014 07:43PM
In fact, I think that 36 bits may be enough for me. In that case, if I use a 16-entry lookup table to process the top 4 bits, then the remaining part will fits in 32 bits; so all the remaining maths can probably be done using 32-bit arithmetic. That should provide a sufficiently fast solution, if it is feasible.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 19, 2014 07:59AM
Hi,
since I built a Delta the last 6 Weeks, I can tell you something about my calibration procedure.So, for calibration you have to do the following steps:
Make your printer printing flat by modifing Delta Endstop Offsets for A/B/C and Delta_Radius. You can do it with a piece of paper, modify the Offsets/Radius until the nozzle scratches over the paper with the same feeling at all 4 positions.

After that print a 10x10cm cube for calibrating X/Y dimension. Increase the Delta_radius if you want to Decrease the dimension...

At last, calibrate you extruder Steps/mm. I usualli print a cube with 3x0,5mm perimeter and change the E-Steps until I got 1,48-1,50mm thick walls. Some Pictures of my printed Parts:




The better part was printed with PID Heated Bed. The worst one is Bang Bang Mode HB...
Sometimes I have problems to measure accuratly with a gauge, the result depends on the force and position, angle etc. But I think I have an accuracy of +- 0,05mm

Manu

Edited 2 time(s). Last edit at 12/19/2014 08:04AM by Protoprinter.


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
Re: How accurate is your delta?
December 19, 2014 08:30AM
Another thought. If you want to print printerparts for a delta, accuracy is not as important if the error is similar for all three Towers! This is only relavant if your errors are not reproduceable...
So if the extrusions fit in the parts, try to print them with the same settings/errors and you´ll get a printer with smaller positioning errors - right?

Manu


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
Re: How accurate is your delta?
December 19, 2014 12:24PM
If the towers are perpendicular to bed then all the printed parts will have the same kind of size error and you should be able to calibrate the errors out. Just print all the similar parts on the same spot of the bed with the same settings and one by one. You should be successful at least in the case of the traditional Rostock where bottom and top tower brackets (as well as carriages) are very similar in shape and you can split platform to 3 parts which would be similar to carriages.

But really if your towers are perpendicular to bed and the printer is solid and does not have an unwanted play then you can just calibrate it directly and there is no need to print another one.

If the towers are not perpendicular to bed then the situations is more complicated because the printed parts will be skewed. Maybe you can print them in thin slices and glue them together to eliminate the tilt. I would rather try to develop a calibration procedure which can handle skewed towers (and update the firmware accordingly).

Conclusion: it is probably better to just calibrate what you have than to build a new one from imprecise parts and calibrate the new one.
Re: How accurate is your delta?
December 19, 2014 01:57PM
I've done some more work on fast square roots, and I now have the 64-bit integer square root calculating in 6.5us. This has allowed me to write code that precisely times the step pulses, and lets me do smooth diagonal movements on my (Cartesian) Ormerod with a peak speed of 565mm/sec, limited by the available acceleration of the Y axis. This requires generating up to 68K steps per second, with a square root calculation for each step.

I still have the square root function written in C++. I'm sure my 64-bit algorithm is not optimal. I'm using 32-bit maths to generate the top 16 bits, and 64-bit maths to generate the remaining 16 bits. I have a feeling that it may be possible to use 32-bit maths throughout. Also, the thumb mode of the ARM processor does not support conditional instructions other than branches, so in the generated code I can see conditional branches where I would prefer to use conditional adds and subtracts. All this means that if I try harder and write in assembly language using full ARM mode instead of thumb, I should be able to get the time down by another factor of 2 or more.

So I'm confident that I will be able to do the delta calculations in real-time on the Duet, without approximating. I have a little more work to do to complete the new Move code for Cartesian printers, then I will start adding the delta calculations.

Thanks again to hercek for pointing me in the right direction.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: How accurate is your delta?
December 19, 2014 05:42PM
Nice work dc42.
Re: How accurate is your delta?
December 19, 2014 07:05PM
Just to chime in, I'm loving my magnetic ball arms. It takes all of the play out of the system. I have extruded aluminum columns and use bearing carriages on them for very smooth accurate movement. I expoxied chrome steel balls to the carriages and effector and then use archery arrows cut to the same length and inserted magnets in the ends of the rods, set back so they do not contact the balls. I do not print anything for the ends of the rods. The carbon fiber tubes ride directly on he balls and do a fine job. I put a touch of grease on the rod ends and that keeps the squeaks down.

The effector is rigid with this setup. It's awesome! And servicing the hot-end is a piece of cake. Just pop the effector off of the rods and flip it over to get to the hot end. Putting it back on is just as fast. Seconds!

I was printing good parts at the first print in ABS. I've had plenty of small problems along the way but print quality has never been one of them. I love this printer!

Make sure you have NO play in anything. That's your first best place to start.

Best of luck!

Ross


You don't need a parachute to skydive. You only need a parachute to skydive twice.
jmf
Re: How accurate is your delta?
January 10, 2015 06:04PM
Quote
Protoprinter
Hi,
since I built a Delta the last 6 Weeks, I can tell you something about my calibration procedure.So, for calibration you have to do the following steps:
Make your printer printing flat by modifing Delta Endstop Offsets for A/B/C and Delta_Radius. You can do it with a piece of paper, modify the Offsets/Radius until the nozzle scratches over the paper with the same feeling at all 4 positions.

After that print a 10x10cm cube for calibrating X/Y dimension. Increase the Delta_radius if you want to Decrease the dimension...

At last, calibrate you extruder Steps/mm. I usualli print a cube with 3x0,5mm perimeter and change the E-Steps until I got 1,48-1,50mm thick walls. Some Pictures of my printed Parts:




The better part was printed with PID Heated Bed. The worst one is Bang Bang Mode HB...
Sometimes I have problems to measure accuratly with a gauge, the result depends on the force and position, angle etc. But I think I have an accuracy of +- 0,05mm

Manu

Ok, so I have got my delta printing flat within one paper thickness, however when I print a 20mm cube X and Y are a little smaller than 20mm, around 19.5mm,
so are you saying I need to then decrease Delta Radius to increase the X and Y dimension ?

Will I have to calibrate the towers again after changing the Delta Radius ?

Also if my Z dimension is off slighty how would I adjust that ?

Thanks,
JMF
Re: How accurate is your delta?
January 10, 2015 06:08PM
Hi,
Z Dimension should be fine if your steps/mm are correct and you are printing flat. For X/Y dimension you need to change the Delta Rod length! You have to decrease it to get bigger dimensions. And yes, you have to check flatness after that again!

Manu


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
Re: How accurate is your delta?
January 10, 2015 09:37PM
Select any point in XY plane. Then Z dimension in that one point depends only on steps/mm and nothing else (provided temperatures are stable). But if you have wrong e.g. delta radius or diagonal rod length then the whole part will be distorted. The distortion will have effect on all cartesian coordinates. The effect will be different in different parts of the bed. Lets say your bed is slightly bowl shaped. Then the bottom layers in the middle will be more squashed (the paper would be harder to move below head when calibrating there) and the bottom layers more far away from centre will be a bit more sparse. If you calibrated Z height against the centre and measured at the sides then the parts would look taller even when steps/mm are correct. But if you calibrated Z height at one place (i.e. the bottom layers are not more sparse or squashed at that point) and measured on the same place then Z dimension depends only on steps/mm.

So checking whether steps/mm are correct is easy: print e.g. 1 cm tall cylinder with diameter 1 cm. Then print 2 cm tall cylinder with diameter 1 cm at exactly the same place. Measure both cylinders. If the height difference is 1cm then your steps/mm are correct.

Unstable heatbed or hotend temperatures during printing introduce small error to your Z height because length of hotend (and thickness of heatbed) are changing slightly with temperature. This is well visible on perimeters since when plastics is squashed more then it must move to the sides and you get uneven perimeter.
jmf
Re: How accurate is your delta?
January 11, 2015 08:08PM
Thanks for the replies guys, I'm finding that setting up a Delta printer is much harder, but I love the looks of them.
Re: How accurate is your delta?
January 12, 2015 09:14PM
I forgot about this thread. My Rostock is now pretty accurate, lengths of lines printed parallel to each tower are within 0.05 - 0.1mm of one another. I printed a Kossel end effector and it turned out perfectly. Very pleased!

jmf - Here is my calibration procedure, it may be useful for you since you have uneven dimensions. Using the asterisk test print I attached a few posts up, carefully measure each of the lines that are parallel to each tower (make sure you measure when it's room temp). The horizontal line is just for reference. Make a note of the differences between the three lines (hopefully there are no huge differences between them all). Your firmware should allow for individual tower radii. Here is how I modified Johann's fork to allow for that:

// Tower position correction
#define DELTA_TOWER1_CORRECTION 0.5 // front left tower
#define DELTA_TOWER2_CORRECTION 0.0 // front right tower
#define DELTA_TOWER3_CORRECTION 0.0 // back middle tower

// Effective X/Y positions of the three vertical towers.
#define SIN_60 0.8660254037844386
#define COS_60 0.5
#define DELTA_TOWER1_X -SIN_60*(DELTA_RADIUS + DELTA_TOWER1_CORRECTION) // front left tower
#define DELTA_TOWER1_Y -COS_60*(DELTA_RADIUS + DELTA_TOWER1_CORRECTION)
#define DELTA_TOWER2_X SIN_60*(DELTA_RADIUS + DELTA_TOWER2_CORRECTION) // front right tower
#define DELTA_TOWER2_Y -COS_60*(DELTA_RADIUS + DELTA_TOWER2_CORRECTION)
#define DELTA_TOWER3_X 0.0 // back middle tower
#define DELTA_TOWER3_Y DELTA_RADIUS + DELTA_TOWER3_CORRECTION

Start by moving the towers by twice the negated value of the difference between lines. For example, if the line produced parallel to tower A is 0.25mm shorter (-0.25 in relation to others), start with a correction of +0.5. Upload, check your end stops (you may even have to adjust overall delta radius for flatness) and run a test print, then repeat. It might take a few iterations, but by doing this I've achieved pretty good dimensional accuracy. Accurate to build another printer with my Rostock, anyway.
Sorry, only registered users may post in this forum.

Click here to login