AutolevellerAE (Advanced Edition) – This is the main and most active project to date. The code is quite different to the original Autoleveller whilst achieving the same goal. Essentially there are 3 main functions to this.
- Add a probing/Mesh routine to the start of a GCode file and record the results of each probe
- Segment lines in the GCode job so that levelling can be performed at regular intervals
- Level each segment using bi-linear interpolation using the recorded probe results from step 1
This allows the Z depth to adjust itself during the etching process, leading to a more consistent and accurate result.
You can download this open-source project and make the changes that you need. The javadoc’d methods and classes are designed to make the code as explanatory as possible but feel free to ask me anything about the code.
AutoLeveller – The source code for the AutoLeveller project is written in Java and is fully open-source. Please feel free to download the source code and modify as you wish from its Bitbucket repository. AutoLeveller first probes the surface in a rectangular grid array and each time it touches the surface, the current Z value is recorded. Now for any x y coordinate in the GCode file there are 4 known Z values around it. With those known values we use a bilinear interpolation technique to get the most appropriate Z value for that x y point. For longer segments in the given GCode, they need to be, and are first broken down into smaller segments to allow the height to be adjusted more often, thus improving accuracy.