logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

homecomp - homing module template

Author

       Dewey Garrett

Description

       Example of a homing module buildable with halcompile.  Demonstrates required code for #includes, function
       definitions, etc.

       If  HOMING_BASE 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 HOMING_BASE Is not #defined, an  actual homing scheme is not 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 homemod module.

       To avoid updates that overwrite homecomp.comp, best practice is to rename the file and its component name
       (example: user_homecomp.comp,user_homecomp).

       The (renamed) component can be built and installed with halcompile and then substituted for  the  default
       homing module (homemod) using:

         $ linuxcnc -muser_homecomp someconfig.ini

       or by inifile setting: [EMCMOT]HOMEMOD=user_homecompNote:If 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

License

       GPL

LinuxCNC Documentation                             2025-06-19                                        HOMECOMP(9)

Name

       homecomp - homing module template

Pins

homecomp.N.is-module bit out (default: 1)

Synopsis


       Custom Homing module loaded with [EMCMOT]HOMEMOD=homecomp

See Also