The October 10, V1.1.half dozen, release of Marlin contains significant changes to bed leveling. In particular, the new "Universal Bed Leveling" is FANTASTIC for any Kossel/Delta printers that do not already accept information technology.

I recently converted (upgraded?) an Anycubic Kossel Linear (not Plus) to Marlin 1.6.half-dozen and Machine Calibrate (G33) + UBL (G29)

I believe they may exist shipping with leveling now; I bought in Aug 2017 and my printer came from the factory with transmission bed leveling.  And manual calibration (rod length), which was a real pain.

3 basic steps:

i) Print a leveling probe. I used www.thingiverse.com/thing:1976680, which fits the Anycubic pretty well, plus a microswitch I already had.

On nearly every Ramps lath, plug this into Z-Min.

Note: Nigh endstops are wired "commonly closed" and near firmware expects them to be this way.  Cleaved wires will "open" that, and be a more obvious problem.

However, you probably want your probe to be plugged in when in use and unplugged when non.  I used Radio-Control servo extensions, because I had them already.  Whatever you use, consider wiring the Z-Probe micro switch to exist "normally open" so nothing will freak out when information technology is removed.  This also ways you must invert Z-Min in the firmware (the files I fastened below already have this).

Your choice, it can work either style.  I prefer unplugging and therefore went the "normally open up" route.


2) Upgrade your firmware. This is too variable per printer to describe hither. Just be sure you get on the Oct 10, V1.1.6, or later release of Marlin.

http://github.com/MarlinFirmware/Marlin

For Anycubic specifically, the firmware I received with the printer had mods to more than than simply configuration.h and configuration_adv.h… yet, I was able to use the new release and remove all of those mods, through a careful combination of things in the two config files.

Therefore, you tin can use all the Marlin files directly from github, and use my configuration.h and configuration_adv.h.

These will work perfectly for the Linear, not-plus. They may demand slight aligning for other flavors.


3) After the upgrade, use these commands to calibrate and level your printer:

Afterwards you've upgraded, anytime you want to level, do the following, via Pronterface, or the Terminal in Octoprint, or whatever.

These commands should work on nigh whatever Delta/Kossel printer running Marlin 1.1.half dozen.

M502        ;Loads all settings from configuration.h (not EEPROM) into retention. M851 Z-xviii.8 ;Distance from your nozzle to your microswitch on the probe.               ;To a higher place number is for MY printer... you volition have to effigy this out for yours.               ;Go alee and use an estimate, we'll correct it after the outset round of probing. M500        ;Write everything that we reset and set above, to EEPROM M501        ;Load from EEPROM (just to be sure) G28         ;Home the machine. G29 D       ;Disable bed leveling (so next control will exist 'clean')   ------ Physically Attach Your Probe ------ G33 P3      ;Machine Calibrate. This probes a bunch of places on the bed. Takes two to 4 minutes. M500        ;Write probe results to EEPROM.

At this indicate, the printer has figured out how "Tall" it is (max_z), figured out a few things about the bed, and figured out how to correct for the towers being slightly out of alignment (they ALWAYS are)… but we are not done.

Next step is to use "Universal Bed Leveling". The new, absurd, stuff.

AFTER you exercise the G33 stuff, everything in the code block  above,  exercise this:

 ------ Physically Attach Your Probe ------  G28        ; Home the machine.  G29 P1     ; Universal Bed Level. This will probe a bunch of places on the bed. Takes two to four minutes.  G29 P3     ; Calculate the remaining grid/matrix. Just do information technology.  G29 S1     ; Saves the resulting grid to EEPROM, in slot i G29 F ten.0 ; This "Fades out" the effects of Universal Bed Leveling, all gone at 10mm G29 A      ; Activate Universal Bed Leveling.  M500       ; Write everything we did above to EEPROM.

Now we are done! Remove the probe and impress.

By the way, a G26 prints a "Test Design" that is built into the firmware.  That pattern is intentionally very sensitive to Layer Zero thickness.

My printer produces the best Layer Zero prints it has E'er produced, afterward using the in a higher place. My printer holds calibration for several days; if I suspect it is off, I can rerun the to a higher place in about four to seven minutes total. And its gear up to become. And I did NOT touch those dang screws. (Anycubic owners volition become this.)

Can you tell I am really, truly, loving this?



Oh, and here is how to effigy out the M851 Z-eighteen.8 number:

1) Run everything, both parts, to a higher place. Employ a bigger number than is the actual distance between your probe microswitch and your nozzle. For my probe, I started with 23.

Exercise NOT PRINT after this, until nosotros get the existent number.


ii) Gradually work the head down to the build plate by issuing G1 commands, like this:

G1 Z10
G1 Z5
G1 Z3
G1 Z2.ix

Continue reducing the number while looking at the nozzle. Once it touches down (you can use the "paper drag test" if you wish") note the number. You may desire to heighten information technology, like G1 Z10, and lower information technology to your concluding nubmer a couple of times. Just to be sure.

Once you have that last number, subtract it from whatsoever "estimated, and too large" number you put in M851.

Instance: If your M851 Z-twenty, and your final command to touch down was G1 Z2.2, and then in the future you would use M851 Z-17.8.

Annotation that changing this (via LCD carte or M851 and M500) does nonchange anything until y'all re-run a G33 and G29. Fortunately, these are fast, about 8 minutes on my printer.