USERKINS(9)
π USERKINS(9) β bestie's guide to the HAL Component π
okay so. this is a page from the HAL Component manual section, and it's about userkins β which is literally just a template you can take and make your own. it's giving "starter pack" energy. let's get into it π
β¨ NAME β¨
userkins β the template for user-built kinematics, periodt π
πΈ SYNOPSIS πΈ
loadrt userkins [count=N|names=name1[,name2...]]
π¦ DESCRIPTION π¦
the userkins.comp file is a whole template for making kinematics that you can user-build using halcompile. no cap. π₯
if you don't touch it at all, the unmodified userkins component still works as a kinematics file for a machine with identity kinematics β that's an xyz machine using 3 joints (aka motors). slay.
π USAGE π
- copy the
userkins.compfile into a directory you own (mydir).
note bestie: you can downloaduserkins.compfromhttps://github.com/LinuxCNC/linuxcnc/raw/2.8/src/hal/components/userkins.compwhere'2.8'is the branch name (use'master'for the master branch).
for a RIP (run-in-place) build, the file lives in the git tree like this:
src/hal/components/userkins.comp
- edit the functions
kinematicsForward()andkinematicsInverse()however you need to βοΈ - if you need them, add hal pins β just follow the examples in the template code π«Ά
- 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
- specify
userkinsin an ini file like this:
[KINS]
KINEMATICS=userkins
JOINTS=3
# the number of JOINTS must agree with the
# number of joints used in your modified userkins.comp
- note: the manpage for
userkinsis not updated byhalcompile --installπ - want a different component name? rename the file (example:
mykins.comp) and then change all instances of'userkins'to'mykins'π
β NOTES β
- the
fpinpin is included just to satisfy the requirements of thehalcompileutility, but heads up β it is not accessible to kinematics functions. - hal pins and parameters that you need inside kinematics functions (
kinematicsForward(),kinematicsInverse()) have to be set up in a function (userkins_setup()) that gets invoked by the initial motion module call tokinematicsType().
π₯ FUNCTIONS π₯
userkins.N.fdemoβ this one requires a floating-point thread β οΈ
π PINS π
userkins.N.fpins32out (default:0) β a pin that demonstrates use of a conventional (non-kinematics) functionfdemoβ¨
π AUTHOR π
Dewey Garrett
π LICENSE π
GPL
okay that's the whole thing, you ate it up, you're the main character of HAL now π this was USERKINS(9) from the HAL Component manual, served to you by LinuxCNC Documentation on 2026-03-17 β ily, go build something iconic π¦β¨
π¦ where this page comes from
- ubuntu resolute: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- ubuntu stonking: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms