Page 1 of 5
Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 2:40 pm
by JohnStack
I'm offering this personally since I think it needs to be solved... [edited]
Looking at this (other) machine's blog, I'm thinking auto-calibration is overdue and I can't do anything about it.
http://www.blueeaglelabs.com/blogs/news ... structions
I'm putting out $100 (and hoping SeeMeCNC will match me) for the following:
1. An auto-calibration system that requires a minimum amount of configuration and changes by the user. This can be with a needle dial adapter and a strong set of instructions, a clip on hall effect sensor, frickin' laser beams on sharks, resistor sensors (
http://www.phidgets.com/products.php?product_id=3104) etc.
2. Documentation with pictures - a word doc that is worthy of Geneb's (or better, sorry Gene) standard. Documentation should include a BOM with links to suppliers, links to thingiverse files if it's a clip on thingy, and a very good description of what the script/process does.
3. A complete cost for less than $100 to the end user - including devices they might be required to purchase.
4. An aerospace machinist's level of quality and thoroughness applied to both the device, script, and/or process.
Preferred Behaviors of System (in my order...)
1. Firmware that includes the script to calibrate. (G29?)
2. A script to be pasted into Repetier G-code.
Other Caveat's/Requirements:
1. This must work for a variety of head configurations on a base Rostock platform.
2. The user must be able to get the proper settings for their head / bed from this system to provide optimal printing results.
3. This process must not take the user more than 10 minutes after they have walked through it once.
I'll let Steve W and John O be judges...bwahahahahah.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 2:59 pm
by Jimustanguitar
JohnStack wrote:This can be with a needle dial adapter and a strong set of instructions, a clip on hall effect sensor, frickin' laser beams on sharks, etc.
+$100 from me if it actually includes a shark!
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 3:00 pm
by Eaglezsoar
I think being in Vietnam effected you more than you know!

Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 5:55 pm
by Chrissi
I will say it gain, spray wet glass, squeegee some HD alum foil to the glass, clip lead to hot end, clip lead to foil, plug one into Arduino digital inputs other to ground (are we hosed on the Rambo or does it have inputs?) ... do rough manual calibration to determine about where glass is so it can rapid to the neighborhood then creep down to the surface and probe it's little heart out. That's the easy part, code warrior(s) needs to do rest.
No need for fussy probe

Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 6:07 pm
by JohnStack

If the mini kossel can do it, the MAX can!!!
http://reprap.org/wiki/Kossel#Automatic ... ling_probe
or with a single force resistor gadget.
I'm going to try this on a mini...sometime.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon Mar 03, 2014 6:33 pm
by wildideas1
i was wondering if the kossel delta can auto cali bed what is issue that rostock cannot ??
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Mar 05, 2014 7:29 pm
by JohnStack
I wish I knew!!!
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Mar 05, 2014 9:11 pm
by bubbasnow
this is for pla only
http://youtu.be/HcnhCNh2Ln4
but this only will align the bed plane...it doesnt account for warping due to heating bed
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Mar 05, 2014 9:33 pm
by DavidF
Chrissi wrote:I will say it gain, spray wet glass, squeegee some HD alum foil to the glass, clip lead to hot end, clip lead to foil, plug one into Arduino digital inputs other to ground (are we hosed on the Rambo or does it have inputs?) ... do rough manual calibration to determine about where glass is so it can rapid to the neighborhood then creep down to the surface and probe it's little heart out. That's the easy part, code warrior(s) needs to do rest.
No need for fussy probe

Or conductive glue stick of hairspray....
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Mar 06, 2014 1:59 pm
by neurascenic
To do this right, wouldn't one need steppers connected to the end stop screws to adjust them automatically?
the motors could get a real nice fine tune step/TPI pretty fine control.
To even consider this on the cheap, you could bank switch the controller so that it can control multiple motors at different times.
Might exceed the $100 Brick wall though.
Would that be multiplexing? gosh, it has been a long time since College.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Mar 06, 2014 2:04 pm
by Jimustanguitar
neurascenic wrote:To do this right, wouldn't one need steppers connected to the end stop screws to adjust them automatically?
The limit switches would become 'physical limit' switches, and not calibration or leveling adjustments. The idea is to make the software know where X0,Y0,ZMax is from the ZProbe and adjust everything else accordingly with special programming in the firmware.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Mar 12, 2014 5:44 pm
by lordbinky
Just from a design standpoint I'm not coming up with a method that doesn't use 12 points and multiple runs with a z-probe without leaving things uncorrected.
Ideally I'd want my dial indicator to have a potentiometer in it so we could have an analog readout of the height to calibrate from instead of hit/miss zprobe triggers.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Mar 12, 2014 7:05 pm
by Captain Starfish
Depends on the problem you're trying to solve with this autocalibration.
Accounting for a non-planar bed (warped, curved, whatever) is pointless because what we're trying to print is flat. So a non-planar bed could only be corrected for by printing a raft which fits the bed on the bottom and is flat on the top. But then again, printing two or three or four layers of flat raft will have much the same effect.
Correcting for spherical errors (concave/convex) in the delta geometry as we do with horiz-radius now, or a planar bed which is not orthogonal to the Z travel of the delta (bed rotated in X/Y, what we do manually with the end-stop adjustments now) only requires centre point and three perimeters but this would have to assume that the bed is planar. I like the way MatterControl does this inline, I guess it's measuring the offsets and applying them as an inline filter to the G-Code coordinates passing through.
Limit switches on the top make sense, on the bottom surely that'd be what your z-probe is for?
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Apr 02, 2014 2:49 pm
by 0rionN00b
Captain Starfish wrote:Depends on the problem you're trying to solve with this autocalibration.
Accounting for a non-planar bed (warped, curved, whatever) is pointless because what we're trying to print is flat. So a non-planar bed could only be corrected for by printing a raft which fits the bed on the bottom and is flat on the top. But then again, printing two or three or four layers of flat raft will have much the same effect.
Correcting for spherical errors (concave/convex) in the delta geometry as we do with horiz-radius now, or a planar bed which is not orthogonal to the Z travel of the delta (bed rotated in X/Y, what we do manually with the end-stop adjustments now) only requires centre point and three perimeters but this would have to assume that the bed is planar. I like the way MatterControl does this inline, I guess it's measuring the offsets and applying them as an inline filter to the G-Code coordinates passing through.
I would say the opposite - the probe needs to be able to do multiple point measurements - because NO bed is perfectly flat for long (even if you can buy one that's originally flat).
I haven't looked 'under the hood' - so i dunno if there's more than one '0' setting for Z or not. it seems to me that the need for 10-20 points of Z0 measurement would be the answer - because that's what's going to fix the issue of a non-planar bed.....
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Wed Apr 02, 2014 7:43 pm
by dtgriscom
As an intermediate solution (that may not earn JohnStack's bounty), what about a software-only tool with no added probe? The tool would place the nozzle over a point on the bed, and then give the user a smooth, easy control to bring the nozzle down to the surface of the bed (minus a sheet of paper). When the height was adjusted, the user would click "OK", and the tool would move the nozzle to a new spot to probe, and repeat. After probing in front of each tower and at the center of the bed, the tool would calculate offsets for each of the end stop points and the horiz-radius value and then write it all to the EEPROM.
Let's say 30 seconds to move the nozzle down until it's just touching the bed, plus ten seconds to click "OK" and watch it move to the next point. That's 40 seconds per calibration point, or a total of three minutes for the four points I mention above. Add a couple of minutes to remember how to use the tool, and that's five minutes to do it all.
How much better would a solution with an automatic probe be? You'd save the time to manually calibrate each point, or three minutes per calibration. Do a hundred calibrations, and that's five hours saved. But, just about any calibration probe you'll find is going to take at least five hours of investment to assemble, install, wire and configure.
Just a thought,
Dan
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 9:44 am
by geneb
An auto-calibration system has to perform a LOT of repeated probes. On the deltabots list a machine took about an hour to finally solve out. The best solution I've seen yet involves FSRs (force sensing resistors) under the build surface, but there's been some issue with their temperature ratings. Mhackney has been playing around with this a bit.
I'm not going to get anywhere near it until they've got the code ported to Repetier (it's in Marlin now). I'm not taking 100 steps back just to get something I can do by hand.
g.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 11:42 am
by 0rionN00b
geneb wrote:
I'm not going to get anywhere near it until they've got the code ported to Repetier (it's in Marlin now). I'm not taking 100 steps back just to get something I can do by hand.

g.
I'm a bit with you, although (it seems to me)this really needs to become soemthing that's integrated into the controller (not requiring a Repetier or other software to run)...
IMHO, bed leveling really MUST become an integral part of any 3d printer, if it's going to become "mainstream" anytime soon.
A side benefit of figuring this out could lead directly to a decent 6 axis printing platform - because when you "know" precisely where the head is at all times, a LOT of new avenues are opened up..
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 11:49 am
by Polygonhell
You really need to specify what you are trying to solve with auto calibration.
Setting the Z height is easy enough, requires 1 sample.
Calibrating for bed skew (i.e. Z height at each tower) requires 4 samples.
Fixing Delta Radius, requires 4 samples, but only if other than that value every other measurement is perfect, and the numbers involved are small enough that you might have to do it repeatedly to converge.
Correcting for arbitrarily bad geometry is a lot harder. All the values interact, Trying to do it piece meal, fix A then B then C would minimally require an iterative process, and the equations are probably too complex to solve directly. You could probably take a plate of samples and come up with a possible solution using iterative methods, but there is always the chance of a local minima.
It's a lot easier on a cartesian machine because in general you're just solving for Z of the bed vs the head position, if the beds flat then that's 3 sample points.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 12:40 pm
by JohnStack
Let's say we set a standard that's fit for aeronautics:
More points on the plane = better geometry or map of the bed surface. Having the ability to set the number of points during what I would call Bed Surface Geometry or a "Bed Surface Map" would be great! (This is based on the assumption that there would be a number of high and low spots.)
Different temps may affect a bed's surface. How would that be accommodated?
Other points:
The firmware would have to accommodate a "Bed Surface Map". This would likely have to be configurable in the firmware.
And I want to take this time to say thanks. I didn't throw it out there just to see if someone could do it. I put out the reward because I think someone might take on the challenge and get it done. In no way does the bounty match up to the amount of effort this would take. /jws
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 1:07 pm
by Jimustanguitar
I think that both a quick spot check and a full calibration map are necessary. You'd want to do the full calibration with a dozen or more points the first time to set your diagonal rod length, horizontal radius, carriage and platform offsets, and z height/leveling; and you'd want to do a quick check with only 3 or 4 points periodically afterwards (or after transporting your machine) to check for leveling and heat expansion.
Several of the things that the full blown bed leveling process would calculate are not variables that should change under normal circumstances.
This is starting to get exciting. I really hope that smarter people than me are making progress on this!
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Thu Apr 03, 2014 1:46 pm
by dtgriscom
Polygonhell wrote:You really need to specify what you are trying to solve with auto calibration.
Setting the Z height is easy enough, requires 1 sample.
Calibrating for bed skew (i.e. Z height at each tower) requires 4 samples.
Fixing Delta Radius, requires 4 samples, but only if other than that value every other measurement is perfect, and the numbers involved are small enough that you might have to do it repeatedly to converge.
Correcting for arbitrarily bad geometry is a lot harder.
I can't see putting lots of effort into fixing a bed that isn't flat, as none of the choices are all that good. I'd prefer to buy what I need to have a flat bed, and then correct for any offsets/skew.
If you are going to try to compensate for a non-flat bed, I see a few options (in increasing order of complexity):
- Find the closest plane to the surface of the bed, and have the head move across that plane. You might have adhesion issues at some points, but the resulting object would be straight.
- Warp the model's Z positions to match the warp in the bed. You'd get good adhesion, but you'd end up with a warped object.
- Warp the model to match the warp in the bed, but reduce this warping gradually over the first few layers. You'd get good adhesion and a fairly straight object.
- Do a "fill in" process before the first official layer of the model, adding material to fill in the bed's low points. You'd end up with no adhesion issues and a straight object. You could also do this with a removable raft.
Except for when using a raft, the bed surface of the model would always be warped.
Jimustanguitar wrote:I think that both a quick spot check and a full calibration map are necessary. You'd want to do the full calibration with a dozen or more points the first time to set your diagonal rod length, horizontal radius, carriage and platform offsets, and z height/leveling; and you'd want to do a quick check with only 3 or 4 points periodically afterwards (or after transporting your machine) to check for leveling and heat expansion.
I don't think you can correct for arbitrary geometry problems by only measuring the Z offset. You'd need to measure where on the bed the head was contacting, which would be tough to measure with any precision unless we did something like print a calibration pattern on the bed and then use a fixed camera to evaluate it. Let's say you have a 12MP camera that covered the bed; that would be about 3k pixels across a 280mm diameter bed, or about 10 pixels/mm. You'd lose some of this because of fuzziness, but could recover some more by taking lots of images and stacking them. 'Twould be an entertaining machine vision problem, but solvable. (It's fun thinking about the effector motions you'd program to get it and the arms out of the way of the camera.)
Assuming you're dealing with a flat bed, and assuming you're only measuring the Z offset, what could you measure and correct for? And of that, what is likely to change over time, or even be wrong in the first place? For example, being able to detect and compensate for differences between the three towers in steps/mm wouldn't be useful, because the timing belts are pretty darn standard and stable.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Fri Apr 04, 2014 1:25 pm
by lordbinky
With the Z probe, a printer can get it's four point calibration spot on with it's geometry off which can cause some headaches when you try to print over the whole bed.
To identify geometry errors (with a flat bed) it is as simple as test the points opposite the tower (which is the point between the other two towers), you can tell if the geometry is off if you do not trigger the probe where you predict you should ( Z=0). I believe with the 6 perimiter points (3 towers and their opposites), and another 6 at half that distance from the center, you would have enough information for an iterative correction process you can run though to get geometry correction values. Not a big deal if it only needs to be done one time. I also think that it might be possible that with a 12 point (13 if you want the center but I see this as unnecessary, if it's z=0 at the 12 points it would be at center) check to be unique enough to determine the geometry errors in one shot with a (yet to be developed) algorithm.
You can also identify other issues with some simple routines. If you have the printer home between each four point check, and then perform the same four point check but have the printer lift the probe 20mm(arbitrary distance) and then z-probe the points. (check the points without returning to home) If they are different, you have definitive problems in the movement whether it's arms, motors, belts, or the effector. With a set of routines you could have the printer point you in the most likely direction.
With just the Z probe still, you could also determine the maximum value of movement settings such as Jerk and Acceleration. It would be a similar routine to the last one I mentioned with maybe a set of appropriate motions to test the setting would allow you a routine to increase the setting (or bouncing it around with a binary search) and provide the value of that setting. If you wanted it to do multiple settings at a time, order of the settings would be important since their maximum is typically dependent on each other. You could even go crazy and let it manipulate settings such as motor current (within a set safe bounds) to optimize that.
Well, there's my thought process on auto-routines with just the z-probe (or equivalent). I wanted to try coding this up,but my friend has me tied up with side project (Damn did I want those bragging rights

). Hopefully this post will help more than hurt anyones chances of success though.
edited: clarity
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Fri Apr 04, 2014 4:26 pm
by JohnStack
This article was good. Does it help anyone? Our own 626Pilot has also built a hallo...and says it doesn't work with Repetier.
http://www.openbeamusa.com/blog/2014/1/ ... ling-probe
Love this concept. Truly wish there wasn't just a basic way to ease it down and report it - and then go to EEProm and go.
Unfortunately, it appears that many of the Z-probe settings are resident memory only. Hmmmm....wonder why...
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon May 05, 2014 9:31 pm
by greglee101
I am new to this but my normal job involves solving complex machinery problems. It seems to me you are mixing two issues. The first question is how flat the build plate is relative to itself? The second question is how much is the build plate tilted from perpendicular to the z axis? Why not replace the glass build plate with an aluminum build plate. Then attach a simple wire to the print extruder and a second clip on wire to the aluminum build plate. Program the system so that the print head slowly approaches the aluminum build plate. When they touch your circuit goes to from infinite ohms to near zero ohms. Now the system knows exactly the z height. With a little special programming the system could collect a grid of measurements and account for tilt of the plate and correct for this. As far as plate flatness the system could calculate the average from the grid minus the tilt. If the plate is to irregular then have the aluminum build plate resurfaced.
Re: Auto-Calibration - $100 Bounty and Bragging Rights
Posted: Mon May 05, 2014 10:02 pm
by mhackney
greglee101,
I use a variation of this technique to set the datum on my CNC mill. Here are some other considerations you may not be aware of:
Very few folks print directly on aluminum, they usually print on glass or something adhered to glass.
The issue is almost never the glass plate. For our purposes we can consider it to be a good reference surface. It's also fairly easy to check it with a good straight edge
Here's the killer - plate tilt from Z is actually not that difficult to fix, the problem is the delta geometry is based on trigonometry, unlike the simple math in a Cartesian printer. There are a couple of constants that must either be measured (ideal) or determined empirically. These include the delta arm length and the delta radius. If the towers are absolutely perfectly plumb and oriented 120° from each other and you know these 2 constants, you can accurately calculate the X, Y and Z coordinates of the nozzle tip. That's the ideal scenario, the reality though is a little less elegant - the towers may be tilted in or out (or combinations), may not be positioned accurately at 120°, may lean left or right. There may be slight variations in delta rod length, pairs of delta arms may not be perfectly parallel to each other, their length may not be known or may have some slight variations. And the delta radius is affected by the effector delta arm mount position, carriage delta arm mount positions, etc. In other words, there are lots of places where variations can creep in. When this happens, the issue/s present themselves as non-planar movements in Z. So, instead of staying in a plane, the nozzle tip travels in a curved path. Many people observe this phenomenon and mistakingly say or think that "the bed is not level or flat" when in fact it might be dead flat and level!
"Delta" mechanical calibration is a bit more difficult than "Cartesian" calibration. Unless the linear guides are themselves bent, you are reasonably guaranteed that the travel along a given axis will be linear. Combine two of these (say X and Y) and you are relatively guaranteed that the travel will be planar. "Tilt" is the primary calibration consideration in a Cartesian printer.
So, calibration as described in the link John posted above attempts to compensate for the observed non-planar travel due to mechanical issues or the incorrect values for the required constants. The basic concept is to create a Z map of the bed surface - and assume it is indeed flat if it's a borosilicate glass plate. Then, with this Z map, the calculation of Z can be adjusted at a particular X-Y location - thus forcing planar travel in Z.
Shew...! That's a lot of typing!
cheers,
Michael