.\"******************************************************************* .\" .\" This file was extracted from hal/components/homecomp.comp using halcompile.g. .\" Modify the source file. .\" .\"******************************************************************* .TH HOMECOMP "9" "2024-03-13" "LinuxCNC Documentation" "HAL Component" .SH NAME homecomp \- homing module template .SH SYNOPSIS .HP Custom Homing module loaded with \fB[EMCMOT]HOMEMOD=homecomp\fR .SH DESCRIPTION Example of a homing module buildable with halcompile. Demonstrates required code for #includes, function definitions, etc. If \fBHOMING_BASE\fR is #defined and points to a valid homing.c file, an example of a customized homing module is built. This module creates input hal pins joint.n.request-custom-homing that enable an alternate joint homing state machine for requested joints. A hal output pin joint.N.is_custom-homing verifies selection" The customized homing module utilizes many of the base homing api routines from homing.c without modification but augments other base functions to add support for custom hal pins and custom joint homing state machines. A user-built module will likely replace additional api functions or augment them with other customizations. If \fBHOMING_BASE\fR Is not #defined, an actual homing scheme is \fBnot\fR implemented but all necessary functions are included as skeleton code. (All joints are effectively homed at all times and cannot be unhomed). See the source code file: src/emc/motion/homing.c for the baseline implementation that includes all functions for the default \fBhomemod\fR module. To avoid updates that overwrite homecomp.comp, best practice is to rename the file and its component name (example: \fBuser_homecomp.comp, user_homecomp\fR). The (renamed) component can be built and installed with halcompile and then substituted for the default homing module (\fBhomemod\fR) using: $ linuxcnc \fB-m user_homecomp\fR someconfig.ini or by inifile setting: \fB[EMCMOT]HOMEMOD=user_homecomp\fR \fBNote:\fRIf using a deb install: 1) halcompile is provided by the package linuxcnc-dev 2) This source file for BRANCHNAME (master,2.9,etc) is downloadable from github: https://github.com/LinuxCNC/linuxcnc/blob/BRANCHNAME/src/hal/components/homecomp.comp .SH PINS .TP .B homecomp.\fIN\fB.is-module\fR bit out \fR(default: \fI1\fR) .SH AUTHOR Dewey Garrett .SH LICENSE GPL