For this post I wanted to discuss one of the most important aspects of setting up a 3D printer: bed levelling. For those unfamiliar with what I mean, I’m referring to the act of ensuring that the print surface is perpendicular to the printer’s z-axis. Setting this as accurately as possible will ensure a consistent first layer, helping with its adhesion to the print surface and ensuring you don’t wind up with gaps where the first layer hasn’t filled.
After assembling the i3 MK2S kit I was confident that the bed was as level as I could realistically achieve by the physical adjustment of the frame. This was a good start, but finer adjustment was still required. This would have to be done within the printer’s firmware. The i3 MK2S does have an inbuilt “mesh bed levelling” program, where it uses the P.I.N.D.A. probe to pick up on 9 points across the bed and essentially calculate how far off from square the bed is. Using these measurements, it determines a compensation to apply to the gcode it is printing. As this program runs at the start of every print I can’t say exactly how much it’s helping to square up the bed. However, suffice it to say that after a few weeks of trials I’d established it wasn’t sufficient and I wanted to go further to improving the first layer quality.
Thankfully there is another level of adjustment possible in the firmware on the printer, known as “Bed Level Correction”. This allows you to input a z-axis offset ranging from -50µm to 50µm for the front, rear, left and right of the bed and it was adding in these additional offsets that I reached a point I was very happy with. The hardest part is obviously determining what those offsets should be. To do this I printed “Bed Level Correction Calibration Squares” by makeryo, which can be found here: www.thingiverse.com/thing:1776031. This prints 30x30mm squares at the centre, front, rear, left and right of the print bed that are only one layer thick:
I used the inbuilt “Live Adjust Z” feature on the printer to accurately set the z-axis height such that the square at the centre of the print bed was correct. After the print finished, I measured the thickness of each of the five squares using a digital micrometer. This allowed me to determine the difference in height between the centre and the front, rear, left and right of the bed, which is what I used as the offsets in the “Bed Level Correction” menu.
It took me three iterations to get to a point where I was really happy, but the time spent was a small price to pay as the quality of my first layer is now so much better.
A few closing thoughts:
I appreciate that not everyone has a digital micrometer lying around and they are expensive. I’ve seen posts online where people have used a similar method and just iteratively adjusted each of the bed level correction offsets but I can only imagine how long that must have taken. With a micrometer I went from slicing the file and switching the printer on to a fully levelled bed in about 90 minutes.
It was just by chance I happened to have white PLA loaded into the printer but if you’re going to attempt this I’d recommend you also use either white or at least a colour that’s easily visible on the print bed, especially if don’t plan on using a micrometer.
If you find you need to adjust the offsets by more than ±50µm it is possible to do it in the G80 line at the start of your gcode, which you can set up in your slicer. This will allow you to set adjustments of up to ±100µm. Bear in mind, however, that you can’t use both so if you’re changing your gcode remember to set the reset the values.