halui.mdi-command-NN pins not showing up

More
1 year 1 month ago #334198 by JT
Dunno if this is a clue or not but <commandline>:0: halui exited without becoming ready seems odd.
Code:
LINUXCNC - 2.9.0~pre1+git20230208.f1270d6ed7 Machine configuration directory is '/home/john/linuxcnc/configs/flex_examples/starters/Lathe' Machine configuration file is 'lathe.ini' Starting LinuxCNC... <commandline>:0: halui exited without becoming ready linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod Note: Using POSIX realtime Found file(REL): ./main.hal identityKinematicsSetup: coordinates:AZ    Joint 0 ==> Axis A    Joint 1 ==> Axis Z identityKinematicsSetup: Recommend: kinstype=both

JT

Please Log in to join the conversation.

More
1 year 1 month ago #334199 by JT
That line does not show up if the axes are all linear.

JT

Please Log in to join the conversation.

More
1 year 1 month ago #334201 by xunil
Not sure this will shed any more light, but I've attached the output from starting LinuxCNC on my actual machine.  I get that 'halui exited without becoming ready' message too.  One other thing I noticed is that the initial messages about kinematics has "coordinates:AZ" but later on the jog order is "ZA".  Is there some requirement that the first axis be linear?  I don't think it would hurt anything for my machine to reorder things so joint 0 was linear and joint 1 was angular.  Just kind of fumbling in the dark here for ideas.

 

Attachment not found

Please Log in to join the conversation.

More
1 year 1 month ago #334261 by andypugh
Looking through halui.cc I don't see anything that would obviously fail if joint 0 is angular.
But as an experiment I would be tempted to switch COORDINATES to ZA to see if anything changes.

It might be instructive to see which halui pins exist, to give some indication on where the component load fails:

github.com/LinuxCNC/linuxcnc/blob/master...mc/usr_intf/halui.cc

Assuming that linuxcnc is "alive" "halcmd show pin halui" should give us a pin list to look at.

Please Log in to join the conversation.

More
1 year 1 month ago #334272 by JT
AZ
Code:
john@cave:~$ halcmd show pin halui Component Pins: Owner Type Dir Value Name 10 bit OUT FALSE halui.axis.a.is-selected 10 float OUT 0 halui.axis.a.pos-commanded 10 float OUT 0 halui.axis.a.pos-feedback 10 float OUT 0 halui.axis.a.pos-relative 10 bit OUT FALSE halui.axis.z.is-selected 10 float OUT 0 halui.axis.z.pos-commanded 10 float OUT 0 halui.axis.z.pos-feedback 10 float OUT 0 halui.axis.z.pos-relative 10 bit OUT FALSE halui.estop.is-activated 10 bit OUT FALSE halui.flood.is-on 10 bit OUT FALSE halui.joint.0.has-fault 10 bit OUT FALSE halui.joint.0.is-homed 10 bit OUT TRUE halui.joint.0.is-selected 10 bit OUT FALSE halui.joint.0.on-hard-max-limit 10 bit OUT FALSE halui.joint.0.on-hard-min-limit 10 bit OUT FALSE halui.joint.0.on-soft-max-limit 10 bit OUT FALSE halui.joint.0.on-soft-min-limit 10 bit OUT FALSE halui.joint.0.override-limits 10 bit OUT FALSE halui.joint.1.has-fault 10 bit OUT FALSE halui.joint.1.is-homed 10 bit OUT FALSE halui.joint.1.is-selected 10 bit OUT FALSE halui.joint.1.on-hard-max-limit 10 bit OUT FALSE halui.joint.1.on-hard-min-limit 10 bit OUT FALSE halui.joint.1.on-soft-max-limit 10 bit OUT FALSE halui.joint.1.on-soft-min-limit 10 bit OUT FALSE halui.joint.1.override-limits 10 bit OUT FALSE halui.joint.selected.has-fault 10 bit OUT FALSE halui.joint.selected.is-homed 10 bit OUT FALSE halui.joint.selected.on-hard-max-limit 10 bit OUT FALSE halui.joint.selected.on-hard-min-limit 10 bit OUT FALSE halui.joint.selected.on-soft-max-limit 10 bit OUT FALSE halui.joint.selected.on-soft-min-limit 10 bit OUT FALSE halui.joint.selected.override-limits 10 bit OUT FALSE halui.lube.is-on 10 bit OUT FALSE halui.machine.is-on 10 float OUT 0 halui.machine.units-per-mm 10 bit OUT FALSE halui.mist.is-on 10 bit OUT FALSE halui.mode.is-auto 10 bit OUT FALSE halui.mode.is-joint 10 bit OUT FALSE halui.mode.is-manual 10 bit OUT FALSE halui.mode.is-mdi 10 bit OUT FALSE halui.mode.is-teleop 10 bit OUT FALSE halui.program.block-delete.is-on 10 bit OUT FALSE halui.program.is-idle 10 bit OUT FALSE halui.program.is-paused 10 bit OUT FALSE halui.program.is-running 10 bit OUT FALSE halui.program.optional-stop.is-on 10 bit OUT FALSE halui.spindle.0.brake-is-on 10 bit IN FALSE halui.spindle.0.brake-off 10 bit IN FALSE halui.spindle.0.brake-on 10 bit IN FALSE halui.spindle.0.decrease 10 bit IN FALSE halui.spindle.0.forward 10 bit IN FALSE halui.spindle.0.increase 10 bit OUT FALSE halui.spindle.0.is-on 10 bit IN TRUE halui.spindle.0.override.count-enable 10 s32 IN 0 halui.spindle.0.override.counts 10 bit IN FALSE halui.spindle.0.override.decrease 10 bit IN FALSE halui.spindle.0.override.direct-value 10 bit IN FALSE halui.spindle.0.override.increase 10 bit IN FALSE halui.spindle.0.override.reset 10 float IN 0 halui.spindle.0.override.scale 10 float OUT 0 halui.spindle.0.override.value 10 bit IN FALSE halui.spindle.0.reverse 10 bit OUT FALSE halui.spindle.0.runs-backward 10 bit OUT FALSE halui.spindle.0.runs-forward 10 bit IN FALSE halui.spindle.0.start 10 bit IN FALSE halui.spindle.0.stop

Please Log in to join the conversation.

More
1 year 1 month ago #334273 by JT
XZ
Code:
john@cave:~$ halcmd show pin halui Component Pins: Owner Type Dir Value Name 10 bit IN FALSE halui.abort 10 float IN 0 halui.axis.a.analog 10 float IN 0 halui.axis.a.increment 10 bit IN FALSE halui.axis.a.increment-minus 10 bit IN FALSE halui.axis.a.increment-plus 10 bit IN FALSE halui.axis.a.minus 10 bit IN FALSE halui.axis.a.plus 10 bit IN FALSE halui.axis.a.select 10 float IN 0 halui.axis.b.analog 10 float IN 0 halui.axis.b.increment 10 bit IN FALSE halui.axis.b.increment-minus 10 bit IN FALSE halui.axis.b.increment-plus 10 bit IN FALSE halui.axis.b.minus 10 bit IN FALSE halui.axis.b.plus 10 bit IN FALSE halui.axis.b.select 10 float IN 0 halui.axis.c.analog 10 float IN 0 halui.axis.c.increment 10 bit IN FALSE halui.axis.c.increment-minus 10 bit IN FALSE halui.axis.c.increment-plus 10 bit IN FALSE halui.axis.c.minus 10 bit IN FALSE halui.axis.c.plus 10 bit IN FALSE halui.axis.c.select 10 float IN 0.2 halui.axis.jog-deadband 10 float IN 0 halui.axis.jog-speed 10 u32 OUT 0x00000000 halui.axis.selected 10 float IN 0 halui.axis.selected.increment 10 bit IN FALSE halui.axis.selected.increment-minus 10 bit IN FALSE halui.axis.selected.increment-plus 10 bit IN FALSE halui.axis.selected.minus 10 bit IN FALSE halui.axis.selected.plus 10 float IN 0 halui.axis.u.analog 10 float IN 0 halui.axis.u.increment 10 bit IN FALSE halui.axis.u.increment-minus 10 bit IN FALSE halui.axis.u.increment-plus 10 bit IN FALSE halui.axis.u.minus 10 bit IN FALSE halui.axis.u.plus 10 bit IN FALSE halui.axis.u.select 10 float IN 0 halui.axis.v.analog 10 float IN 0 halui.axis.v.increment 10 bit IN FALSE halui.axis.v.increment-minus 10 bit IN FALSE halui.axis.v.increment-plus 10 bit IN FALSE halui.axis.v.minus 10 bit IN FALSE halui.axis.v.plus 10 bit IN FALSE halui.axis.v.select 10 float IN 0 halui.axis.w.analog 10 float IN 0 halui.axis.w.increment 10 bit IN FALSE halui.axis.w.increment-minus 10 bit IN FALSE halui.axis.w.increment-plus 10 bit IN FALSE halui.axis.w.minus 10 bit IN FALSE halui.axis.w.plus 10 bit IN FALSE halui.axis.w.select 10 float IN 0 halui.axis.x.analog 10 float IN 0 halui.axis.x.increment 10 bit IN FALSE halui.axis.x.increment-minus 10 bit IN FALSE halui.axis.x.increment-plus 10 bit OUT TRUE halui.axis.x.is-selected 10 bit IN FALSE halui.axis.x.minus 10 bit IN FALSE halui.axis.x.plus 10 float OUT 0 halui.axis.x.pos-commanded 10 float OUT 0 halui.axis.x.pos-feedback 10 float OUT 0 halui.axis.x.pos-relative 10 bit IN FALSE halui.axis.x.select 10 float IN 0 halui.axis.y.analog 10 float IN 0 halui.axis.y.increment 10 bit IN FALSE halui.axis.y.increment-minus 10 bit IN FALSE halui.axis.y.increment-plus 10 bit IN FALSE halui.axis.y.minus 10 bit IN FALSE halui.axis.y.plus 10 bit IN FALSE halui.axis.y.select 10 float IN 0 halui.axis.z.analog 10 float IN 0 halui.axis.z.increment 10 bit IN FALSE halui.axis.z.increment-minus 10 bit IN FALSE halui.axis.z.increment-plus 10 bit OUT FALSE halui.axis.z.is-selected 10 bit IN FALSE halui.axis.z.minus 10 bit IN FALSE halui.axis.z.plus 10 float OUT 0 halui.axis.z.pos-commanded 10 float OUT 0 halui.axis.z.pos-feedback 10 float OUT 0 halui.axis.z.pos-relative 10 bit IN FALSE halui.axis.z.select 10 bit IN FALSE halui.estop.activate 10 bit OUT TRUE halui.estop.is-activated 10 bit IN FALSE halui.estop.reset 10 bit IN TRUE halui.feed-override.count-enable 10 s32 IN 0 halui.feed-override.counts 10 bit IN FALSE halui.feed-override.decrease 10 bit IN FALSE halui.feed-override.direct-value 10 bit IN FALSE halui.feed-override.increase 10 bit IN FALSE halui.feed-override.reset 10 float IN 0.1 halui.feed-override.scale 10 float OUT 1 halui.feed-override.value 10 bit OUT FALSE halui.flood.is-on 10 bit IN FALSE halui.flood.off 10 bit IN FALSE halui.flood.on 10 bit IN FALSE halui.home-all 10 float IN 0 halui.joint.0.analog 10 bit OUT FALSE halui.joint.0.has-fault 10 bit IN FALSE halui.joint.0.home 10 float IN 0 halui.joint.0.increment 10 bit IN FALSE halui.joint.0.increment-minus 10 bit IN FALSE halui.joint.0.increment-plus 10 bit OUT FALSE halui.joint.0.is-homed 10 bit OUT TRUE halui.joint.0.is-selected 10 bit IN FALSE halui.joint.0.minus 10 bit OUT FALSE halui.joint.0.on-hard-max-limit 10 bit OUT FALSE halui.joint.0.on-hard-min-limit 10 bit OUT FALSE halui.joint.0.on-soft-max-limit 10 bit OUT FALSE halui.joint.0.on-soft-min-limit 10 bit OUT FALSE halui.joint.0.override-limits 10 bit IN FALSE halui.joint.0.plus 10 bit IN FALSE halui.joint.0.select 10 bit IN FALSE halui.joint.0.unhome 10 float IN 0 halui.joint.1.analog 10 bit OUT FALSE halui.joint.1.has-fault 10 bit IN FALSE halui.joint.1.home 10 float IN 0 halui.joint.1.increment 10 bit IN FALSE halui.joint.1.increment-minus 10 bit IN FALSE halui.joint.1.increment-plus 10 bit OUT FALSE halui.joint.1.is-homed 10 bit OUT FALSE halui.joint.1.is-selected 10 bit IN FALSE halui.joint.1.minus 10 bit OUT FALSE halui.joint.1.on-hard-max-limit 10 bit OUT FALSE halui.joint.1.on-hard-min-limit 10 bit OUT FALSE halui.joint.1.on-soft-max-limit 10 bit OUT FALSE halui.joint.1.on-soft-min-limit 10 bit OUT FALSE halui.joint.1.override-limits 10 bit IN FALSE halui.joint.1.plus 10 bit IN FALSE halui.joint.1.select 10 bit IN FALSE halui.joint.1.unhome 10 float IN 0.2 halui.joint.jog-deadband 10 float IN 0 halui.joint.jog-speed 10 u32 OUT 0x00000000 halui.joint.selected 10 bit OUT FALSE halui.joint.selected.has-fault 10 bit IN FALSE halui.joint.selected.home 10 float IN 0 halui.joint.selected.increment 10 bit IN FALSE halui.joint.selected.increment-minus 10 bit IN FALSE halui.joint.selected.increment-plus 10 bit OUT FALSE halui.joint.selected.is-homed 10 bit IN FALSE halui.joint.selected.minus 10 bit OUT FALSE halui.joint.selected.on-hard-max-limit 10 bit OUT FALSE halui.joint.selected.on-hard-min-limit 10 bit OUT FALSE halui.joint.selected.on-soft-max-limit 10 bit OUT FALSE halui.joint.selected.on-soft-min-limit 10 bit OUT FALSE halui.joint.selected.override-limits 10 bit IN FALSE halui.joint.selected.plus 10 bit IN FALSE halui.joint.selected.unhome 10 bit OUT FALSE halui.lube.is-on 10 bit IN FALSE halui.lube.off 10 bit IN FALSE halui.lube.on 10 bit OUT FALSE halui.machine.is-on 10 bit IN FALSE halui.machine.off 10 bit IN FALSE halui.machine.on 10 float OUT 0.03937008 halui.machine.units-per-mm 10 bit IN TRUE halui.max-velocity.count-enable 10 s32 IN 0 halui.max-velocity.counts 10 bit IN FALSE halui.max-velocity.decrease 10 bit IN FALSE halui.max-velocity.direct-value 10 bit IN FALSE halui.max-velocity.increase 10 float IN 0 halui.max-velocity.scale 10 float OUT 1 halui.max-velocity.value 10 bit OUT FALSE halui.mist.is-on 10 bit IN FALSE halui.mist.off 10 bit IN FALSE halui.mist.on 10 bit IN FALSE halui.mode.auto 10 bit OUT FALSE halui.mode.is-auto 10 bit OUT TRUE halui.mode.is-joint 10 bit OUT TRUE halui.mode.is-manual 10 bit OUT FALSE halui.mode.is-mdi 10 bit OUT FALSE halui.mode.is-teleop 10 bit IN FALSE halui.mode.joint 10 bit IN FALSE halui.mode.manual 10 bit IN FALSE halui.mode.mdi 10 bit IN FALSE halui.mode.teleop 10 bit OUT TRUE halui.program.block-delete.is-on 10 bit IN FALSE halui.program.block-delete.off 10 bit IN FALSE halui.program.block-delete.on 10 bit OUT TRUE halui.program.is-idle 10 bit OUT FALSE halui.program.is-paused 10 bit OUT FALSE halui.program.is-running 10 bit OUT TRUE halui.program.optional-stop.is-on 10 bit IN FALSE halui.program.optional-stop.off 10 bit IN FALSE halui.program.optional-stop.on 10 bit IN FALSE halui.program.pause 10 bit IN FALSE halui.program.resume 10 bit IN FALSE halui.program.run 10 bit IN FALSE halui.program.step 10 bit IN FALSE halui.program.stop 10 bit IN TRUE halui.rapid-override.count-enable 10 s32 IN 0 halui.rapid-override.counts 10 bit IN FALSE halui.rapid-override.decrease 10 bit IN FALSE halui.rapid-override.direct-value 10 bit IN FALSE halui.rapid-override.increase 10 bit IN FALSE halui.rapid-override.reset 10 float IN 0.1 halui.rapid-override.scale 10 float OUT 1 halui.rapid-override.value 10 bit OUT TRUE halui.spindle.0.brake-is-on 10 bit IN FALSE halui.spindle.0.brake-off 10 bit IN FALSE halui.spindle.0.brake-on 10 bit IN FALSE halui.spindle.0.decrease 10 bit IN FALSE halui.spindle.0.forward 10 bit IN FALSE halui.spindle.0.increase 10 bit OUT FALSE halui.spindle.0.is-on 10 bit IN TRUE halui.spindle.0.override.count-enable 10 s32 IN 0 halui.spindle.0.override.counts 10 bit IN FALSE halui.spindle.0.override.decrease 10 bit IN FALSE halui.spindle.0.override.direct-value 10 bit IN FALSE halui.spindle.0.override.increase 10 bit IN FALSE halui.spindle.0.override.reset 10 float IN 0.1 halui.spindle.0.override.scale 10 float OUT 1 halui.spindle.0.override.value 10 bit IN FALSE halui.spindle.0.reverse 10 bit OUT FALSE halui.spindle.0.runs-backward 10 bit OUT FALSE halui.spindle.0.runs-forward 10 bit IN FALSE halui.spindle.0.start 10 bit IN FALSE halui.spindle.0.stop 10 float OUT 0 halui.tool.diameter 10 float OUT 0 halui.tool.length_offset.a 10 float OUT 0 halui.tool.length_offset.b 10 float OUT 0 halui.tool.length_offset.c 10 float OUT 0 halui.tool.length_offset.u 10 float OUT 0 halui.tool.length_offset.v 10 float OUT 0 halui.tool.length_offset.w 10 float OUT 0 halui.tool.length_offset.x 10 float OUT 0 halui.tool.length_offset.y 10 float OUT 0 halui.tool.length_offset.z 10 u32 OUT 0x00000000 halui.tool.number

Please Log in to join the conversation.

More
1 year 1 month ago #334278 by Aciera
I gather that the 'XZ' config is the one that works, still seems odd that this would create the whole set of 'halui.axis.[x,y,z,a,b,c,u,v,w].*' pins instead of just the expected X and Z axes.

[edit]
Just checked the usual 'axis.ini' on master and it looks like halui creates 'axis' pins for all nine axes even if only 'X', 'Y' and 'Z' are configured. That does not look right to me. Not sure if that is related to the issue at hand though.
 

Attachment not found



[edit2]
changing this section:
github.com/LinuxCNC/linuxcnc/blob/master...r_intf/halui.cc#L873

to this avoids the creation of pins for unconfigured axes:
Code:
    for (axis_num = 0; axis_num < EMCMOT_MAX_AXIS; axis_num++) {         if ( !(axis_mask & (1 << axis_num)) ) { continue; }         char c = "xyzabcuvw"[axis_num];         retval =  hal_pin_bit_newf(HAL_IN, &(halui_data->axis_nr_select[axis_num]), comp_id, "halui.axis.%c.select", c);         if (retval < 0) return retval;         retval =  hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_plus[axis_num]), comp_id, "halui.axis.%c.plus", c);         if (retval < 0) return retval;         retval =  hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_minus[axis_num]), comp_id, "halui.axis.%c.minus", c);         if (retval < 0) return retval;         retval =  hal_pin_float_newf(HAL_IN, &(halui_data->ajog_analog[axis_num]), comp_id, "halui.axis.%c.analog", c);         if (retval < 0) return retval;         retval =  hal_pin_float_newf(HAL_IN, &(halui_data->ajog_increment[axis_num]), comp_id, "halui.axis.%c.increment", c);         if (retval < 0) return retval;         retval =  hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_plus[axis_num]), comp_id, "halui.axis.%c.increment-plus", c);         if (retval < 0) return retval;         retval =  hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_minus[axis_num]), comp_id, "halui.axis.%c.increment-minus", c);         if (retval < 0) return retval;     }

This seems not related to the issue discussed here though.

Please Log in to join the conversation.

More
1 year 1 month ago #334282 by JT
Yes, XZ does create the mdi pin and AZ does not.

JT

Please Log in to join the conversation.

More
1 year 1 month ago #334284 by Aciera
Another test:
AX works :
Warning: Spoiler!




While AZ does not:

Warning: Spoiler!


YZ also doesn't work:
Warning: Spoiler!

 

Please Log in to join the conversation.

More
1 year 1 month ago #334286 by Aciera
It seems to fail here:
github.com/LinuxCNC/linuxcnc/blob/master...r_intf/halui.cc#L710

Code:
    *halui_data->axis_is_selected[0] = 1;


Not sure but it looks like this line fails if there is no 'X' axis configured as it wants to maybe select the first item in the list [x,y,z,a,b,c,u,v,w]?

Please Log in to join the conversation.

Time to create page: 0.068 seconds
Powered by Kunena Forum