Page 19 of 33

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 9:16 pm
by teoman
RollieRowland wrote:
The steps per millimeter isn't specific to each tower, sadly. It isn't possible to do so with the firmware. If it were specific to the tower, to use my current method to find the actual value, it would require the diagonal rod length to also be specific to each tower. Even so, it is possible to at least partially correct the error that is created from having this value significantly off.

Actually, it is easy to change the steps per mm for each tower. Maybe not in the eeprom without slightly modifyin the eeprom part of the software. Anyhow, this is what you have in Configuration.h

Code: Select all

/** \brief Steps per rotation of stepper motor */
#define STEPS_PER_ROTATION 200

/** \brief Micro stepping rate of X, Y and Y tower stepper drivers */
#define MICRO_STEPS 16

// Calculations
#define AXIS_STEPS_PER_MM ((float)(MICRO_STEPS * STEPS_PER_ROTATION) / PULLEY_CIRCUMFERENCE)
#define XAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#define YAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#define ZAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#else
I think if the EEPROM.h file is modified then you can write to that variable over repetier etc.. if one does not want to fiddle with it by re-uploading the firmware.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 9:31 pm
by teoman
A quick question before i spend money.

Will a dial gauge give better results over fsr's or something that can be used as a minimum Z limit switch on the software.

Also, is 0.001 precision overkill and 0.01 sufficient in your opinion.

I found a nice digital dialgauge that is 0.001 precision that also has a usb port that transmits data serially. But the price is a little bit steep if it adds no advantage. I would be capable of integrating it to RollieRowlands software.

In addition, with 10mm shaft or 25mm shaft it would be possible to do several different levels of probings. One zeroed at the bed, and then one zeroed say 1cm above the bed and 2cm above the bed. I am not sure if that would have any significant advante.

Here is the dialgauge that i found. Although the port on it looks like a usb cable, you need to buy a different cable to be able to use it (30~ dollar item).
http://www.aliexpress.com/item/Good-Qua ... 68366.html

[img]http://img02.taobaocdn.com/L1/134/9433/ ... 6e3350.png[/img]

I have contacted the seller and obtained the serial protocol for it. So integrating it to RollieRowlands software will not be a problem for me.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 9:39 pm
by RollieRowland
teoman wrote:
RollieRowland wrote:
The steps per millimeter isn't specific to each tower, sadly. It isn't possible to do so with the firmware. If it were specific to the tower, to use my current method to find the actual value, it would require the diagonal rod length to also be specific to each tower. Even so, it is possible to at least partially correct the error that is created from having this value significantly off.

Actually, it is easy to change the steps per mm for each tower. Maybe not in the eeprom without slightly modifyin the eeprom part of the software. Anyhow, this is what you have in Configuration.h

Code: Select all

/** \brief Steps per rotation of stepper motor */
#define STEPS_PER_ROTATION 200

/** \brief Micro stepping rate of X, Y and Y tower stepper drivers */
#define MICRO_STEPS 16

// Calculations
#define AXIS_STEPS_PER_MM ((float)(MICRO_STEPS * STEPS_PER_ROTATION) / PULLEY_CIRCUMFERENCE)
#define XAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#define YAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#define ZAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
#else
Yeah, wrong choice of words on my part. I meant in the EEPROM. I will look into this but because this would require a re-flash, it couldn't - without a lot of extra work - be done automatically.
teoman wrote: A quick question before i spend money.

Will a dial gauge give better results over fsr's or something that can be used as a minimum Z limit switch on the software.

Also, is 0.001 precision overkill and 0.01 sufficient in your opinion.

I found a nice digital dialgauge that is 0.001 precision that also has a usb port that transmits data serially. But the price is a little bit steep if it adds no advantage. I would be capable of integrating it to RollieRowlands software.

In addition, with 10mm shaft or 25mm shaft it would be possible to do several different levels of probings. One zeroed at the bed, and then one zeroed say 1cm above the bed and 2cm above the bed. I am not sure if that would have any significant advante.

Here is the dialgauge that i found. Although the port on it looks like a usb cable, you need to buy a different cable to be able to use it (30~ dollar item).

I have contacted the seller and obtained the serial protocol for it. So integrating it to RollieRowlands software will not be a problem for me.
The precision is really dependent on what you need out of your printer. It is possible to calibrate to 0.001, but unless your layer height is usually around 0.005 and lower it would be overkill. And I do not know if there would be any advantage over multi-height probing - it may or may not, I haven't really tested it.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 9:44 pm
by teoman
RollieRowland wrote: Yeah, wrong choice of words on my part. I meant in the EEPROM. I will look into this but because this would require a re-flash, it couldn't - without a lot of extra work - be done automatically.

I think i edited my post after you posted/read it.

The EEPROM.h file should be modified, so that you flash it once, and then your program can access the steps/mm of each axis individually.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 10:15 pm
by RollieRowland
teoman wrote:
RollieRowland wrote: Yeah, wrong choice of words on my part. I meant in the EEPROM. I will look into this but because this would require a re-flash, it couldn't - without a lot of extra work - be done automatically.

I think i edited my post after you posted/read it.

The EEPROM.h file should be modified, so that you flash it once, and then your program can access the steps/mm of each axis individually.
Oh? This is an excellent idea! I will have to make it an option however, due to the mandatory firmware modification. Do you know off hand if the diagonal rod can be specific to each tower? I will look into it later, but if this isn't the case, then my method for correction couldn't work.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 10:37 pm
by jason128
I'm going to bite the bullet and have another go at getting the Z probe working- my last attempt was not successful at all- hence I went back to playing with the HTML file version, which is good, but I'm still not wining at being able to get a flat bed.
Is there a link/ post of how to set this up? I have had a good look and didn’t find anything.

so here is my understanding of what the steps are:

1-Add a z limit switch stop- in my case a limit switch with a long lever tab hot glued to the effector- lazy, ugly, but works.
2- connect it to the Z stop min pins
3- change"has Z probe" in configuration file to TRUE - Don’t need to do anything else in the firmware as the Z stop min is the pin the software is expecting it on?
4 upload firmware with changes above to rostock max
5 test Z probe changes state when depressed. read HIGH when in the air LOW when hitting glass
6 change settings in software to probe instead of FSR run autocalbration software…. (which version now?)

What happens for me, it the probe moves down to about 150mm above the glass and starts its sequence. moves around like it should- carefully measuring air though. it then progressively works itself up in height untill it starts hitting the end stops, where it all gets rather ugly from that point on.

There's something missing above- a big thank you if you can tell me what it is?

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 10:53 pm
by RollieRowland
jason128 wrote:I'm going to bite the bullet and have another go at getting the Z probe working- my last attempt was not successful at all- hence I went back to playing with the HTML file version, which is good, but I'm still not wining at being able to get a flat bed.
Is there a link/ post of how to set this up? I have had a good look and didn’t find anything.

so here is my understanding of what the steps are:

1-Add a z limit switch stop- in my case a limit switch with a long lever tab hot glued to the effector- lazy, ugly, but works.
2- connect it to the Z stop min pins
3- change"has Z probe" in configuration file to TRUE - Don’t need to do anything else in the firmware as the Z stop min is the pin the software is expecting it on?
4 upload firmware with changes above to rostock max
5 test Z probe changes state when depressed. read HIGH when in the air LOW when hitting glass
6 change settings in software to probe instead of FSR run autocalbration software…. (which version now?)

What happens for me, it the probe moves down to about 150mm above the glass and starts its sequence. moves around like it should- carefully measuring air though. it then progressively works itself up in height untill it starts hitting the end stops, where it all gets rather ugly from that point on.

There's something missing above- a big thank you if you can tell me what it is?
For firmware modifications, did you assign the pin that you are using? If you are using Z-minimum on the Rambo, then the pin value is 10. I also turned wait before test to false.

From what it sounds like, the state of your switch is inverted - correct me if I'm wrong but if I recall correctly the H state should be the activated state. This would cause your issue; the probe will start at the designated height and set that as your Z-Max length. On the next iteration it will repeat and rise again... and again - most likely until something bad happens...

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Tue Sep 15, 2015 11:48 pm
by 626Pilot
bvandiepenbos wrote: The Traxxas joints are a spherical joint, with the "ZERO LASH STRAPS" pulling the arm pairs against each other (against the spherical shape)... there is no joint slop.
By "slop" I mean that the ball is free to move a little within the socket. I can do this on mine. There is definitely no lash - the straps see to that.

I went out and jiggled the joints again just now to see if the slop favors movement in any particular dimension. It does. The joints seem to have no slop at all in the up-down direction. The left-right direction (relative to the carriage) does allow a small amount of movement. I was previously concerned that if up-down movement was permitted, the effector might sit lower when near the tower-opposite points, as then the rods would be at maximum extension and the effector's mass would have the most leverage against the joints. However, this seems not to be the case, at least on my arms - the ball parts of the joints have no perceptible up-down freedom.

The effect of the left-right slop is probably minimal. Thinking about the trigonometry of the angles, and how the sine/cosine of an angle changes very, very slowly with tiny differences between angles, a ball joint being off relative to its neighbor by 1-2 degrees is likely to have a negligible effect on the arm geometry overall. In other words, it might change the effective length of an arm relative to the rest, but that seems like it would be measurable only on a tiny scale - like ones or tens of microns. I don't think the difference would even be as much as 1 degree unless the arms had thousands of hours on them. (I think I used my last set of arms for about two years - many thousands of hours - before I found it necessary to replace them.)

RollieRowland wrote:Yes, the tower lean is not able to be corrected in Repetier. Is this a modifiable value in Smoothieware?
No. I have some preliminary support, but I couldn't figure out how to correct the carriage heights in a single mathematical step - it looked like it might require converging on a solution until a sufficiently accurate answer was found (Newton's method) but I wasn't sure, and that kind of uncertainty bothers me in code that has to run 100s of times a second without taking longer than allowed. There might be a cleaner, single-step way to do it. I'm not much of a mathematician, so finding solutions to things like this is a very slow process for me.
The steps per millimeter isn't specific to each tower, sadly. It isn't possible to do so with the firmware. If it were specific to the tower, to use my current method to find the actual value, it would require the diagonal rod length to also be specific to each tower. Even so, it is possible to at least partially correct the error that is created from having this value significantly off.
Smoothie does allow setting steps/mm for individual steppers. That will make it easier to test this heuristic, at least on my end. Adjusting steps/mm doesn't perfectly capture tower lean, but it may functionally capture some component of tower lean. That might mean that we can get (for example) two more units of accuracy, at the cost of one unit of accuracy, thus providing a net improvement that wasn't available to us before.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Wed Sep 16, 2015 12:39 am
by jason128
RollieRowland wrote:
jason128 wrote:I'm going to bite the bullet and have another go at getting the Z probe working- my last attempt was not successful at all- hence I went back to playing with the HTML file version, which is good, but I'm still not wining at being able to get a flat bed.
Is there a link/ post of how to set this up? I have had a good look and didn’t find anything.

so here is my understanding of what the steps are:

1-Add a z limit switch stop- in my case a limit switch with a long lever tab hot glued to the effector- lazy, ugly, but works.
2- connect it to the Z stop min pins
3- change"has Z probe" in configuration file to TRUE - Don’t need to do anything else in the firmware as the Z stop min is the pin the software is expecting it on?
4 upload firmware with changes above to rostock max
5 test Z probe changes state when depressed. read HIGH when in the air LOW when hitting glass
6 change settings in software to probe instead of FSR run autocalbration software…. (which version now?)

What happens for me, it the probe moves down to about 150mm above the glass and starts its sequence. moves around like it should- carefully measuring air though. it then progressively works itself up in height untill it starts hitting the end stops, where it all gets rather ugly from that point on.

There's something missing above- a big thank you if you can tell me what it is?
For firmware modifications, did you assign the pin that you are using? If you are using Z-minimum on the Rambo, then the pin value is 10. I also turned wait before test to false.

From what it sounds like, the state of your switch is inverted - correct me if I'm wrong but if I recall correctly the H state should be the activated state. This would cause your issue; the probe will start at the designated height and set that as your Z-Max length. On the next iteration it will repeat and rise again... and again - most likely until something bad happens...
Thanks for that- I did try the switch both ways, and got the same result - I suspect I haven't assigned the pin 10 correctly- I'll have another go tonight and see how it works

UPDATE- yep i have success! its happily running the calibration process right now.... as long as the hot glue holds out :)

UPDATE UPDATE... not so much success afterall. calibration seems to progressively wander off to one side, until it crashes into the glass. Ive tried twice now, and it seems to get the 'wobbles' and get progressively worse.

After the last time it had my
diagonal rod at 273.981
horizontal radius at 137.808
X tower endstop at 8465!!!!
Y tower at 2647
Z tower at 5066

alpha A at 225
Alpha b at 358
Alpha C at 75

this was doing an advanced calibration in version 3.0.0???

Off to have a beer instead.......

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Wed Sep 16, 2015 10:30 am
by RollieRowland
626Pilot wrote:
RollieRowland wrote:Yes, the tower lean is not able to be corrected in Repetier. Is this a modifiable value in Smoothieware?
No. I have some preliminary support, but I couldn't figure out how to correct the carriage heights in a single mathematical step - it looked like it might require converging on a solution until a sufficiently accurate answer was found (Newton's method) but I wasn't sure, and that kind of uncertainty bothers me in code that has to run 100s of times a second without taking longer than allowed. There might be a cleaner, single-step way to do it. I'm not much of a mathematician, so finding solutions to things like this is a very slow process for me.
The steps per millimeter isn't specific to each tower, sadly. It isn't possible to do so with the firmware. If it were specific to the tower, to use my current method to find the actual value, it would require the diagonal rod length to also be specific to each tower. Even so, it is possible to at least partially correct the error that is created from having this value significantly off.
Smoothie does allow setting steps/mm for individual steppers. That will make it easier to test this heuristic, at least on my end. Adjusting steps/mm doesn't perfectly capture tower lean, but it may functionally capture some component of tower lean. That might mean that we can get (for example) two more units of accuracy, at the cost of one unit of accuracy, thus providing a net improvement that wasn't available to us before.
Adjusting parameters for tower lean may not be the best solution, it is not - I shouldn't say impossible - improbable to be able to correctly find this value. The only solution that I think of would be to find the correct steps per millimeter for each tower, then use that offset from the theoretical steps per mm to assume an angle for the tower. Yet again, the angle isn't an adjustable value in Repetier, so this assumption would be rather useless.

I agree, correcting the steps per millimeter could mostly correct the error caused by the tower lean. Also, yes, this would offset the scaling in the z dimension but having only one parameter to adjust for, would be preferable - the scaling of the prints can just be adjusted to compensate, assuming that the change in scaling in the z would be linear.

I am going to modify the EEPROM.h file to be able to modify steps per mm for each tower and re-flash, as teoman suggested. This will require me to rethink my calibration for several steps but it will be worth trying.
jason128 wrote: Thanks for that- I did try the switch both ways, and got the same result - I suspect I haven't assigned the pin 10 correctly- I'll have another go tonight and see how it works

UPDATE- yep i have success! its happily running the calibration process right now.... as long as the hot glue holds out :)

UPDATE UPDATE... not so much success afterall. calibration seems to progressively wander off to one side, until it crashes into the glass. Ive tried twice now, and it seems to get the 'wobbles' and get progressively worse.

After the last time it had my
diagonal rod at 273.981
horizontal radius at 137.808
X tower endstop at 8465!!!!
Y tower at 2647
Z tower at 5066

alpha A at 225
Alpha b at 358
Alpha C at 75

this was doing an advanced calibration in version 3.0.0???

Off to have a beer instead.......
Yes, that version was released but was not tested thoroughly - also mislabeled it was actually version 2.0.3. There was a very simple mistake that caused the offsets to grow rapidly after every iteration. This was corrected in the latest 2.0.4 - https://drive.google.com/file/d/0B06WCA ... sp=sharing

I would recommend resetting your EEPROM to defaults before you try anything.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Thu Sep 17, 2015 1:11 pm
by RollieRowland
I have been pondering on the steps per mm correction - specific to each tower. One issue that I can foresee with having SPM specific to each tower would be an inconsistent offset in the z dimension across the cross-section of the build volume (progressively worse as the carriages get higher). I doubt that this tower error is truly able to be corrected without the ability to set the angle of each tower in the firmware. Based on the angle, the firmware could then adjust the delta radii/horizontal radius with changes in carriage height. Any other solution is not actually going to help, it will just move the error to a different parameter - in this case, one that is not able to be corrected.

One other issue that may show up even if the lean inward and outward of the tower(Y) can be adjusted, would be the angle of the towers perpendicular to the lean inward and outward(Z), and the rotation of the tower in respect to the center of the tower vs the printer - not alpha rotation(X). If these can be adjusted for, then the printer would know all three possible angles of rotation - X(heading), Y(pitch), and Z(bank). This would remove any possible error, yet, it is rather pointless when the machine could be precise in the first place.

With this being said, I am probably going to keep my calibration technique as a way of partial correction with error minimization.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Thu Sep 17, 2015 7:07 pm
by bvandiepenbos
RollieRowland wrote:I have been pondering on the steps per mm correction - specific to each tower. One issue that I can foresee with having SPM specific to each tower would be an inconsistent offset in the z dimension across the cross-section of the build volume (progressively worse as the carriages get higher). I doubt that this tower error is truly able to be corrected without the ability to set the angle of each tower in the firmware. Based on the angle, the firmware could then adjust the delta radii/horizontal radius with changes in carriage height. Any other solution is not actually going to help, it will just move the error to a different parameter - in this case, one that is not able to be corrected.

One other issue that may show up even if the lean inward and outward of the tower(Y) can be adjusted, would be the angle of the towers perpendicular to the lean inward and outward(Z), and the rotation of the tower in respect to the center of the tower vs the printer - not alpha rotation(X). If these can be adjusted for, then the printer would know all three possible angles of rotation - X(heading), Y(pitch), and Z(bank). This would remove any possible error, yet, it is rather pointless when the machine could be precise in the first place.

With this being said, I am probably going to keep my calibration technique as a way of partial correction with error minimization.
I agree, messing with SPM specific to each tower is probably pointless. Your script works good enough as is.
Impressive work you have done here. Thanks.
I do wish your app worked with 'manual' input from a dial indicator and saved results to a plain text file that you then entered in your firmware yourself. ...instead of using the .html version.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Thu Sep 17, 2015 9:03 pm
by 626Pilot
RollieRowland wrote: Adjusting parameters for tower lean may not be the best solution, it is not - I shouldn't say impossible - improbable to be able to correctly find this value.
In theory, if any gains can be found from modifying the steps/mm, my code will find at least some of those gains. It won't know whether it's correcting for tower lean, belt tightness, variations in how the stepper rotors were machined (if that's even a thing that matters), etc. All it will know is that one particular solution produced less Z error than the rest. All the solutions have to compete with each other in an environment where they're hobbled by a random number generator, so "only the strong survive."
I agree, correcting the steps per millimeter could mostly correct the error caused by the tower lean. Also, yes, this would offset the scaling in the z dimension but having only one parameter to adjust for, would be preferable - the scaling of the prints can just be adjusted to compensate, assuming that the change in scaling in the z would be linear.
My assumption is that the steps/mm really does have legitimate variations between towers, and that we're fixing that directly - rather than massaging something that's already correct, in order to try to influence something else that it has an effect on. If that assumption is correct, this will improve positional accuracy - and therefore scaling - on all three dimensions.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Thu Sep 17, 2015 10:48 pm
by RollieRowland
626Pilot wrote: In theory, if any gains can be found from modifying the steps/mm, my code will find at least some of those gains. It won't know whether it's correcting for tower lean, belt tightness, variations in how the stepper rotors were machined (if that's even a thing that matters), etc. All it will know is that one particular solution produced less Z error than the rest. All the solutions have to compete with each other in an environment where they're hobbled by a random number generator, so "only the strong survive."

My assumption is that the steps/mm really does have legitimate variations between towers, and that we're fixing that directly - rather than massaging something that's already correct, in order to try to influence something else that it has an effect on. If that assumption is correct, this will improve positional accuracy - and therefore scaling - on all three dimensions.
Yes, there is most definitely variations - significant or insignificant - in steps per millimeter for each tower. However, the issue here is that we may think that we are correctly setting the spm through an error that could exist if either the tower lean is off or the spm is off. This causes an issue, it is almost as if we are solving an equation with two unknown variables - the variables could differ greatly from what we expect them to be, or they could be exactly what we expect them to be. So, from what I understand here, it is only possibly to correct the spm for each tower if the towers are within a small tolerance - say 89.9 to 90.1 degrees from the bed. To properly correct this, we need to find a way to remove one variable from the equation, but which to remove?

I am going to think for a possible solution, but I am starting to think that the only method to remove a variable is to either write firmware that allows for the adjustment of the tower lean and manually measure the angle, or mechanically correct the tower lean through a more precise frame.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 2:25 am
by 626Pilot
I believe that adjusting steps/mm can probably help for minor variations between steppers, as well as in-out tower lean. As far as the kinematics are concerned, they're functionally similar. If the tower leans in, we need to send fewer steps. If it leans out, we need to send more steps.

Left-right tower lean is another matter. It will respond differently depending on whether the effector is to the right or left of the carriage. Correcting for this solely through steps/mm could cause accuracy that's slightly better on one side, and slightly worse on the other.

The most ideal solution would be to correct for steps/mm, AND tower lean, as completely separate variables. This is the question: "Given effector position XYZ and towers with endpoints ______, how far do the carriages have to be from the tower origins, in order to be exactly 269mm (or whatever) from the effector's ball joints?" Modifying the firmware to do this isn't too much trouble. The trick is knowing how to do it in a single step, hundreds or thousands of times a second.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 9:10 am
by geneb
I would avoid the tower lean compensation entirely. It's up to the builder to make the machine square, not the software.

g.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 12:22 pm
by HumanLiberty
This feels trivial to mention this while you guys are discussing the "deep magic" of calibration here...

But I used the .html v1.0.4 to calibrate, and am now
experiencing a weird glitch whereby adjusting Z-height properly sends the nozzle slamming to the plate, about 2" in from where it's supposed to be.
Setting Z a few 1/10smm higher sends gets out to the periphery where it belongs, but floating about 2-3mm above the bed. I've tried a bunch of times and there doesn't seem to be a sweet spot - it's quite literally "hit or miss."

Again this is probably a naive question, but could this be an artifact of having changed the Z-height w/o a corresponding tweak to Horizontal Radius?
There is a confounding variable that after calibrating I installed a prometheus v2 under the effector, but I can't see why that should have had any such impact.

Has anyone else experienced something similar or clues to offer? Much appreciated if so!

(Man, this 3D printing stuff can be an incredible test of endurance -
Gonna either be a zen monk or raving maniac by the time I get this thing going - :roll: :D)

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 2:04 pm
by RollieRowland
626Pilot wrote:I believe that adjusting steps/mm can probably help for minor variations between steppers, as well as in-out tower lean. As far as the kinematics are concerned, they're functionally similar. If the tower leans in, we need to send fewer steps. If it leans out, we need to send more steps.

Left-right tower lean is another matter. It will respond differently depending on whether the effector is to the right or left of the carriage. Correcting for this solely through steps/mm could cause accuracy that's slightly better on one side, and slightly worse on the other.

The most ideal solution would be to correct for steps/mm, AND tower lean, as completely separate variables. This is the question: "Given effector position XYZ and towers with endpoints ______, how far do the carriages have to be from the tower origins, in order to be exactly 269mm (or whatever) from the effector's ball joints?" Modifying the firmware to do this isn't too much trouble. The trick is knowing how to do it in a single step, hundreds or thousands of times a second.
Yes, this would count for the majority of the error in the X, Y, and Z dimensions near the calibrated portion of the cross-section. Although this would amplify the error higher up - the delta radii and horizontal radius would be entirely off. This would be even worse than if the steps per mm were not corrected for each tower in the first place.

Also, with the firmware we are both working with, it is best to ignore the left-right lean - at least for now.

Yes, solving for them separately is the best solution. Except we need a way to adjust for this in the software to consider it. Or as Gene said, leave it up to the user to build a precise machine. I would still enjoy being able to adjust for any deviations in the towers. We would have a whole new level of precision, even if the towers are within a small tolerance.


HumanLiberty, when I get back in front of my computer I will help you.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 3:21 pm
by HumanLiberty
10k Thanks Rollie!

Cancel it though - I re-installed Repetier again and is seems to have resolved. Thanks again!

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Fri Sep 18, 2015 4:57 pm
by teoman
For the tower lean you would ideally need x y position.


For this, what one could do is cut a straight piece of aluminium foil and then stick it to the bed. With the nozzle and the Al closing a circuit to detect position.


The nozzle should touch down on the Al and then when it passess off the Al will be detected and the point recorded.

Several linear passes, and you check in your software if those points are linear.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Sat Sep 19, 2015 10:48 pm
by PikachuPorkChops
Hello,

I've been trying to calibrate my bed with the manual HTML script over the last few days now and I can't seem to get good results from it. I'm using electronic calipers to measure and after 4-5 iterations I get the 6 points to +/- 0.01mm. The problem occurs when I switch out the calipers for the hotend and actually try printing. At about 5cm from the centre of the bed I get height deviations of up to 0.6mm. I don't understand what's causing this. Am I not supposed to change the zheight once I finish calibrating? Should I zero the calipers for every iteration?

Another thing I noticed was that when running your gcode, the probe ends up about 2mm lower when going to the bed centre as opposed to when I bring it down manually through MatterControl.

This is the mount I'm using for the calipers: http://repables.com/r/614 though I don't think it's the source of the problem.

Unless the answer to my problems is painfully obvious, it might be good to update the tutorial.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Sun Sep 20, 2015 1:19 am
by RollieRowland
HumanLiberty wrote:10k Thanks Rollie!

Cancel it though - I re-installed Repetier again and is seems to have resolved. Thanks again!
Ok, glad you figured it out! Sorry I hadn't replied sooner, was busy the past two days.
teoman wrote: For the tower lean you would ideally need x y position.


For this, what one could do is cut a straight piece of aluminium foil and then stick it to the bed. With the nozzle and the Al closing a circuit to detect position.


The nozzle should touch down on the Al and then when it passess off the Al will be detected and the point recorded.

Several linear passes, and you check in your software if those points are linear.
How will the software determine the true X and Y positions? I am not sure I fully understand your method. The lean of the towers are actually able to be found through measuring a single point at the tower, at the center, and at the opposite of the plate. A requirement here would be for the delta radii, horizontal radius, steps per mm(for each tower), diagonal rod length, to be corrected prior to this testing.

-The horizontal radius can be corrected through modifying the parameter until the average of all the values is equivalent to zero. This allows the a lesser amount of change in the delta radii by adjusting all at once - essentially.
-The delta radii can be corrected through comparing the height at the tower and at the opposite side of the plate. If the values are inversely equivalent(the sum of the two is zero) then the radius is correct - otherwise needs corrected.
-The diagonal rods need to be accurately measured from the center of the joint at the effector plate, to the center of the joint at the carriage. There is no way for this value to change, it is static. The only reason that this value was previously changed in my calibration method was because it was the only solution to the error that was found - this error was truly induced from an error in the steps per millimeter.
-For the steps per millimeter, at the moment there is no way to find the steps per millimeter automatically for each tower UNLESS the towers of the printer are perfectly square. This would have to be done manually. The calibration will supposedly correct the SPM, however, it will be correcting for error that is not produced by the SPM. This causes horrendous scaling issues - checked through physical testing.

Given this information however, it may be best to just use an angle finder and adjust towers if possible - by if possible, I mean by a situation which was similar to mine, where all of my towers were angled inward from 1.3 to 2.1 or 88.7 to 87.9 degrees.

Edit: The majority of the error in the X and Y dimensions leave some vestige which can be traced and corrected through a corresponding relationship with the Z-dimension.
PikachuPorkChops wrote: Hello,

I've been trying to calibrate my bed with the manual HTML script over the last few days now and I can't seem to get good results from it. I'm using electronic calipers to measure and after 4-5 iterations I get the 6 points to +/- 0.01mm. The problem occurs when I switch out the calipers for the hotend and actually try printing. At about 5cm from the centre of the bed I get height deviations of up to 0.6mm. I don't understand what's causing this. Am I not supposed to change the zheight once I finish calibrating? Should I zero the calipers for every iteration?

Another thing I noticed was that when running your gcode, the probe ends up about 2mm lower when going to the bed centre as opposed to when I bring it down manually through MatterControl.

This is the mount I'm using for the calipers: http://repables.com/r/614 though I don't think it's the source of the problem.

Unless the answer to my problems is painfully obvious, it might be good to update the tutorial.
Since you did manage to calibrate to that tolerance, there are several issues that may cause this.
1. Your towers may be off significantly - enough to change calibration issues due to the change in Z-height change from the height of the calipers to the height of your hotend.
2. "Should I zero the calipers for every iteration?" Yes, you should. Any change in offsets/horiz rad/etc. will change the height at the center of the bed. This is very important to do every iteration.
3. Do you home your printer before bringing the probe down in MatterControl/when lowering manually?

Your mount will not be a problem, but if the height between the end of the calipers/effector plate vs. the end of the hotend/effector plate, this may cause issues. This is the main reason that I switched to FSRs over a Z-probe; the carriages are lower when you print than when you calibrate(with a z-probe), thus the calibration will significantly differ(not by 0.6mm at that distance though).

For updated instructions/tutorial/video/etc.: I have planned on adding a well documented set of instructions for both versions of the program, however, finding the time is quite difficult. At the moment, I am only able to be near the printer one day a week(Friday nights) and I usually juggle four things at once. The lack of documentation has just not been a priority - I was hoping the automatic version would phase the manual out. During the weekdays, I have been slowly working on a paper detailing every step about the calibration, in hopes that everyone will find issues which will help improve the program. I will try to push better instructions for the manual calibration higher up on the list and this will come with an additional video using the program.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Sun Sep 20, 2015 2:21 am
by 626Pilot
I spent today writing some code into my calibration routine to try out changing steps/mm. I found that the forward/reverse kinematics in Smoothie don't consider steps/mm at all - they only care about millimeters, and let the Stepper class translate between millimeters and steps. This is a sensible solution.

Instead, I added per-tower scaling, effectively making each tower "longer" or "shorter." Functionally, the effect is the same as modifying steps/mm.

The annealer rarely touched the tower scaling. It would adjust all the other variables by a tiny amount every pass, but the scale multiplier almost never departed from 1.0. When it did, the resulting solution never had a winning score (lowest Z deviation).

These initial results suggest that there's no great advantage to messing with steps/mm, or tower scaling, or whatever you want to call it. I'm going to let some of my users mess with this, and see if it does anything for them.

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Sun Sep 20, 2015 2:44 am
by RollieRowland
626Pilot wrote:I spent today writing some code into my calibration routine to try out changing steps/mm. I found that the forward/reverse kinematics in Smoothie don't consider steps/mm at all - they only care about millimeters, and let the Stepper class translate between millimeters and steps. This is a sensible solution.

Instead, I added per-tower scaling, effectively making each tower "longer" or "shorter." Functionally, the effect is the same as modifying steps/mm.

The annealer rarely touched the tower scaling. It would adjust all the other variables by a tiny amount every pass, but the scale multiplier almost never departed from 1.0. When it did, the resulting solution never had a winning score (lowest Z deviation).

These initial results suggest that there's no great advantage to messing with steps/mm, or tower scaling, or whatever you want to call it. I'm going to let some of my users mess with this, and see if it does anything for them.
Since your tower scaling didn't change, what were your end results for the diagonal rod length and horizontal radius? (or SmoothieWare equivalents)

Re: Delta Automatic Calibration Tool - For Repetier Firmware

Posted: Sun Sep 20, 2015 3:12 am
by PikachuPorkChops
1. I did a quick check and can confirm my towers are in fact off by 1-2 degrees. The trouble with squaring them is that my bed domes at the centre, but I will try that tomorrow.
2. That was my assumption; it would have been impossible to get my tolerances otherwise.
3. Yes, I do home the printer every time, but there is a discrepancy between your gcode and when I do it through MatterControl.

I did a quick look (as it's quite late) and the square is 1mm higher on the side of the bed close to the X axis, with similar values on the X and Y. I guess it would be impossible to account for the "waviness" caused by this, but only an overall tilt in the bed.

As for the instructions, I think you were right in that writing a comprehensive overview is not of high priority, though maybe a rough set of steps should be created. The comprehensive bit can come, as you mentioned, once issues with the program are solved.