Welcome! Log In Create A New Profile

Advanced

rich cattell auto calibration

Posted by gromyjoe 
rich cattell auto calibration
January 17, 2017 07:46PM
Hello everyone! I live up in the great Northern Ontario up in Canada eh!
Its a bit of a challenge finding people that even know what a 3d printer is.
So I come to the online forums with my dialup internet for some help!

I have been running marlin firmware with my home built delta printer and
its given me some amazing prints, but I was getting tired of manually calibrating
And levelling, also I bought a proximity sensor. I decided to give rich Cattell's
firmware a try. All the movement is fine but when I do G30 A, the second attempt
at probing, the effector moves way outside the probing zone. I have to abort the
Probe or else it will break things. I dont see anything I missed in the firmware,
Im completely lost here... If it helps I can upload the config files and take a video
Of the issue.

Thanks for looking ☺
Re: rich cattell auto calibration
January 18, 2017 06:20AM
I'm not sure, but Rich Cattels marlin-version is quite old.
The original marlin branch on github has evolved a lot. They might have released a "stable" version with autocalibration for deltas.
Re: rich cattell auto calibration
January 18, 2017 06:43AM
I'm not sure there is yet a marlin version with anything but very basic delta autocalibration (endstops only). I used to use rich cattells until I moved to duetwifi which has a very fast autocalibration routine.

The issue is probably the probe being offset quite a bit. Try to get your probe as close to your nozzle as you can, then set a printable radius which keeps the probe inside the bed. Make sure your probe offset is entered in config and that you don't have the + and - coordinates the wrong way around. Be aware when calibrating its the probe position at each coordinate that matters not the nozzle, but when autolevelling it needs the offset to translate probed points into nozzle positions. How about taking the hot end off, making a probe holder to put the probe where the nozzle normally is, autocalibrate, save then replace the hotend.

Especially on deltas using the nozzle as a probe makes much more sense, (no offset in x or y, only slight in z, can probe anywhere you can print, no weight on effector, and if your sensing modality is sensitive its very accurate) but to do this you need fsrs under the bed or piezo's. Or and it's new this week, a Piezo sensor in the hotend, my new project [www.thingiverse.com]


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: rich cattell auto calibration
January 18, 2017 05:02PM
The z probe is offset quite a bit.. -40,-20 are the coordinates. Ill try mounting it in place of the nozzle and see how it goes!
Thanks for the input and ill update on my progress
Re: rich cattell auto calibration
January 19, 2017 08:42PM
ok so I removed the extruder and put the probe in place. changed my offset to 0,0 and my probing diameter at 80mm. sent G30 A and the first run was good but the next 4 were probed in a straight line across the edge of the bed...im not sure if that's what it does so I left it. then after the 5th time homing and going down it just stopped. I think repetier host froze up and lost communication to the printer.


I'm now up 38 runs and still a straight line.. is this normal?

Edited 1 time(s). Last edit at 01/19/2017 09:08PM by gromyjoe.
Re: rich cattell auto calibration
January 20, 2017 04:39AM
This is odd. When you say the first run, do you mean the first few probing points or a complete cycle ending with "autocalibration complete use m500 to save" on the terminal in repetier? If repetier crashes use pronterface its much simpler and less problematic. Make sure your USB cable is high quality, shielded and no longer than absolutely necessary.

In configuration.h:

Try to get these values as close as you can before starting by measuring. Rich Cattel's method is iterative. It first tries to set the endstops by probing at the bases of the towers, then homes, then tests the positions. Once it has done this it will go round and round probing the bed altering values to measure their effect. From time to time it homes as it has to change endstop values and then begins again. 6-7 iterations would get a solution on a mechanically sound printer (which few are), my old kossel mini could take 30-40 iterations at 0.05 precision but would usually get to a solution after 6-7 iterations at 0.1mm precision. Start with 0.5, then when it succeeds save (m500) then try 0.2, then repeat at 0.1. If it gets to 99 iterations and fails you have reached the limits of your mechanicals/probe.

Make sure eeprom is enabled in configuration.h or you can't save your calibration when you get one.

#define EEPROM_SETTINGS
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// please keep turned on if you can.
#define EEPROM_CHITCHAT

Delta settings:

#define DELTA

// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 200

// Center-to-center distance of the holes in the diagonal push rods.
#define DEFAULT_DELTA_DIAGONAL_ROD 217.5 // mm
Try to get this value precisely by measuring

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 156.4 // mm //158

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 24 // mm

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 24 // mm

// Effective horizontal distance bridged by diagonal push rods.
#define DEFAULT_DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)

//Uncomment to enable autocalibration debug messages
//#define DEBUG_MESSAGES

// Precision for G30 delta autocalibration function
#define AUTOCALIBRATION_PRECISION 0.5 // mm

This is how much deviation between bed points is an acceptable place to stop. Start with a fairly easy target. If you run G30 A it uses this value as the target, but you can send G30 A0.1 or G30 A0.05 to specify a new target precision.

// Diameter of print bed - this is used to set the distance that autocalibration probes the bed at.
#define BED_DIAMETER 170 // mm
Make sure this is not too high. Because the effector/wiring has width you cannot reach the edges of the bed on all printers, use a smaller value initially, you can always increase it slightly and calibrate again.

// Z-Probe variables
// Start and end location values are used to deploy/retract the probe (will move from start to end and back again)
#define Z_PROBE_OFFSET {0, 0, x, 0} // X, Y, Z, E distance between hotend nozzle and deployed bed leveling probe.
#define Z_PROBE_DEPLOY_START_LOCATION {20, 96, 30, 0} // X, Y, Z, E start location for z-probe deployment sequence
#define Z_PROBE_DEPLOY_END_LOCATION {5, 96, 30, 0} // X, Y, Z, E end location for z-probe deployment sequence
#define Z_PROBE_RETRACT_START_LOCATION {49, 84, 20, 0} // X, Y, Z, E start location for z-probe retract sequence
#define Z_PROBE_RETRACT_END_LOCATION {49, 84, 1, 0} // X, Y, Z, E end location for z-probe retract sequence

ignore all of this except offset as above, the rest is for servo deployable probe which you arent using. The value x should be the difference between the probes trigger height say 2mm and the bed, measure it by going down in the centre until the probe triggers, then piece of paper under it and manually descend in 0.1mm increments until your gripping the paper. Set this difference as the z offset. Ideally have your probe+z offset (trigger point) positioned at exactly the same length below the effector as the length of your hotend, to make switching back afterwards easier.

#define AUTOLEVEL_GRID 24 // Distance between autolevel Z probing points, should be less than print surface radius/3.

This is the distance between probing points when autolevelling. So if your bed is say 200 diameter you need a value here which divides that up into equal segments. I think I used to use 27mm for a 180mm bed. But try a smaller value, if the value is too large the nozzle goes out of the bed.

Now if all of that doesn't work or gets on your nerves try this instead.
go to [www.escher3d.com]
enter the values you measured as starting points.
Use this page to get some coordinates to probe [www.escher3d.com]
In pronterface create some short cut buttons to go to these points. Make sure they are all reachable but cover as a minimum the bases of each tower, a mid point between each tower base and the centre.
Manually home then go to each point and measure the height when your probe triggers (if you have an lcd read the values off it, if not send M114 to get coordinates back to the terminal) so if the probe triggers at +2mm enter -2 in the wizard for that point. repeat around all the other points then hit calculate, the wizard will give you new values to enter and save, then copy these back to the top and go again. Its calculation method is fast compared to rich cattels, but as you have to do it manually unless you have reprap firmware and duet controller it will take some time. When the deviation is quite low 0.05 or below you are done, make sure you save the values, put the hot end back on and make sure you adjust for the height being perhaps 2mm different due to the probe trigger point being above the bed.

Sorry if it all a bit of a headache deltas are, but when you figure it all out you'll have a greater sense of satisfaction.

Edited 1 time(s). Last edit at 01/20/2017 06:16AM by DjDemonD.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: rich cattell auto calibration
January 20, 2017 10:31PM
The first probing points work fine but after it homes and goes down for the second iteration and starts probing from one corner to another. Another thing I noticed is even on pronterface the z height stays at 0.00. I dont understand where its getting its coordinates from. It's straight along the x axis at about Y -180. I have it tuned in very close before trying auto calibration and I dont think that would cause funky probing locations..

I set BED_DIAMETER 100 and AUTOLEVEL_GRID 16
Is that correct or should the number be higher?
Re: rich cattell auto calibration
January 21, 2017 03:38AM
I had issues with one version of rich cattells firmware but not the others. I think there is master, testing and development. One of these really doesn't work. Might be worth trying a few different versions, config files should be the same to save you time.

Edited 1 time(s). Last edit at 01/21/2017 03:38AM by DjDemonD.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: rich cattell auto calibration
January 22, 2017 08:54AM
Do you have a config file I could compare mine to? I tried every version of riches' firmware with same result. It's gotta be something im doing wrong but I don't see it.
Re: rich cattell auto calibration
January 22, 2017 09:16AM
Here you go.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Attachments:
open | download - Configuration.h (25.9 KB)
open | download - Configuration_adv.h (17.3 KB)
Sorry, only registered users may post in this forum.

Click here to login