I don't think you need extra G-code coordinates to drive more joints. And no matter how many joints there are the tool tip position and orientation is completely described by XYZABC.
So, I think that all is needed, in theory, is to increase EMCMOT_MAX_JOINTS
github.com/LinuxCNC/linuxcnc/blob/master...tion/emcmotcfg.h#L23
A bit of work is needed to make Axis display a radio button for all the axes, and currently the number of PIDs in HAL is limited to 16 (easy fix).
But other than that, things seem to work.
Code:
halcmd: show pin *motor-pos-cmd
Component Pins:
Owner Type Dir Value Name
19 float OUT 0.1009 joint.0.motor-pos-cmd ==> J0:pos-cmd
19 float OUT 0.1009 joint.1.motor-pos-cmd ==> J1:pos-cmd
19 float OUT 0 joint.10.motor-pos-cmd ==> J10:pos-cmd
19 float OUT 0 joint.11.motor-pos-cmd ==> J11:pos-cmd
19 float OUT 0.1009 joint.12.motor-pos-cmd ==> J12:pos-cmd
19 float OUT 0.1009 joint.13.motor-pos-cmd ==> J13:pos-cmd
19 float OUT 0.1009 joint.14.motor-pos-cmd ==> J14:pos-cmd
19 float OUT 0.1009 joint.15.motor-pos-cmd ==> J15:pos-cmd
19 float OUT 0.1009 joint.16.motor-pos-cmd ==> J16:pos-cmd
19 float OUT 0.1009 joint.17.motor-pos-cmd ==> J17:pos-cmd
19 float OUT 0.1009 joint.2.motor-pos-cmd ==> J2:pos-cmd
19 float OUT 0.1009 joint.3.motor-pos-cmd ==> J3:pos-cmd
19 float OUT 0.1009 joint.4.motor-pos-cmd ==> J4:pos-cmd
19 float OUT 0.1009 joint.5.motor-pos-cmd ==> J5:pos-cmd
19 float OUT 0 joint.6.motor-pos-cmd ==> J6:pos-cmd
19 float OUT 0 joint.7.motor-pos-cmd ==> J7:pos-cmd
19 float OUT 0 joint.8.motor-pos-cmd ==> J8:pos-cmd
19 float OUT 0 joint.9.motor-pos-cmd ==> J9:pos-cmd