IR Z-probing data analysis (spreadsheets!) August 28, 2015 07:33PM Registered: 7 years ago Posts: 280
For those who like data...
Trying to calibrate my bed with the duet electronics running a mini kossel with the dc42 IR probe attached. Everything here is cold.

I am trying to nail down where my quality issues are, so I am touching the nozzle to the glass to set the Z=0 point, then re-descending until the probe triggers and collect that Z offset. (to be precise, I sandwich a sheet of paper between the nozzle and glass until the bite is just enough to prevent dragging the paper without marking it.)

First establish a 'default' z-offset by measuring the vertical offset of the nozzle at the bed center from the probe's trigger point.
To measure tilt or other measurement deviations I probed 9 other spots.
I performed the same measurements with different bed finishes: 'glass', 'tape', and 'pva'. Glass is just clean surface of borosilicate glass. Tape is my brand of blue painter's tape. PVA is 50% mix of Elmer's glue and water, applied by fingertips.
I then repeated all of the above a second time, except for the PVA, which is a pain to put down and even more to take off.

Here is an example of turning dry tables of numbers into cool-looking graphs (most of the raw data is not shown):
(The error bars just use the standard deviation values of the repeatability table so don't jump down my throat!)

Here are my observations from these measurements:
1) The absolute height measured is dependent on the bed surface to a large degree. I will have to prepare a way to easily change the z-offset with material or surface changes assuming they are consistent. The translucent-swirly PVA finish may have a repeatability problem though. I need it for nylon filaments.
2) My system has no precision at all, worse than 0.1mm, ugh!. Just repeating the same probes on plain glass leads to a lot of differences: the RMS of the deviations is .07mm, WAY above the .01mm resolution I have been working with. I made some .01mm jog buttons to fine tune the measurements. I noticed a lot of .01mm jogs that went sideways and/or did not move up and down at all. Even some of the .05mm jogs didn't behave well. I could probably improve this with 0.9 deg motors and more motor current to make them stiffer, if possible.
3) There is clearly a position-dependent error (we will call it tilt) independent of the bed surface type. I would use this in the H parameter of the G30 command if the measurements were more consistent.
4)The repeatability of the tape is worse than the glass. This particular tape is darker and shinier than my other blue tapes and it sticks much harder to PLA, too much almost. Anyway, the second application of tape was laid down with strips at a different angle than the first. The tape finish is shiny-faceted, which could cause reflective-orientation problems. Less shiny tape would probably work better.

To-do:
Improve the precision! I have 0.9 motors waiting for the big-kossel project and I guess I need to put them in place on the mini. My motor currents are set to 1000 mA, maybe see how 1500mA runs. 0.9 motors will automatically have more torque to go with the precision so those won't need as much increase in motor current as the 1.8 deg motors do. Look for play in any of the mechanics, active or passive.

I hope this has been a useful exercise to watch, let me know if I didn't get something right.
thanks
 Re: IR Z-probing data analysis (spreadsheets!) August 29, 2015 02:52AM Registered: 8 years ago Posts: 14,616

The easiest way to measure the sensor trigger height is to set zero height using a piece of paper and G92 Z0, then raise the head to about 5mm, send G30 S-1 (which causes it to lower the head until the probe triggers, but not reset the Z=0 position), and read off the Z height. To see how reproducible it is, repeat the G1 Z5 and G30 S-1 cycle several times.

My delta has 0.9 deg/step motors, GT2 belts and 20t pulleys, so 160 microsteps/mm. This gives a Z resolution of 0.00625mm. I have the initial Z probing speed set at 500mm/min (M570 command). The reproducibility I get when probing the same spot repeatedly is +/- 0.01mm. So it looks like the probe is always stopping at one of 3 different microstep positions. My motors are JK42HM48-1684 rated at 1.68A, and I run them at 1000mA.

I haven't tried the sensor on blue painters's tape. I print PLA on plain glass at 65C or 70C indicated bed temperature. I usually wipe the glass with vinegar before printing, although for difficult prints and/or filaments I wipe it with sugar solution instead.

I've never tried turning the current as high as 1.5A on the Duet. I am fairly sure you will need to cool the Duet with a fan at those currents. I suggest you try 1.2A first.

If you are seeing jogs that don't move the head in the right direction, perhaps there is too much friction in your carriages or idler bearings, or the belts are too loose or too tight? When I was using 1.8deg/step motors, I didn't observe those problems, although I rarely used jogs of less than 0.05mm.

Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
 Re: IR Z-probing data analysis (spreadsheets!) August 29, 2015 03:47AM Registered: 7 years ago Posts: 280
Thanks for the feedback Dave.
I was randomly jogging the trigger point so I expect there would be more repeatability if I descended at the same rate. I want to try what you suggested with G30 S-1 but at different rates and positions. With z movements the position shouldn't matter because all the steppers are commanded the same movement. (I have motor steps set at 100 in the config file.)
Actually, it seems like trying to do .01 steps is a good way to find out what your system is really in control of since it allows small amounts of hysterisis to build up until they jump. Sometimes I would have the nozzle lightly touching the paper while I dragged it to gauge the amount of downforce and I would click the .01 jog button 5-7 times before the grip on the paper even changed! From what I have studied elsewhere this is not uncommon behavior for microstepping because the torque change between steps is so small. I have surveyed my construction and there are no obvious sources of play..small frictions are harder to flush out.

For better repeat measurements/motion, probing more consistently should give better results but it also seems like it masks the system's true behavior. And since printing motions can never be forced into standard moves...

I already discovered with the extruder motor that 1500mA makes for a too hot driver chip.

As for establishing practical bed finishes I feel like I am fighting tradeoffs: ABS warps too easily for any finish (I use hairspray), PLA sticks to warm glass but I found it harder to manage the cooling with so much internal heat remaining so I have stayed with blue tape. I only have a general 4" fan blowing on the bed for cooling, nothing suspended from the effector or to focus the air stream, yet.
Nylon seems to require PVA, or so the Taulman site indicates. Another option would be great because PVA is difficult and messy and I don't think compatible with the IR probe unless a way was found to put it down in a very controlled thickness, and then touch-ups become a problem.
What material is vinegar or sugar supposed to be good for? I have seen no reference to them elsewhere. I have a big bag of citric acid powder that might come in handy.
 Re: IR Z-probing data analysis (spreadsheets!) August 29, 2015 04:10AM Registered: 8 years ago Posts: 14,616
Vinegar, sugar and similar water-based solutions (including beer I am told) on warm glass are good for PLA. Warm glass alone is often not sufficient to get good first layer adhesion, depending on the filament.

To prevent ABS warping, you need a warm enclosure. I found 2 plastic bags placed over my delta sufficient, with the filament, extruder drive and electronics remaining outside. The heat from the bed was sufficient, I didn't need an extra heater. I haven't tried printing with Nylon yet, but I've seen mention of printing it on Tufnol sheet.

Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
 Re: IR Z-probing data analysis (spreadsheets!) August 30, 2015 01:18AM Registered: 7 years ago Posts: 280
After a lot of head-scratching I suddenly realized a great solution: removable shelf-liner/contact paper.
You can get it anywhere, it works great, doesn't peel off the PVA, nice finish for the optics. Mine is light grey, satin finish. I can just subtract the thickness.
Being vinyl, it gets fairly soft and stretchy on a 65 deg bed but it didn't melt down or pull off the PVA.

That said, a 110 deg bed is likely too hot, although I can just use hairspray for that (ABS). I need to test the reflectivity of my hairspray though.
Also, plastic traps air-bubbles that I have to rub out around the probe points.
A sheet of paper with removable adhesive would be better because it is less prone to trapping bubbles.

I also found my repeatability on the center spot varied in a .05mm range. I tightened the belts (even more :/) and now I get +/- 0.00 repeatability. After homing it shifted by .01 but didn't change after that.

Auto-cal is returning figures like .015 deviation, which is great, and it stays that way when I do a just-report macro.
I am, however, back to running on very low settings. I will report later on how it responds when I start jacking up the performance again.

Finally, I have used your double-bag trick several times in the past and it definitely helps the ABS warping but it doesn't stop it, especially with thick parts (and it obscures the view). I do plan on doing the heated enclosure on the big kossel but not worth it on the mini since it will be cannibalized for the big kossel.
I've been able to get machine-flat parts printing PVA cold! I'm making parts for the big kossel and they have to be pristine (effector and carriages).

Thanks for the help!

Edited 4 time(s). Last edit at 08/30/2015 01:30AM by shadowphile.
 Re: IR Z-probing data analysis (spreadsheets!) August 30, 2015 09:25PM Registered: 7 years ago Posts: 280
Dave, I used your suggestion of G1 Z5 then G30 S-1 to get a consistent read of the probe-trigger height, but the same spreadsheet statistics didn't get much better. Then I realized I still have the same problem to manually determine when the nozzle is just touching the paper, which is harder to fix but possible with a certain tedious sequence of motions. What to do...

I noticed a subtle but important factor today while jogging the z-axis by hand.
When I do .01 or even .05 jogs, sometimes it seems to make a strong click and sometimes, like when I am touching the paper, I can jog down .01 a whole bunch of times without dragging the paper under the nozzle feeling any different; this is also when I hear almost no each clicking. I've been assuming that tiny jogs just reveal hysteresis caused by small amounts of stiction.

But if I move the probe off the bed and just keep jogging down by .01 steps, the motor clicks cycle from silent to hard to silent endlessly. Then I had an AHA and counted the number of clicks each cycle and it is 16, so what I am observing is the micro-stepping, not friction. Apparently the torque varies considerably with the location of the micro-step between two poles. (stepper-motor experts are probably saying 'duh!')

I turned the current up to 1500mA and without a lot of action the drivers are staying cool.
The 16-step cycle now has a small bump of clicks around the 8-step point but it is still not even. Nevertheless, I seem to be able to jog back and forth by .01 without hysteresis. (ie at .03 the paper just drags under the nozzle with a certain amount friction, then jog to .02 and the paper is solidly clamped. Back to .03 and then it returns to the same amount of drag, etc. I was fighting previously to 'judge' when the nozzle was touching the paper because it wasn't consistent.

This all just tells me MORE CURRENT (and/or 0.9 motors) if I want my machine precision to approach its resolution. I am one-step closer to making small precision parts with my .25mm nozzle. I'm sure other factors will arise, like whether the moon is waxing or waning...

Well that was a satisfying little session

Edited 1 time(s). Last edit at 08/30/2015 09:28PM by shadowphile.
 Re: IR Z-probing data analysis (spreadsheets!) August 31, 2015 03:17AM Registered: 8 years ago Posts: 14,616
That's right, microsteps are not even, especially at low motor currents. I haven't attempted to set the Z=0 height on my machine to the nearest microstep, I would have difficulty judging just how tightly the nozzle was gripping the paper anyway. I am content to set it to the nearest 0.025mm, which is 4 microsteps on my machine.

I am pleasantly surprised that the drivers on your Duet are staying cool at 1.5A. However, if you are using 1.68A motors, you will probably find they are running quite warm, and you may wish to reduce the current to about 1.4A. The heat generated in the motors is proportional to the square of the current.

Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
 Re: IR Z-probing data analysis (spreadsheets!) September 01, 2015 03:28AM Registered: 7 years ago Posts: 280
I just installed the 0.9 motors and they are noticeably smoother and quieter. Micro-jogging has no noticable aliasing either. I can clamp and unclamp a sheet of foil with a single .01 step, which is pretty darn nice!. I paid \$57 for the three from MatterHackers and they are actually longer than the 1.8s they replaced.
Why is anybody still using 1.8s? Oh, right..RAMPS.
I am looking forward to new data for my spreadsheet.

BTW, I don't think there was any real test at 1500 mA motor currents because I never got to test a full load.
I ran a filament-less gcode file and the drivers got uncomfortably hot above 1000mA. Although, just putting my finger on the IC changes its thermal resistance so it is hard to judge how hot the junction is actually getting.

Do you think Dave that it would be ok if I cranked it up until the thermal shutdown kicks in to find the upper current limit?
 Re: IR Z-probing data analysis (spreadsheets!) September 01, 2015 04:32AM Registered: 8 years ago Posts: 14,616