G30 inductive probe auto nozzle height calibration
-
Phaedrux I think after a bit more testing the first layer accuracy will be better than +-10um and diminishing returns kick in. The Creality textured glass bed surface has 6um deep holes for first layer grip so…
Hi fcwilt yea it’s not perfect but its reasonably matched to the task. The inductive probe I’m using is the 8mm trigger distance model with an M18x1 threaded body however under the probe I have a 7mm steel ball bearing that physically touches the probed surface. Using averaging the RMS error is 0.003mm powered from the 24V 22A printer supply. It has occurred to me that some power supply electrical noise filtering would improve the trigger stability (another plan B).
I was hoping that you or Phaedrux might know of a software switch so I could merge the homez gcode into homeall.g Not a deal breaker just aesthetics.
For the curious: The step is flipped and printed on its side and the probed surfaces are printed as walls so they can be smooth and have any height difference. Secondly tilt the upper step slightly from the front edge to the back edge so the tilted step probing position provides fine height tweaking of the nozzle offset after the step is printed. Lastly in a heated chamber the filament used needs to have a high service temperature like ABS or something better.
-Peter -
I think I understand the root cause of my G30 issue and the fix is above my pay grade.
I called the homez.g code (above) from homeall.g
The homing behavior was the same, did not work, but I could make small testing changes and think I found the issue.The top step Z height after a G30 S-3 becomes the new Z height starting/retraction reference height for any future G30 probing.
After nozzle offset calibration a G1 Zxxx still can put the nozzle on the bed surface or alternately the probe just above the trigger height, however a G30 raises the probe up away from the bed (the Z probing direction is reversed).
On the other hand, if a G1 lifts Z above the top step height prior to G30, it probes down but it stopped before the probe trigger event.In config.g I increased H in the line M558 P4 H3 A3 S-1 F50 T600
With the altered M558 the probe actually homes the bed correctly with a G30 after the nozzle offset calibration routine (homez.g above). The downside is the probing time is so much longer with the 6mm of slow velocity Z probe movement required to trigger the probe on the bed surface that I will probably not use this fix.
Cheers -Peter
-
Hi,
I've read over everything you have posted and I simply am unable to understand what it is you are trying to do.
Can you explain in simple terms what your goal is?
Frederick
-
Hi Frederick, this is all about heated chambers and printing the first layer thickness correctly. Before I made a chamber, this was never a problem.
The inductive probe trigger distance has great short-term accuracy but it drifts with temperature and in a heated chamber this becomes a pain in the ass. I wiggle paper under the nozzle like everyone but only when I change nozzles.
My previous heated chamber procedure for starting a print was watching the skirt print then canceling the print. Next I remove the skirt, measure the thickness and correct the nozzle Z offset in config.g G31, save, reboot, and now I am ready to print. I watch the skirt and a perimeter extrude before I walk away. I wanted to automate the nozzle Z offset in config.g G31 over all heated chamber conditions.
If you print a block with a height equal to the nozzle Z offset the printed block can be used as a calibration surrogate object. Probe the bed with G30, move the probe over the top of the block and probe the top with G30 S-3 and the difference from the bottom to top of the block is loaded as the new nozzle Z offset value. The block on the heated build surface is a poor position, it will soften plus it needs to be removed by hand before the start of printing. Locating the block off the build surface became the problem. I printed the block attached to a surface that I called a step as in people walking up stairs and bolted the print to the vertical 2040 extrusion. The step height difference is the nozzle offset surrogate block height. In homeall the first G30 zeros Z on the lower step before the step height difference can be measured with a G30 S-3. The next and last G30 probe command was to change the Z zero reference from the step to the center of the bed.
-Peter -
@Peter120 said in G30 inductive probe auto nozzle height calibration:
If you print a block with a height equal to the nozzle Z offset the printed block can be used as a calibration surrogate object. Probe the bed with G30, move the probe over the top of the block and probe the top with G30 S-3 and the difference from the bottom to top of the block is loaded as the new nozzle Z offset value
Well since the size of that block is a constant how does measuring it differ from just using the constant as the Z probe trigger height?
I don't think you can use the Z probe as a measurement tool to calibrate itself.
Any variations in trigger height are going to apply to both the G30 and the G30 S-3.
Or am I missing something?
Frederick
-
Frederick there is one more complicating bit that I am testing, conceptually a playground style seesaw for the nozzle and probe. The nozzle pushes down on the seesaw using G30 which raises the opposite end of the seesaw until the probe triggers. The seesaw hinge point is the G30 S-3 probing location. The hinge location is 1/3 from the nozzle for a mechanical height advantage of 2 under the probe.
Cheers -Peter
-
There is one approach that is sure to work.
Step 1 - Find a way to position the nozzle so it is known distance away from the bed
Step 2 - Issue a G92 Znnn to set the Z position
Step 3 - Issue a G30 S-3
Of course step 1 is the tricky part.
Some folks have used the nozzle as one contact of a "switch".
The other contact is a piece of metal of a known thickness somewhere on the bed that can be reached by the nozzle.
You naturally have to have a wire running from the nozzle and the piece of metal back to the board using a suitable input as an endstop sensor such that when the nozzle touches the metal piece it completes the circuit.
After positioning the nozzle over the metal piece you issue a G91 G1 H1 Z-aaa Fbbb where aaa is a distance sufficient to have the nozzle reach the metal piece and bbb is a speed slow enough to be safe.
Once the move is complete you issue a G92 Znnn where nnn is the thickness of the metal piece.
Now the G30 S-3 will be about as accurate as it can be.
Frederick
-
Frederick thanks for the info. It ain't over till the fat lady sings.
I am continuing to test the seesaw and surrogate offset combo. Mathematically I believe this compensates for 2/3 of the nozzle to bed height change caused by the probe trigger distance varying with temperature. Until there is a way of multiplying the results of probing my approach just can’t achieve 100% compensation. But honestly my first print layer is typically 0.3mm and the resulting skirts are measuring 0.23-0.32mm which is about how flat my glass bed is.
Cheers -Peter
-
Some testing observations:
Any plastic protruding down or oozing from the nozzle creates an uncompensated offset error which increases the first layer filament thickness. I clean my nozzle tip manually so currently this it’s not very automatic process.
My next seesaw will have something like a rusty hinge or actually a friction clutch. The evolving idea is the seesaw seat under the probe is pushed up, by the nozzle pushing down on the opposite end seat. The probe triggering halts Z and establishes Z zero. Next the probe is lifted and shifted. The rusty hinge keeps the Z height seat difference set at the Z zero probe trigger. Lastly the nozzle pushing down point on the seesaw is probed. The resulting Z height is the difference between the probe trigger to the nozzle tip. The previous need for a printed calibration offset block is eliminated.
Cheers -Peter -
After lots of testing I am finally ok with this version.
Turns out the seesaw concept is amazingly accurate for measuring the nozzle tip to probe height offset. The resulting measurement produces single digit micron errors. While this level of accuracy is overkill; all elephant foot is gone.I used a ¼”-28tpi hex bolt and with a hack saw converted it into a T-bolt. The friction (rotation brake) results from ball bearing preload. Two belleville washers (cupped spring washers) axially squeeze the inner bearing races together as the nut is tightened which increases the braking force. The nut also secures the T-bolt to the 2040 extrusion. An aluminum pipe is used as a spacer between the 2040 extrusion and the belleville washer.
The seesaw "board" is bent to lower the T-bolt mounting position on the 2040 extrusion.
A paper clip was formed into a ramp that resets the seesaw height for the next offset probing cycle whenever the Y axis is homed.
For cleaning plastic from the nozzle tip, I used a 614 foil from an old Braun shaver (it didn’t have any big holes when I started). This is effective for cleaning plastic from a HOT nozzle tip over a few mm of Z height but it is not fully finished.
Some parts for a previous design that were not used.
Cheers -Peter