3D Printer Bed Center Calibration


If you noticed that with large prints part of the skirt or brims sometimes was printed outside the heat bed print area. Apparently, the printer does not have the correct heat bed center in the firmware.

To correct this there is a helpful thing in Thingiverse that this thing helps you to find the center of the bed and aids in changing the bed center to the actual bed center. Instructions are provided below for you to change your center.

Warning: This thing and correction works with Marlin based firmwares. See supported firmware list below. Anet stock firmware is not supported. Upgrading with the Marlin necessary. This calibration method is not applicable for Delta printers.

https://www.thingiverse.com/thing:2280529

Before downloading this thing lets go in customizer and create the customized STL file according to your bed size. For example for Anet A8 selecting 200x200mm good choice as its bed size is 220x220mm. Set 20mm lower value than your actual bed size to see corner difference.  

 

Print the STL file and check that the printed frame is the same distance from edge of the bed. If not you need the fix the X and Y values in firmware.

To measure in the X direction; the distance from the outer squares to the edge of the heated bed and subtract the 2 values and divide them by 2. (First measure left, then right side)

In our example case this led to (5-35)/2 = -5 mm

To measure in the Y direction; the distance from the outer squares to the edge of the heated bed and subtract the 2 values and divide them by 2. (First measure front, then rear side)

In our example case this led to (22-18)/2 = 2 mm

Method-1

Connect your 3D printer to the computer and open a printer terminal screen and send following g-code. 

M206 X-5 Y2

The values specified are added to the endstop position when the axes are referenced, so this tells the printer that the center of the printer is located at the given values with respect to the stored values in the configuration file. To store the new center into eprom send following g-code.

M500

Method-2 (Best solution)

If you can able to update the Marlin firmware configuration file (configuration.h) change following parameters and upload the firmware to the printer.

First, make sure you have the correct bed dimensions defined. (Around line 882)

We use Anet A8 again as an example here.

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

Then change the X_MIN_POS and Y_MIN_POS values (Around line 885)

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -33
#define Y_MIN_POS -10
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE

If  X_MIN_POS and Y_MIN_POS lines have numbers in your existing configuration file update those values using your measurement. In this example X_MIN_POS becomes -33-5 = -38  and Y_MIN_POS becomes -10+2 = -8. (If those values were already zero just put the measurement values.)

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -38
#define Y_MIN_POS -8
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE

Your 3D printer has set for a new center.