---
name: "userkins"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/userkins"
---

# userkins(9)

Template for user-built kinematics

## NAME

userkins - Template for user-built kinematics

## SYNOPSIS

**loadrt userkins \[count=*N*\|names=*name1*\[,*name2...*\]\]**

## DESCRIPTION

The userkins.comp file is a template for creating kinematics that can be user-built using halcompile.

The unmodified userkins component can be used as a kinematics file for a machine with identity kinematics for an xyz machine employing 3 joints (motors).

**USAGE:**

  1\) Copy the userkins.comp file to a user-owned\
      directory (**mydir**).

     Note: The userkins.comp file can be downloaded from:\
      where '2.8' is the branch name (use 'master' for\
      the master branch)

     For a RIP (run-in-place) build, the file is located in\
      the git tree as:\
        src/hal/components/userkins.comp

  2\) Edit the functions kinematicsForward() and\
      kinematicsInverse() as required\
   3\) If required, add hal pins following examples in\
      the template code\
   4\) Build and install the component using halcompile:\
      $ cd **mydir**\
      $ \[sudo\] halcompile --install userkins.comp\
      \# Note:\
      \#      sudo is required when using a deb install\
      \#      sudo is **not** required for run-in-place builds\
      \# $ man halcompile for more info\
   5\) Specify userkins in an ini file as:\
      **\[KINS\]**\
      **KINEMATICS=userkins**\
      **JOINTS=3**\
      \# the number of JOINTS must agree with the\
      \# number of joints used in your modified userkins.comp\
   6\) Note: the manpage for userkins is not updated by\
      halcompile --install\
   7\) To use a different component name, rename the file\
      (example mykins.comp) and change all instances of\
      'userkins' to 'mykins'

**NOTES:**\
   1  The **fpin** pin is included to satisfy the requirements of\
      the halcompile utility but it is not accessible to kinematics\
      functions.

  2  Hal pins and parameters needed in kinematics functions\
      (kinematicsForward(), kinematicsInverse()) must\
      be setup in a function (**userkins\_setup()**) invoked\
      by the initial motion module call to kinematicsType().

## FUNCTIONS

- **userkins.***N***.fdemo** (requires a floating-point thread)

  ## PINS

- **userkins.*N*.fpin s32 out (default: *0*)**

  pin to demonstrate use of a conventional (non-kinematics) function fdemo

## AUTHOR

Dewey Garrett

## LICENSE

GPL
