Bed Center Calibration Tutorial (using parametric crosshairs with square)

by 0scar, published

Bed Center Calibration Tutorial (using parametric crosshairs with square) by 0scar Apr 28, 2017


Design Tools

Fusion 360 OpenSCAD

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

26627Views 5515Downloads Found in 3D Printing Tests


NEW! Parametric design added! The tutorial is updated with a new parametric OpenSCAD model which can be used (e.g. using the Customizer app) to fit your own heat bed/build plate. The parameters of the model are self explanatory; please note that the tolerance is merely used for ecstatic purposes (rendering glitches), so please do not change that one. The old STL files have been removed and some examples introduced as the old ones did not slice perfectly in Cura (they did go well in Slic3r though...). Please make your own center calibration STL by tuning it exactly to your printer setup.

What! Not in the center?
I noticed that with large prints part of my 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.

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.

Supported firmware
Note that this works for e.g. Marlin based firmware, e.g. Skynet3D! More firmware types are supported, see this page.

Note for unsupported firmware
For stock Anet boards (or if you cannot or do not want to mess with gcode) you can make this also work by printing spacers or custom end stop mounts.


Printer center seems to have an off-set?

With the stock firmware (a customized older version of Repetier) I have not tried to find a solution for my problem, but recently I updated my printer with an auto bed leveling sensor which requires an update of the printer firmware (to Marlin firmware). I updated to the latest Skynet firmware (v2.3.2 fix 2). Again I noticed that the prints are printed off-set of the heated bed center. This can easily be checked by printing the thing I uploaded here. The cross should be exactly in the center of the heated bed; the distance from the outer squares to the edge of the heated bed should be similar/equidistant.

Fix the off-set!

In my case the bed is off center by 2 mm in both X and Y direction (ignoring the signs here). There are a few solutions to solve this (see Marlin bed dimensions at reprap.org). As I closed up my main board after the firmware flashing (using a private remix (now publicly available here: 0scar's modular Anet A8 electronics casing) from c_wolsey's Anet A8 Electronics Case; I increased the height of the casing so it can hold a Raspberry Pi, the main board, a 4-channel relay module, an opto-coupler for the auto level sensor and a heatbed Mosfet), I had no quick access (maybe combined with a little laziness and lack of time) to change the firmware configuration file and upload a new version, so I decided to go for the second method: changing the off-set through g-code command and store the new off-set to the printer memory. In my case the center of the bed required an offset of -2 mm for the X direction (just 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; in my case this led to (8-12)/2 = -2 mm). A similar action needs to be done for the Y-direction; this resulted in 2 mm off-set.

Use a terminal to access the printer to directly send command to the printer (this can be e.g. done in Cura or Pronterface). I used the terminal available in the OctoPrint interface.
Send the code: M206 X-2 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 send code M500.

The first photo shows the before center calibration, the second photo after calibration.

Now your printer has a new center!

More from 3D Printing Tests

view more

All Apps

Customizer is the easiest way to take great 3D printable designs and make them your own. Make your OpenSCAD designs infinitely more valuable by empowering the community to customize them.

App Info Launch App
Customizer Thing App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Very Helpful,

my prints are now centered and I can now use my full bed!!

Does it matter where we add the GCode? like after what line?

Usually people hook their printer up through USB and start a program that can interface with the printer through a so-called console window. In that console you type in your gcode commands to control or communicate with your printer. Various applications can be used for this; OctoPrint, Pronterface, Repetier Host, and probably many more. With all that said, it is perfectly legit to make a .gcode file yourself and run that file using the SD card.

Ok Thanks!

So simple and so effective. Great jog!! This helped me center my printer when I added a E3D on it.

Thanks, you're welcome!

When I do a print preview in s3d it shows the outline and circle but not the cross hairs. Just using the default s3d settings. Not sure what setting needs to be changed? Is there cross hair lines infill / internal walls?

I do not own a s3d licence so I cannot help you. It slices perfectly in Slic3r. But, all you need is the outer square to measure the differences to the edges. The crosshair just conveniently marks the centre of the bed when executed correctly.

When I try to re-scale to 75 and it doesn't print anything. Can you make the lines thicker as version 2?

I have added a step file of the 100% version for you to change.