How I have setup my delta. I will list the pertinent settings from my config and then go through them.
####################################
[Geometry]
axis_config = 3
travel_x = -0.5
travel_y = -0.5
travel_z = -0.5
offset_x = -0.3087
offset_y = -0.3114
offset_z = -0.3057
[Homing]
Homing speed for the steppers in m/s
home_speed_x = 0.15
home_speed_y = 0.15
home_speed_z = 0.15
homing backoff speed
home_backoff_speed_x = 0.025
home_backoff_speed_y = 0.025
home_backoff_speed_z = 0.025
homing backoff dist
home_backoff_offset_x = 0.01
home_backoff_offset_y = 0.01
home_backoff_offset_z = 0.01
Where should the printer go after homing
home_x = 0.0
home_y = 0.0
home_z = 0.25
home_e = 0.0
####################################
Now the explanation.
! axis_config
Just to make sure everyone knows these settings are for a delta!
! travel_* .
The travel_ option sets how far the axes are allowed to move when homing, so you want the specified travel_* to be slightly greater than the maximum distance that axis will ever have to travel. On my delta I have a build volume of height 0.3m and so I use travel_* = 0.5 to allow for if my effector is offset from the center giving one carriage that is lower than the others.
! offset_* and home_speed_* .
First, the ideal case where you have a perfectly dimensioned machine:
Imagine that you have centered your extruder on the bed and then moved it upwards until all the endstops are hit simultaneously. All of the offset_ values will be the same and are the distance, and direction, from the tip of the extruder to the surface of the bed.
Now my case with endstops that aren’t perfectly aligned:
I, figuratively, perform the same operation as above but as long as my extruder is centered then only one endstop will be triggered because they aren’t all at the same height. This would be, in my case, the z tower endstop as it is the lowest absolute value I have recorded in offset_* . If I then removed that endstop and kept raising the extruder, still aligned with the center of the bed, then the next endstop I hit would be x, and then y. The relative distance from the extruder tip to the bed when each endstop is hit is what is being recorded in offset_* . This isn’t the actual procedure I followed to dial in my settings but it is the easiest way I could think of to explain the overall idea.
The reason the offset_* values are negative is because my home_speed_* value is positive. I have a positive home_speed_* meaning that my carriages will travel in the positive (up) direction to engage the endstops. When I hit the endstops I am telling the printer, with the offset_* value, that the bed is some distance in the opposite (negative, down) direction.
! home_backoff_speed_* .
The speed to use when performing the fine search.
! home_backoff_offset_* .
How far to move away from the endstop before performing the fine search.
! home_* .
Where to go after the homing procedure is finished. I have used home_z = 0.25 so that my extruder is 250mm above the bed. Another example is if you had offset_x=offset_y=offset_z=-0.3 and you set home_z=0.3 then the carriages would remain at the endstops.
I hope that helps!