Automation to find H parameters for G30 commands in bed.g
-
Let me preface this by thanking all of those smart people involved with this controller, firmware and the tutorials for setting things up. In particular dc42 and mhackney! I've read pretty much everything you've written on your blogs and most of your related posts on this and the seemecnc forums. You might even call me a "groupie".
I'm still taking baby steps in getting my Rostock Max V2 converted over to the DuetWiFi and I'm obsessing over the delta auto-calibration. What a cool feature!! At a bed probe radius of 120mm, I'm getting 0.065mm deviation. At 140mm probe radius, I'm getting around 0.1mm deviation.
I know I need to use the H parameter in my G30 commands in the bed.g file because when I try to make the 200mm calibration circle print, the nozzle is either dragging or making a VERY thin extrusion layer. I just haven't had time to go through the process of finding the H values due to real life getting in the way.
I'm using FSRs and the JohnSL board for my bed probing, which works very well but I'm thinking that I can make it better by using the H parameters in the G30 commands from the bed.g file. It got me thinking about the process and how I would have to manually position the nozzle over each of the probe points to find the offsets following mhackney's procedure from his blog (http://sublimelayers.blogspot.com/2016/01/fsr-auto-calibration-setup-for-duet.html
In the dc42 firmware, David has built-in some very flexible probe height offset with the G30 H parameter. Basically, this allows you to correct for any offset differences at the probing points. Here's how you go about doing that:
Above each probe point (from the bed.g file) lower the nozzle using the paper grip test.
Send a G92 Z0.
Raise the nozzle 5mm.
Send G30 S-1 and write that down.
Read the trigger height (if you did the above from the web interface, read it there, otherwise read from the PanelDue console).
Repat 3 - 5 several times and average the results. I like to do 3 probes.
Repeat 1 - 6 for each probe point from the bed.g file.
Edit the G31 Z parameter in config.g to the trigger height you measured at the bed center: X = Y = 0.
In bed.g set the H parameter for for each of the probe points like this:H = (trigger height measured at the point) - (trigger height at the bed center)
The firmware feature idea would be: The firmware accepts an M command that does the initial homing and auto-calibrate, then brings the nozzle above each probe point and prompts the user to do the "paper grip test" on that probe point. This would obviously need to be a manual operation, but somehow (and I'm not exactly sure how), the firmware could prompt the user to identify the Z height for that point they want to use for the perfect paper grip level. The firmware would then use the current Z height and calculate the appropriate H value for that point, maybe even storing/updating it in the bed.g file? Then, the firmware would automatically raise the nozzle a bit and move to the next probe point and do the same thing, etc., etc.
Even betterโฆ maybe this could be a separate tab or window on the web control and/or PanelDue interface. It would have the appropriate buttons for starting the procedure, raising/lowering the nozzle, selecting which probe point to use, calculate the H value for a given point, etc. Essentially a bunch of macros mapped to buttons.
I know it's lazy of me to want this, but it would be really cool, facilitate the process and potentially avoid mistakes by users. I don't know if it's feasible but it never hurts to ask.
Cheers,
Todd -
I second this demand, as for miscellaneous reasons, I have done the calibration many, many times.
What I have done yet to help is making a macro for each sensing point. This macro go to the given point 0.5mm above 0, so P0 go to point 0 X, Y , Z=0.5, P1 go to P1 point X,Y, Z= 0.5, etc. This help a lot compared to the manual move to each point.