Working config for xhc-whb04b-4 pendant

More
12 Feb 2022 18:02 #234652 by eriksalo
I had some trouble getting my "new generation" of wireless pendant to work in LinuxCNC.  Here's what I did to make it work:

1) I've had the "old" version pendant (an xhc-hb04) for years and it works great.  I did a new LinuxCNC build for a friends Bridgeport and though it would be good to upgrade to the "newer" pendant for that build.  The build went great but I could not get the pendant to work.

2) I initially tried to use the same config for the WHB that I used for the HB but it didn't work.  I found the LInuxCNC MAN page for the WHB model but that didn't work either.  Well, it did work but it took me time to figure out what to delete, etc.

3) At the end of the day, you need to do two simple things to make the WHB pendant work: 

3a) Modify you main .ini file with the following additions.  Note that the MDI commands for the Macros in the "HALUI" section are my custom additions.  I programmed Macros to zero x, y and z plus macros for 1/2 x and y.

[HAL]

HALFILE = xhc-whb04b-6.hal
HALUI = halui

[HALUI]
    MDI_COMMAND=(DEBUG,<1>)
    MDI_COMMAND=G10 L20 P0 X[#<_x>/2.0]
    MDI_COMMAND=G10 L20 P0 Y[#<_y>/2.0]
    MDI_COMMAND=(DEBUG,<4>)
    MDI_COMMAND=(DEBUG,<5>)
    MDI_COMMAND=G10 L20 P0 X0
    MDI_COMMAND=G10 L20 P0 Y0
    MDI_COMMAND=G10 L20 P0 Z0
    MDI_COMMAND=(DEBUG,<5>)
    MDI_COMMAND=(DEBUG,<9>)
    MDI_COMMAND=(DEBUG,<10>)
    MDI_COMMAND=(DEBUG,<2>)
    MDI_COMMAND=(DEBUG,<12>)
    MDI_COMMAND=(DEBUG,<13>)
    MDI_COMMAND=(DEBUG,<14>)

3b) Put the attached xhc-whb04b-6.hal file in the same directory as you other ini files.  Note that I have a xhc-whb04b-4 but the config and driver for the -6 work just fine

Just like everything linuxcnc (for me), it seemed impossible and took me countless tries to make it work.  In the end, when it's done and working I look back and it was amazing simple.

I'll link to a short youtube video to help others with this "hard but simple" procedure.

Erik
 
Attachments:
The following user(s) said Thank You: keyboard, ChironFZ16, Dbsharp, smc.collins, H2B

Please Log in or Create an account to join the conversation.

More
12 Feb 2022 18:53 #234655 by eriksalo
Here's a related youtube video:

The following user(s) said Thank You: tommylight, keyboard, H2B, zmrdko

Please Log in or Create an account to join the conversation.

More
15 Mar 2022 14:02 #237326 by belli
Hi Erik,

Was the -A version running on a 2.7 or less version of LCNC and the -B version on 2.8 or later?

Please Log in or Create an account to join the conversation.

More
29 May 2022 16:45 #244136 by eriksalo
Thanks for your question, yes. The early pendant was a couple of years ago prior to the 2.8 release. The new pendant was on 2.8

Please Log in or Create an account to join the conversation.

More
11 Jun 2022 01:44 #244924 by shanham67
Eric,

Thank you for the effort you put into this. I am hoping you can point me in the right direction. I commented out the lines indicated by the 'diff' below in the xhc-whb04b-6.hal file you provided in order to get Axis up and running.
These buttons work:
Working:
RESET
* Stop
* Start/Pause
* Feed+
* Feed-
* Spindle+
* Spindle-
* S-ON/OFF

These do not:
* Select Axis knob
* Hand wheel

If i 'un-comment' the
whb.halui.axis.x.select line I get the following startup error:
./xhc-whb04-6.hal:45: Pin 'halui.axis.x.select' was already linked to signal 'axis-select-x'
[code]cncuser@bridgeport1:~/linuxcnc/configs/my_LinuxCNC_machine$ diff xhc-whb04b-6.hal xhc-whb04b-6.hal--as-downloaded-from-erics-linux-forum-post
14c14
< #net machine.is-on                         halui.machine.is-on                   whb.halui.machine.is-on
---
> net machine.is-on                         halui.machine.is-on                   whb.halui.machine.is-on
35c35
< #net pdnt.mode.is-mdi                      halui.mode.is-mdi                     whb.halui.mode.is-mdi
---
> net pdnt.mode.is-mdi                      halui.mode.is-mdi                     whb.halui.mode.is-mdi
40,42c40,42
< #net pdnt.axis.X.is-homed                  halui.joint.0.is-homed                whb.halui.joint.x.is-homed
< #net pdnt.axis.Y.is-homed                  halui.joint.1.is-homed                whb.halui.joint.y.is-homed
< #net pdnt.axis.Z.is-homed                  halui.joint.2.is-homed                whb.halui.joint.z.is-homed
---
> net pdnt.axis.X.is-homed                  halui.joint.0.is-homed                whb.halui.joint.x.is-homed
> net pdnt.axis.Y.is-homed                  halui.joint.1.is-homed                whb.halui.joint.y.is-homed
> net pdnt.axis.Z.is-homed                  halui.joint.2.is-homed                whb.halui.joint.z.is-homed
45,47c45,47
< #net pdnt.axis.X.select                    whb.halui.axis.x.select               halui.axis.x.select
< #net pdnt.axis.y.select                    whb.halui.axis.y.select               halui.axis.y.select
< #net pdnt.axis.Z.select                    whb.halui.axis.z.select               halui.axis.z.select
---
> net pdnt.axis.X.select                    whb.halui.axis.x.select               halui.axis.x.select
> net pdnt.axis.y.select                    whb.halui.axis.y.select               halui.axis.y.select
> net pdnt.axis.Z.select                    whb.halui.axis.z.select               halui.axis.z.select
101c101
< #net pdnt.button.m-home                    whb.button.m-home                     halui.home-all                   # Homing use built-in halui home all
---
> net pdnt.button.m-home                    whb.button.m-home                     halui.home-all                   # Homing use built-in halui home all
127,128c127
< #net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
< #net pdnt.spindle.is-on                    whb.halui.spindle.is-on
---
> net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
130,132c129,131
< #net pdnt.spindle.stop                     whb.halui.spindle.stop                halui.spindle.0.stop
< #net pdnt.spindle.forward                  whb.halui.spindle.forward             halui.spindle.0.forward
< #net pdnt.spindle.reverse                  whb.halui.spindle.reverse             halui.spindle.0.reverse
---
> net pdnt.spindle.stop                     whb.halui.spindle.stop                halui.spindle.0.stop
> net pdnt.spindle.forward                  whb.halui.spindle.forward             halui.spindle.0.forward
> net pdnt.spindle.reverse                  whb.halui.spindle.reverse             halui.spindle.0.reverse
135c134
< #net pdnt.spindle-speed-abs                whb.halui.spindle-speed-cmd           spindle.0.speed-out-abs          # speed cmd from motion in rpm absolue
---
> net pdnt.spindle-speed-abs                whb.halui.spindle-speed-cmd           spindle.0.speed-out-abs          # speed cmd from motion in rpm absolue
[/code]

Thanks again.


~

Please Log in or Create an account to join the conversation.

More
10 Nov 2022 23:59 #256393 by smc.collins

Eric,

Thank you for the effort you put into this. I am hoping you can point me in the right direction. I commented out the lines indicated by the 'diff' below in the xhc-whb04b-6.hal file you provided in order to get Axis up and running.
These buttons work:
Working:
RESET
* Stop
* Start/Pause
* Feed+
* Feed-
* Spindle+
* Spindle-
* S-ON/OFF

These do not:
* Select Axis knob
* Hand wheel

If i 'un-comment' the [code]whb.halui.axis.x.select line I get the following startup error:
./xhc-whb04-6.hal:45: Pin 'halui.axis.x.select' was already linked to signal 'axis-select-x'


[code][code]cncuser@bridgeport1:~/linuxcnc/configs/my_LinuxCNC_machine$ diff xhc-whb04b-6.hal xhc-whb04b-6.hal--as-downloaded-from-erics-linux-forum-post
14c14
< #net machine.is-on                         halui.machine.is-on                   whb.halui.machine.is-on
---
> net machine.is-on                         halui.machine.is-on                   whb.halui.machine.is-on
35c35
< #net pdnt.mode.is-mdi                      halui.mode.is-mdi                     whb.halui.mode.is-mdi
---
> net pdnt.mode.is-mdi                      halui.mode.is-mdi                     whb.halui.mode.is-mdi
40,42c40,42
< #net pdnt.axis.X.is-homed                  halui.joint.0.is-homed                whb.halui.joint.x.is-homed
< #net pdnt.axis.Y.is-homed                  halui.joint.1.is-homed                whb.halui.joint.y.is-homed
< #net pdnt.axis.Z.is-homed                  halui.joint.2.is-homed                whb.halui.joint.z.is-homed
---
> net pdnt.axis.X.is-homed                  halui.joint.0.is-homed                whb.halui.joint.x.is-homed
> net pdnt.axis.Y.is-homed                  halui.joint.1.is-homed                whb.halui.joint.y.is-homed
> net pdnt.axis.Z.is-homed                  halui.joint.2.is-homed                whb.halui.joint.z.is-homed
45,47c45,47
< #net pdnt.axis.X.select                    whb.halui.axis.x.select               halui.axis.x.select
< #net pdnt.axis.y.select                    whb.halui.axis.y.select               halui.axis.y.select
< #net pdnt.axis.Z.select                    whb.halui.axis.z.select               halui.axis.z.select
---
> net pdnt.axis.X.select                    whb.halui.axis.x.select               halui.axis.x.select
> net pdnt.axis.y.select                    whb.halui.axis.y.select               halui.axis.y.select
> net pdnt.axis.Z.select                    whb.halui.axis.z.select               halui.axis.z.select
101c101
< #net pdnt.button.m-home                    whb.button.m-home                     halui.home-all                   # Homing use built-in halui home all
---
> net pdnt.button.m-home                    whb.button.m-home                     halui.home-all                   # Homing use built-in halui home all
127,128c127
< #net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
< #net pdnt.spindle.is-on                    whb.halui.spindle.is-on
---
> net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
130,132c129,131
< #net pdnt.spindle.stop                     whb.halui.spindle.stop                halui.spindle.0.stop
< #net pdnt.spindle.forward                  whb.halui.spindle.forward             halui.spindle.0.forward
< #net pdnt.spindle.reverse                  whb.halui.spindle.reverse             halui.spindle.0.reverse
---
> net pdnt.spindle.stop                     whb.halui.spindle.stop                halui.spindle.0.stop
> net pdnt.spindle.forward                  whb.halui.spindle.forward             halui.spindle.0.forward
> net pdnt.spindle.reverse                  whb.halui.spindle.reverse             halui.spindle.0.reverse
135c134
< #net pdnt.spindle-speed-abs                whb.halui.spindle-speed-cmd           spindle.0.speed-out-abs          # speed cmd from motion in rpm absolue
---
> net pdnt.spindle-speed-abs                whb.halui.spindle-speed-cmd           spindle.0.speed-out-abs          # speed cmd from motion in rpm absolue


Thanks again.



[code]~
[/code][/code][/code][/code]

 



  Can you lsusb and see which hardware ID you have, I can't get my pendant to work at all. 

Please Log in or Create an account to join the conversation.

Time to create page: 0.143 seconds
Powered by Kunena Forum