Disabling mandatory G28

Basic Information:

SKR 1.4 Pro
Raspberry Pi 3B+

I am building my printer without end sensors, but to move the axes I need to use G28. How can I disable the mandatory G28?

Hello @E1M1!

How do you want achieve the correct positioning without any endstop?

Hello, you can’t “disable” G28, because if you switch on your printer, he doesn’t know, in what positions the axis are. G28 is the command for klipper to home the axis.
What you mean is “sensorless homing”.
To put it simply:
If you have endstop sensors, klipper waits for them to trigger after you send G28 and the axis begin to move.
If you use sensorless homing, klipper waits for the signal from the motor driver as a “virtual endstop”.
More about sensorless homing you can find here TMC drivers - Klipper documentation
I hope that helps
Have a nice weekend.

2 Likes

I didn’t express myself clearly. I would like to make it so that when the printer is turned on, all axes are zeroed as with G28, so that the error “Must home axis first: 10.000 0.000 0.000 [0.000]” doesn’t pop up and it would be possible to set “zero” manually as with G92 on CNC milling machines.

How do you know that the axes are on zero?

I see multiple issues here. Setting the axis as homed when the printer is turned on, can be done with delayed_gcode and either homing_override or SET_KINEMATIC_POSITION.

Another problem you will face is idle_timeout, which by default disables and unhomes your axes. So you will need to adjust idle_timeout too.

And I dont know what the use case would be for something like this. Especially on a printer as you said, you will get all sorts of problems.

  • bed size of your mesh can be off your bed, depending where you set your 0,0 position
  • Axis limits are invalid, your printer can and will crash causing all sorts of issues

What is the exact reason you cant use endstops?

1 Like

The force_move commands will allow you to do this.

Carefully read the warnings and information associated with these commands.

As indicated by @EddyMI3D and @why_me1:

  • This is not recommended.
  • This is not considered good practice.
  • This might make the whole system very prone to user error, leading to potentially catastrophic failures.

In the end, it is your responsibility, so choose your poison.