Homing a FiveAxisRobot
How to home, probe and make mesh compensation for a Five Axis Robot.
When the printer is powered on, the firmware doesn't know where the axes (arms) are positioned. To let the firmware know it, a procedure called homing is used. For every axis, the actuator (stepper) is moved to a position where the position is known by construction, and storing this information. In most cases, the known position is an endstop. After homing, the printer can start printing.
Precision and Accuracy
If the printer shall move to coordinate x,y,z (0,0,0), and it reaches (0,0,0), then this is precision. If it reaches (0.1,0.1,0.1) instead, but multiple times at the same (wrong) position, this is called accuracy.
Cartesian and CoreXY printers want to have high accuracy. Precision is not so important, because those kinematics use linear movements.
Delta, Scara, Parallel Scara, Robots and similar are different. Precision is important, as well as accuracy, because the stepper's machine positions are translated into cartesian coordinates in a nonlinear manner (often trigonometric functions). It becomes important that the endstop is triggered at the correct known position (precision), not only to trigger it at the same position every time (accuracy).
The home file which homes all axes is called homeall.g. All actuator axes must be homed before normal G1 moves can be used. In R0 mode, 5 axes must be homed (Axis 1 to 5, letters XYZUV), in R1 mode 4 axes (Axis 1 to 3 and 5, letters XYZV) and in R2 3 axes (Axis 1-3, letters XYZ). When rail is used, an additional linear axis (Axis 6, letter W) must be homed.
Axis 4's kinematic is such the arm 4 is vertical when printing. Care must be taken that after homing and starting printing, when 4 is rotated to its vertical position, the robot doesn't collide with other printer objects like the print bed. Better to rotate arms 2 and 3 to a higher position after homing and before printing.
When using G1 H1 to hit the endstops for each of the 5 axes, the angle or rail is set to the position of parameter A for endstop position each.
Axis 1 homing
Axis 1 is homed so that 0 degree means arm 2 and 3 are parallel to the X axis. Plus angle is counterclockwise. When axis 1 rotates, the Z value doesn't change. The vertical distance between hotend and printbed should not change.
Axis 2 homing
Axis 2 is homed so that 0 degree means arm 2 is horizontal and parallel to Z plane. Plus means arm 2 is rotated up.
Axis 3 homing
Axis 3 is homed so that 0 degree means straight line between arm 2 and 3. Arm 3 is always with angle 3 down, always 0 or negative value.
Axis 4 homing
Axis 4 is homed so that 0 degree means straight line between arm 3 and 4. The angle 4 is negative in most cases (bent down, resulting in a vertical arm 4).
Axis 5 homing
Axis 5 is homed so that 0 degree means arm 5 is in line with arms 2 and 3. Angle 5 is positive when rotated counterclockwise.
Axis 6 homing
Axis 6 (if rail is used) is a linear actuator and defines an offset to coordinate X , Y or Z depending on the mode.