Testing Resolution / accuracy , Your results wanted! Z Probe Results



  • @DjDemonD:

    Itching to have a go with the piezo probe but 3 hours left on current print, rest assured I will post some data very soon.

    great! i was hoping you would post your results!
    Thanks!

    ~Russ



  • I have got quite a lot of data collected using my test rig, but its made from the bones of a deceased i3 and it really isnt that precise. I built it to test modules when making them up rather than pin down the real accuracy/repeatability of the piezo system. That being said most runs show 10microns accuracy and 0.002 std deviation but I was using marlin and it will only read out to 2 decimal places. However my duetwifi equipped kossel XL should be up to the job of at least giving the system a fair result..



  • @Alexander:

    With my FSR's there is apparently a big difference between cold and hot.

    Guess the FSR's aren't very repeatable, but my first layers always look good lol.

    Thanks for your data! Ill add it to my workbook!

    Looks good though, we are talking 50um here so that's still quite good!

    I was allays wondering how well those work! now we know!!

    what board and steps are you using?

    what stranded layer height to you print at for your first layer?


    ( higher rez) http://open-source-energy.org/rwg42985/russ/Projects/3D%20printer/micro%20switch%20Z%20probe%20Data/Bed%20Probes%20accuracy%20others%20added.jpg
    Thanks!

    Keep em coming guys and gals!

    ~Russ



  • Duet Wifi, 160 steps/mm, 250mm round bed.
    First layer is usually .1 with .25 and .3 nozzles, .2 with .35 and .4 nozzles, .3 with .6 nozzle, and .4 with .8 nozzle.
    I use the .4 nozzle 90% of the time.



  • Been thinking about the Piezo when I try a cable drive extruder instead of the geared drive one I am using on the effector so that info will be nice to see. (I want my effector to go on a diet)



  • @Alexander:

    (I want my effector to go on a diet)

    yes, I'm with you!!

    I think that the micro switch is the most compact, Cheep, And Easy to use…

    I love the idea of the Piezo, the problem arises with price, not sure how much theses thing cost.

    what i dont like about the micro switch is that you have to move a lot to "release" it where the Piezo or even the FSR you dont really need to do that, so things can be mounted quite secure and still give you good readings.

    like i said in my video, i do not like the idea of ramming your nozzle in to the bed. but it's its really gentle, then cool!

    also, i wonder if mounting the FSR on the hotend rather than the Bed makes sense...

    David, can you post your results of your optical sensor with the above Micros please.

    Thanks!!

    ~Russ


  • administrators

    https://youtu.be/il9bNWn66BY

    If you have not seen this.



  • Fascinating video - thanks for the link Tony.



  • @Russ:

    @Alexander:

    (I want my effector to go on a diet)

    yes, I'm with you!!

    I think that the micro switch is the most compact, Cheep, And Easy to use…

    I love the idea of the Piezo, the problem arises with price, not sure how much theses thing cost.

    what i dont like about the micro switch is that you have to move a lot to "release" it where the Piezo or even the FSR you dont really need to do that, so things can be mounted quite secure and still give you good readings.

    like i said in my video, i do not like the idea of ramming your nozzle in to the bed. but it's its really gentle, then cool!

    also, i wonder if mounting the FSR on the hotend rather than the Bed makes sense...

    David, can you post your results of your optical sensor with the above Micros please.

    Thanks!!

    ~Russ

    Tony - shame that Thomas only tested quite a small range of sensor modalities.

    Hi Russ,

    I think I can answer some of your questions here:

    1. cost - very little for piezo, PCB is £10 assembled but you can make your own, Piezo disc 40p (that's for a fancy brand name one)
    2. It is very gentle, I have probed a set of scales and it takes around 15g of force, FSR's take around 50g, I used to use them.
    3. FSR's can be mounted in the hot end, but since there are none with holes in them, they have to be mounted one on either side of the hotend, which is much less direct, the hotend piezo probe as I have implemented it works so well as the force transmits directly up the hotend to where the piezo is.
    4. compliance in the sensor module, the eternal battle is between a unit with enough "give" to trigger clearly, above the mechanical noise of the belts, motors, bearings and movement of the carriages/axes, and a unit that is stiff enough that the nozzle is not wobbly. This is where the piezo I think wins hands down. It can be pre-tensioned inside a module, but further pressure on it generates a signal anyway. That way the module can be quite stiff and the nozzle firm. FSR's can only be pre-tensioned so far, then they won't give more signal after that. So I suspect an fsr hotend assembly will be a little wobbly. Print beds suspended on FSR's were always wobbly when I had them.
    5. PIezo discs are robust (and cheap to replace if you ever kill one - I have not so far after 4 months of testing them)


  • I am using thin film pressure sensor on the hotend which can only do cold leveling
    https://ae01.alicdn.com/kf/HTB1J7l3LpXXXXc3XFXXq6xXFXXXY/3D-printer-accessories-set-kit-thin-film-pressure-sensor-leveling-pressure-sensor-kossel-delta-leveling-baseplate.jpg_640x640.jpg

    M32 Probe_Testing_moving_100-100_probe_0-0_25_Point_p_values_.gcode
    Bed probe heights: -0.003 -0.015 -0.021 -0.021 -0.021 -0.028 -0.028 -0.021 -0.009 -0.003 -0.009 -0.015 -0.015 -0.009 -0.003 -0.009 -0.015 -0.015 -0.015 -0.021 -0.021 -0.015 -0.009 -0.009 -0.015, mean -0.015, deviation from mean 0.007

    M32 Probe_Testing_moving_100-100_probe_0-0_25_Point_p_values_.gcode
    Bed probe heights: -0.021 -0.034 -0.034 -0.021 -0.009 -0.009 -0.009 -0.015 -0.009 -0.003 -0.003 -0.009 -0.009 -0.015 -0.015 -0.009 -0.009 -0.009 -0.015 -0.015 -0.015 -0.015 -0.009 -0.003 -0.003, mean -0.013, deviation from mean 0.008

    M32 Probe_Testing_Single_Point_36_probes_P_values
    Bed probe heights: -0.028 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021 -0.021, mean -0.021, deviation from mean 0.001

    M32 Probe_Testing_Single_Point_36_probes_P_values
    Bed probe heights: -0.009 -0.009 -0.009 -0.015 -0.009 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015 -0.015, mean -0.014, deviation from mean 0.002

    I am also looking forward to the piezo sensors



  • I wonder what is the error threshold generated by this rig and if we really can be talking about micron repeatability using aparature that is not made of steel.

    I wonder if probing can have a greater impact on print precision on delta printers.
    We use tempered glass surface and probing just like in Fisher delta, the heat pushes the glass bed and disconnects circuit.
    The deviation is almost always between 0.009 - 0.03, we always use raft, which after good setup is really ok and prints are vey nice too.
    So the bed is not really flat because it's being tempered after cutting, the delta deflects a bit when probing and it probes on different height in every point.

    On the first printer I used to calibrate probing very precisely, check repeatability, add carefully tested H override value to each point in bed.g
    But since we test a dozen of deltas, every one with differently crooked surface and deflecting a bit differently due to some minor changes, I just copied config and bed.g files to the rest of the printers.

    The probing results are the same as in their very mother, carefully prepared.

    I wonder if probing on deltas is crucial due to first layer beauty or does it also affect overall dimensions of a print and can introduce dimensional errors?



  • My take on the issue of validity of results is the same as youtube Thomas' in that an aluminium bed should be used as a control, with direct electrical contact (the most accurate probe possible) between nozzle and bed. That should be as accurate as your mechanics/electrics/electronics and firmware (your printer/rig in short) can manage.

    Then stick your probe on there and do it again, now you have the measure of your probe. Otherwise you are measuring your printer/probe at the same time and some printers/rigs are more accurate than others.

    My test rig is not great for accuracy testing as I said above, but it is great for making sure a newly made piezo module can do 1000 probes reliably and not breakdown mechanically or electrically. A really scientific rig, which I'd love to build, would have linear guides, ball screws, be made of thick aluminium with bracing etc… and be run from a 1/256 microstepping motor/controller.

    And yes probing is more of an issue on a delta. But only because manually calibrating one is tedious and time consuming and the awesomeness of delta autocal is available to us with RRF, to use it we need the best probe we can muster. On a cartesian or corexy, if the bed is truly mechanically level and flat you just need 3 endstops and off you go. This is an age old (for 3d printing anyway) debate between those of us with super high precision machines with all metal build (or deltas as they need more calibrating) and those with slightly less perfect machines which benefit from auto/grid levelling.



  • It could be the best to use aluminium bed and the nozzle - bed contact method to make a dead flat calibration for reference, then swap the bed for the one to actually print on and manually adjust the nozzle offset with babystepping (I totally adore babystepping and it's persistency !)
    Then the probing would be more precise and delta calibration better.
    I'd give it a go but have to write down some testing procedure just to be sure what to look for.

    Even Stratasys machines use plastic bed which is all but flat and level then they melt in the first layer of raft following by two more.
    As soon as delta geometry is correctly measured, this way of laying down first layer is fool proof and easier on final user.

    I'm not sure if it's not a thread hijack I do here, perhaps it should be in another thread.



  • Separating probe accuracy from printer build accuracy is tough to do. On my delta I'm fighting a mechanical issue right now which makes any sort of probe repeatability tests futile, as it quickly falls into the noise of the printer itself (I have a bearing or something that's gone out, makes a grinding noise during some moves, but for the life of me I can't track it down yet)

    In addition, if you're probing two points at any distance apart, then you're actually adding your current calibration accuracy into the probe data, since you're really comparing against the currently calculated plane.



  • If Russ doesn't mind a discussion here about how to test probes (since it is pertinent to his project) then lets continue otherwise yes lets make a new thread.

    DuetUser yes adding an aluminium bed surface to do a sample probing on is valid, but as kraegar said only if you are probing over and over at bed centre, for example, since calibration will affect accuracy of your result if moving around the bed. Since calibration accuracy (for deltas) is determined by probe accuracy in part then it can become a difficult loop to break out of. I can see the effect in my calibration deviation from one probe to the next on my kossel XL but its got linear rails, 0.9 deg motors, 16t pulleys, duetwifi and 6mm tooling plate for a bed (with printbite bonded evenly on top). It should be a quite precise platform to test probes on, but its also my main printer so I built a rough and ready rig to free my main machine up to print client parts.

    So I'd propose as a "scientific" test, probe 30 times onto aluminium, electrically with a pullup enabled for z_probe, and the aluminium and nozzle connected to GND and Signal on the probe connector. Make sure there is no voltage from anything else on the hot end first, to avoid any damage to the controller though their shouldn't be. That's your baseline. It should produce very low numbers.

    Now install your probe and do another 30. Your range and standard deviation here will be higher but if you subtract the first set of values from the second, you have your probe's accuracy and repeatability measured minus the inherent accuracy of your setup.



  • @DjDemonD:

    If Russ doesn't mind a discussion here about how to test probes (since it is pertinent to his project) then lets continue otherwise yes lets make a new thread.

    DuetUser yes adding an aluminium bed surface to do a sample probing on is valid, but as kraegar said only if you are probing over and over at bed centre, for example, since calibration will affect accuracy of your result if moving around the bed. Since calibration accuracy (for deltas) is determined by probe accuracy in part then it can become a difficult loop to break out of. I can see the effect in my calibration deviation from one probe to the next on my kossel XL but its got linear rails, 0.9 deg motors, 16t pulleys, duetwifi and 6mm tooling plate for a bed (with printbite bonded evenly on top). It should be a quite precise platform to test probes on, but its also my main printer so I built a rough and ready rig to free my main machine up to print client parts.

    So I'd propose as a "scientific" test, probe 30 times onto aluminium, electrically with a pullup enabled for z_probe, and the aluminium and nozzle connected to GND and Signal on the probe connector. Make sure there is no voltage from anything else on the hot end first, to avoid any damage to the controller though their shouldn't be. That's your baseline. It should produce very low numbers.

    Now install your probe and do another 30. Your range and standard deviation here will be higher but if you subtract the first set of values from the second, you have your probe's accuracy and repeatability measured minus the inherent accuracy of your setup.

    ill let you hijack this thread but only if you run my macros and give me your results..

    hehehe!!! ( I run my own forums so i sure know how this hijacking can happen 🙂 (http://open-source-energy.org/)

    so here's the thing. I'm not looking for the best of the best, I'm looking to find out what people are using and how accurate there probe + printer is…

    If you watch my video at the top of this thread i go in to talking about tom's video and how he did it and what i wanted different Ect.

    so yes, we can test probes like Tom did and do it even better as you mentioned DjDemonD. however i think that's not necessary. Tom did a good job with the exception of Davids optical senor (any one got one please test it!!)

    we are looking at 2 things here,
    1. using a contact to contact test ( I did not do this in my video but did do this after and posted the results)
    This test will give you your current configuration base line for your printer its self.
    2. Test your Z probe like you normally use it. this value will be a +/- of what your contact contact test was.

    From my tests it seems that trying to achieve a contact contact Z probe is silly. most of us do not print directly on an AL bed. I use to use glass and still do but the PEI works the Treat! so all my tests show that most of the micro switches I tested are about 2x the error of my printer any how. and at .003mm that's not much to worry about...

    my problem is that I'm using my delta to CNC and so i need something that i can be used in more than just the printing.

    OK, now do post some more Z probe values!!! i'm quite interested to just see what everyone is probing at!! ( i want to build a small database of tests. so do post them!)

    ~Russ



  • @Jackal:

    I am using thin film pressure sensor on the hotend which can only do cold leveling
    https://ae01.alicdn.com/kf/HTB1J7l3LpXXXXc3XFXXq6xXFXXXY/3D-printer-accessories-set-kit-thin-film-pressure-sensor-leveling-pressure-sensor-kossel-delta-leveling-baseplate.jpg_640x640.jpg

    I am also looking forward to the piezo sensors

    Jackal,

    your data added to the workbook.

    Higher rez http://open-source-energy.org/rwg42985/russ/Projects/3D%20printer/micro%20switch%20Z%20probe%20Data/Bed%20Probes%20accuracy%20others%20added.jpg

    can you give me a few more details like motor steps and the Duet Board your using?

    also, do you have any photos / drawings of your setup? It seems that your getting quite a good result. so that answers my question on how a SFR will do on the hotend.

    but how you have it set up is also important. so the more details the better 🙂

    It also seems that your single point is way more accurate than when you move around first. Theses are the kinda results i would expect if your parameters change when things slightly shift. and it makes sense. if your looking at force, and your hot-end shifts even slightly, then the force will change. and that's why your results better with a single probe no move.

    This is where a solid setup is needed. However even with that, its VERY good.

    total deviation from mean 25 move
    7.46 um

    total max / min 25 move
    28 um

    total deviation from mean single point only
    1.79 um

    total max / min single point only
    10.5 um

    ~Russ



  • @kraegar:

    Separating probe accuracy from printer build accuracy is tough to do. On my delta I'm fighting a mechanical issue right now which makes any sort of probe repeatability tests futile, as it quickly falls into the noise of the printer itself (I have a bearing or something that's gone out, makes a grinding noise during some moves, but for the life of me I can't track it down yet)

    In addition, if you're probing two points at any distance apart, then you're actually adding your current calibration accuracy into the probe data, since you're really comparing against the currently calculated plane.

    This is correct. this is why i wanted only a single point. even when moving around the point is still 0,0

    do you have a motor bearing bearing out? take off the tension and wiggle the shaft… or turn it and see if you hear and noises??

    even with your error, can you run the tests, just for fun then again after you find the problem. just to see if it even changed anything?

    I will not add the data till after you find the problem, but just for fun sounds interesting to see how much it is effecting your setup ?

    ~Russ



  • Kossel XL Duetwifi, tooling plate, 0.9 degree motors, 16t pulleys, 1/16 stepping with interpolation
    Bed Temp 75, hot end temp 130 (to ensure no filament at the nozzle affects results)
    Using Lykle design 64mm magnetic effector with 27mm "hole drilled" piezo disc, 3 rods, 3 screws support.

    I could not run this at full speed, piezo requires the probing itself to happen very smoothly so I run

    ;slow down movement to improve accuracy of probing, and lower motor current in case of incident
    M906 X500 Y500 Z500 E800 I60		; Set low motor currents (mA) and increase idle current to 60%
    M201 X250 Y250 Z250 E1000		; Accelerations (mm/s^2)
    M203 X15000 Y15000 Z15000 E3600		; Maximum speeds (mm/min)
    M566 X100 Y100 Z100 E1200		; Maximum instant speed changes mm/minute
    

    Before probing and did the 4 runs at 60 % speed. Piezo is accurate not fast, this is due to mechanical noise and vibration which will cause false triggers if its too great.

    Okay so 100 to -100 test run 1:
    Bed probe heights: 0.002 0.002 0.002 0.002 -0.003 -0.003 -0.003 -0.003 -0.008 0.002 0.002 -0.003 -0.008 -0.008 -0.003 -0.008 -0.013 -0.003 -0.008 -0.008 -0.008 -0.008 -0.008 -0.008 -0.013, mean -0.004, deviation from mean 0.005
    Run 2:
    Bed probe heights: -0.013 -0.008 -0.013 -0.013 -0.013 -0.013 -0.013 -0.018 -0.023 -0.018 -0.013 -0.018 -0.018 -0.023 -0.013 -0.023 -0.018 -0.018 -0.013 -0.013 -0.018 -0.023 -0.018 -0.018 -0.018, mean -0.016, deviation from mean 0.004

    Single point probe run 1:
    Bed probe heights: -0.018 -0.013 -0.018 -0.013 -0.018 -0.013 -0.018 -0.018 -0.018 -0.018 -0.018 -0.013 -0.018 -0.018 -0.018 -0.018 -0.023 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.023 -0.018 -0.023 -0.018 -0.018 -0.018 -0.023 -0.018, mean -0.018, deviation from mean 0.002
    Run 2:
    Bed probe heights: -0.018 -0.023 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.023 -0.018 -0.023 -0.018 -0.023 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.023 -0.018 -0.023 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.018 -0.023, mean -0.019, deviation from mean 0.002

    Please be careful with the 100 to -100 test if you are not using a delta!! I am, but just saying 🙂

    Since the values above appear to be microsteps limited I also tried a run at 1/256 of the single probe test:
    Bed probe heights: -0.034 -0.026 -0.021 -0.024 -0.022 -0.020 -0.023 -0.022 -0.024 -0.022 -0.020 -0.021 -0.018 -0.020 -0.021 -0.016 -0.019 -0.018 -0.016 -0.017 -0.020 -0.016 -0.017 -0.020 -0.018 -0.018 -0.020 -0.017 -0.016 -0.018 -0.016 -0.017 -0.018 -0.015 -0.016 -0.014, mean -0.019, deviation from mean 0.004

    Interestingly probably a more accurate test I wonder if using 1/16th and interpolating is essentially smoothing the result but please add them I think piezo has proved its worth.



  • I will try to find the time to do an electrical contact test on this printer for a baseline. Plus looking at the data for microswitches, of which some did very well, the issue here is you are deploying them by servo, in the real world? So how do they do on repeatability from one run to the next? This is the reason I love piezo, its permanently mounted. If you attach a microswitch to probe then remove it afterwards, how repeatable is that between runs?

    Maybe add a third test probe, home, probe, home etc…


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.