homecomp - homing module template
Custom Homing
module loaded with
[EMCMOT]HOMEMOD=homecomp
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
-m user_homecomp someconfig.ini
or by inifile setting:
[EMCMOT]HOMEMOD=user_homecomp
Note: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
- homecomp.N.is-module bit out (default:
1)
Dewey Garrett
GPL