Auto home on a Creality Ender 3 (and presumably all other 3D printers) moves the bed and the extrusion nozzle into a default “zero” position. In essence the bed and the extrusion nozzle are moved so they hit the end stop microswitches which signal to the controller board where the bed and nozzle are.
Mostly people assume that this is 0,0,0. In fact that is what it is set to in the factory defaults for the Ender 3. But if you look at the bed of an Ender 3 after it has been auto homed you will find that the nozzle is actually off the bed by about 5mm. It is not in the bottom left hand corner of the plate as you would expect.
The consequence of this is that if you try and use the full surface area of the plate you will be off center. In the worst case you may actually extrude plastic into thin air. As most projects are small compared to the bed size a small offset in the center of the plate is irrelevant. But still, it is an annoyance.
It is though easy to fix. Without storing the setting in eeprom you will have to repeat it after every power cycle. But you can use Pronterface (or similar) to make it permanent across power cycles.
Here’s what you have to do.
Set Home Offsets
Power up the Ender 3.
Use the little GUI to auto-home. I.e. “Prepare->Auto home”.
Notice that after the auto-homing the extruder is off the bed y-axis by about 5mm.
Now from the on-board GUI select “Prepare→Move axis→Move Y”. Then select 1mm increments. Turn the knob and nudge the nozzle along the Y axis until it is just on the plate. Repeat with the X axis if you have to (though on mine the auto home X location was perfect.)
When it is in the right position select “Prepare→Set home offsets” Click the knob. The machine will double beep.
Now when you enter G code to go to 0,0 it will go to the new position. If you auto home now the display will show (in my case ) the Y axis location as -5
That’s it. Unless you want to make it permanent that is (which you probably do). At the moment if you turn the machine off the home offset will revert back to the auto-home position. To set it in stone you need to use Pronterface (below).
Just as an aside: As well as getting the x,y position right, if you want to reduce the nausea associated with getting the bed level then have a look at getting a CR Touch System. Easy to use and install. This supplier has a 4.3* rating on Amazon. Saves time as well as angst! If you have an old 8 bit motherboard you may well need a new 32 bit 4.2.7 board as well. See the side advert above under the “Home Offsets” title, it has both.
Make it permanent with Pronterface
To make it permanent you need to attach Pronterface via USB. (see this post on how to get Pronterface attached through USB to the Ender 3 from an Ubuntu 18.04 set-up).
In the bottom right corner of Pronterface is a box in which you can enter G code.
Using this box first of all check the home position is set as you want. Use this G code
This prints out current settings. Here is the output on my machine before and after zeroing the home position. Look for “Home offset about 8 lines up from the bottom.
To make this permanent we need to flash to the on-board eeprom. Do this with the M500 G-code. It has no parameters. So just enter:
For me this command never returned. But did not block further commands and seemed to work OK.
Now when you enter G1 X0 Y0 you will go to the corner of the plate rather than the off-plate position dictated by auto home. And you won’t lose the setting over a power cycle.
Remember though to use this constructively you will need to add it after auto-homing in your code like this:
G1 X0 Y0