Hello Everyone. For a while, I have been facing some issues with my first layer height being always too far away from the bed. Even after leveling properly leveling bed it will always about 3mm away from the bed, which did not allow my prints to stick at all to the bed. Today I have finally found the solution to this issue. First, be sure that your bed is leveled properly, or if you use auto bed leveling that your probe is calibrated properly and it’s Z offset will make your nozzle be a sheet of paper away from the bed. If you are still having issues with it your nozzle being too far from the bed, here it’s how I solved that problem:
I recently started building a Hypercube 3D printer by tech2c, which I call the Megacube because it has a 300×200 bed. So, after testing that everything worked and calibrating my inductive sensor (You know calibrating it’s offset and so on) and I made a print, which in this case was a Bulbasaur from pokemon and it stuck properly to the bed. I go to sleep, come back in the morning and for the life of me I could not get any of my prints to stick to the bed. The nozzle always started printing at about 3mm away from the bed, which was way too far for anything to stick. I knew it was not my slicer settings (In this case Cura) because I did not change anything that would deal with Z heights or layers.
I kept poking around and I found that nothing I changed in the slicer changed anything at all, so I went to the firmware and started poking there. I am using Marlin so I went straight for the “config.h” file. In there I realized that there was actually something that I changed before going to sleep that was causing issues. It was the line:
#define MIN_SOFTWARE_ENDSTOPS
Which I had unncommented before while I was doing some tests with my inductive probe, when I commented it out:
//#define MIN_SOFTWARE_ENDSTOPS
It ended up solving the issue and giving me the proper distance from the bed every time I started a print. After that, every other print stuck to the bed for me. Note that in some older versions of Marlin, this option can’t be commented, this is because you need basically tell it whether you want or you don’t want to use this function of the firmware by typing “true” or “false” after “#define MIN_SOFTWARE_ENDSTOPS”.