Richard from google groups requested this. So here we go.
Implementation of software endstop modification M666 (it is already pulled upstream) and implementation of G29 (single point probe) is here: [github.com]
Note: Also I used G29 as Johann's auto level, G29 in this branch of Marlin does not run Johann's auto level. It does single point probe. To use it efficiently, write scripts which send gcode to your printer:
* move to some point of interest just above the bed surface with G0 (G29 below tries to find surface at most 20 mm below this position),
* use G29 to probe Z height, and use M114 to get position after the probe,
* the returned Z height from M114 is 2 mm more than the surface height.
Use the measured data whatever way you want. We fed them to maxima for more processing. If you want to try it too let me know and I'll try to brush maxima notebook to be more readable. You must have some clue about math and maxima for this to be usefull to you: [maxima.sourceforge.net]
Implementation of software endstop modification M666 (it is already pulled upstream) and implementation of G29 (single point probe) is here: [github.com]
Note: Also I used G29 as Johann's auto level, G29 in this branch of Marlin does not run Johann's auto level. It does single point probe. To use it efficiently, write scripts which send gcode to your printer:
* move to some point of interest just above the bed surface with G0 (G29 below tries to find surface at most 20 mm below this position),
* use G29 to probe Z height, and use M114 to get position after the probe,
* the returned Z height from M114 is 2 mm more than the surface height.
Use the measured data whatever way you want. We fed them to maxima for more processing. If you want to try it too let me know and I'll try to brush maxima notebook to be more readable. You must have some clue about math and maxima for this to be usefull to you: [maxima.sourceforge.net]