Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  

Upgrade Possibility? : Semi-automatic bed leveler?

Recommended Posts

Have someone maybe thought about having a distance measurement tool hooked up to the arduino making a script to run to the 3 - 4 points of adjusting and blink a light when you have adjusted the height "perfect"?

So when you level it and hit that perfect point it lights up and you do the next? This way you get a measurable feedback :p


Share this post

Link to post
Share on other sites

There is no need. The firmware has a mathematical leveling function. You just need a Z probe. Once the points are measured, marlin will mathematically adjust the coordinates so the part is printed level to the bed even when the head isn't level to the bed.

I have a magnetically mounted probe I use at the start at the start of a print.


Share this post

Link to post
Share on other sites


I've rebuild the firmware and got it all working.

G28 makes an calibration from the center.

G28 X0 Y0 Z0 makes an calibration from the X0 Y0.

This works flawlessly! Really amazing, ever how much i press on the bed it levels at 0,0mm above bed.

BUT - There is always a BUT!

G29 which is configured for 3x3 point leveling finds a difference on 0.24-0.34 on my leveling.

This is all good! After that i do G1 X0 Y0 and get to endstops again.

Now, after the G29 if i go Z0 it goes 3-4mm longer than the G28 command did! So its off by a few mm. Tried a lot of different setups and this have changed. Sometime its 3mm, some 5, some 4 some 3.5 (Checked by taking it down to Z5mm then go slowly down 0.1mm until its where "0" should be.

So the G29 calibration "fucks up" everything? Any idea?

Doing just a G28 gives a good calibration but that wont level it good all the way.


Share this post

Link to post
Share on other sites

I'm going from memory here but it is actually the reverse.

Any true homing of the Z axis will erase the leveling information with "true" meaning something like the G28 command. If you want to "virtually" home the printer, you need to use a move command like G1 Z0 to preserve the leveling data.

This also means you need to change the start/end gcode so that it doesn't perform a G28 on the z axis.

Also note that I *believe* that if the stepper drivers are put to sleep do to idle timeout, the leveling information is reset. Look through the firmware source for the vector used and find the places it is reset.

So the start sequence before you print should always be:

temp related codes, make sure the codes are such that the printer waits for the set temperature.



then G1s for the actual printing.

Using this sequence, you should find that the starting distance to the bed should be pretty consistent.

However, if it is too high or too low, you can adjust the offset between the probe and nozzle either by adjusting the values in the firmware, or if you have the ulticontroller there will be a subitem under the tune menu (I believe) that lets you change the Z offset. The M206 MAY also work for this but I've never tried it.


Share this post

Link to post
Share on other sites


I was up all night and fixed it. What I've done is make my own fork of Marlin. Because the original had a lot of compiling errors and a hard interface.


This one has:

G28 finds endstops in center.

G29 is upgraded with a enchanted G29 which does up to 3x3 check. ( http://3dprintboard.com/showthread.php?3105-Auto_Bed_Leveling-Enhanced-G29-command/page27%20)

G28 Z0 X0 is required before G29 to start at home position!

100k thermistor for hotbed,

1x hotend

Menu for changin the z-probe settings (height, servo positions e.t.c) (https://github.com/Bevaz/Marlin/tree/Auto_level_2.00)

Currently its not tested with the menu addon since its printed. The menu was fetched from



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 130 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!