XHC-WHB04B-6 LinuxCNC not working

More
23 Apr 2020 10:52 - 23 Apr 2020 18:13 #165212 by StormBP
Hi,

i have a problem to with my new XHC-WHB04B-4. Mayby anyone is able to help me.
I did the following steps:

i compiled:

git clone github.com/LinuxCNC/linuxcnc linuxcnc-dev
cd linuxcnc-dev
cd src
./autogen.sh
./configure --with-realtime=uspace
make
sudo make setuid

with no errors.

than copy the BIN-File XHC-WHB04B-6
from /linuxcnc-dev/bin/
to /usr/bin/

I make a rule. in etc/udev/rules.d/
ATTR{idProduct}=="eb93", ATTR{idVendor}=="10ce", MODE="0666", OWNER="root", GROUP="plugdev"

Than I run halrun in Terminal:

loadusr xhc-whb04b-4
....nothing happens...
only on the display from mpg switch all coordinates to zero...

If i run:

loadusr xhc-whb04b-4 -ec


then following message appeared in the terminall:

transmission failed, try to reconnect ...
transmission failed, try to reconnect ...
xhc-whb04b-6: hal/user_comps/xhc-whb04b-6/xhc-whb04b6.cc:526: void XhcWhb04b6::XhcWhb04b6Component::process(): Assertion `(0 == r) || (r == LIBUSB_ERROR_NO_DEVICE)' failed.

But if i press some buttons or twist the encoderwheel than comes some datas..

My problem ist thet LinuxCNC dont start. Debug information in attachment

File Attachment:

File Name: SiegCNC_20...4-23.hal
File Size:12 KB

File Attachment:

File Name: SiegCNC_20...4-23.ini
File Size:5 KB

File Attachment:

File Name: xhc-whb04b-6.hal
File Size:13 KB


Anyone a idea?

Debian Wheezy 3.4-9-rtai-686
LinuxCNC 2.9.0-pre0-1427
Attachments:
Last edit: 23 Apr 2020 18:13 by StormBP.

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

More
25 Apr 2020 22:27 #165583 by alkabal
Hi

You use Run in place or buildbot instal ?

Have you try to do : sudo chmod +x /usr/bin/xhc-whb04b-6 ?

Have you try to see what report lsusb ?

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

More
26 Apr 2020 14:55 #165668 by StormBP
Hi,

i use buildbot instal.
I try:
sudo chmod +x /usr/bin/xhc-whb04b-6
but nothing happend.

lsusb list the dongel with the right adress:
Bus 002 Device 003: ID 10ce:eb93 Silicon Labs

I guess somehow the access rigth are not right. But im not sure. My linux skills are very low.
It amazes me that with the command "loadusr xhc-whb04b-6" nothing happend but if i run "loadusr xhc-whb04b-6 -ec" than data are transmit.

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

More
26 Apr 2020 20:35 #165694 by alkabal
If you use fres buildbot you don't need to compil driver yourself (already included)

Maybee they are conflict with ~./source/bin and /usr/bin
you can try to open 2 terminal :
first :
halrun
loadusr -W xhc-whb04b-6 -Hsf

second :
watch -n0.4 halcmd show pin whb.*

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

More
28 Apr 2020 10:11 #165940 by StormBP
nothing happends with
loadusr -W xhc-whb04b-6 -Hsf. No chance.

I installed buildbot new. Now with stretch not wheezy. I used the included driver.
and it works with:
halrun
loadusr -W xhc-whb04b-6 -Hsf
exclude the handwheel.
LinuxCNC starts.
The buttons have a function, exclude the handwheel.
The following user(s) said Thank You: Catch22

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

More
28 Apr 2020 10:32 #165946 by alkabal
You need to push Step or Con for mpg selection

default mode is feedrate override

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

More
28 Apr 2020 20:12 #166006 by StormBP
Oh yes!
Now i have a MPG.
Thank you alkabal for you asistance!

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

More
04 May 2020 21:43 #166682 by Diederik
Thank you very much. This was very helpfull.
It would be great if all this could be automated somehow, or included standard in linuxcnc. I followed all these steps, and it works, but now, I need to do a few more machines, and this process takes very long, and a lot of steps.

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

More
04 May 2020 23:18 - 30 Jun 2020 21:18 #166691 by alkabal
Hi

The driver is now integrated in 2.8 and 2.9

I think the job is done for only needed to do with a buildbot instal :
Add the exemple hal file in your config folder (use exemple from src folder on github rename as you want and add the named file in your ini HAL section + add the correspondent MDI command)

Unfortunatly the file does not display correctly on the github viewer but open this one on your linux computer should work fine
github.com/LinuxCNC/linuxcnc/tree/master...r_comps/xhc-whb04b-6

help inside the exemple file :
#//////////////////////////////////////////////////////////////////////////
### Example edit your ini and add :
#
#[HAL]
#HALFILE = <your-machine-hal>.hal
#HALFILE = xhc-whb04b-6.hal
#
## This section is for button mapping, you need to create for your own use.
#[HALUI]
#MDI_COMMAND=(debug,macro0)
#MDI_COMMAND=(debug,macro1)
#MDI_COMMAND=(debug,macro2)
#MDI_COMMAND=(debug,macro3)
#MDI_COMMAND=(debug,macro4)
#MDI_COMMAND=(debug,macro5)
#MDI_COMMAND=(debug,macro6)
#MDI_COMMAND=(debug,macro7)
#MDI_COMMAND=(debug,macro8)
#MDI_COMMAND=(debug,macro9)
#MDI_COMMAND=(debug,macro10)
#MDI_COMMAND=(debug,macro11)
#MDI_COMMAND=(debug,macro12)
#MDI_COMMAND=(debug,macro13)
#MDI_COMMAND=(debug,macro14)
#MDI_COMMAND=(debug,macro15)
#MDI_COMMAND=(debug,macro16)

The rest of the file is the HAL file and is ready to use with comon setup (i hope)

I suggest to all to not use this exemple but use the file from github !
# ######################################################################
# load pendant components
# ######################################################################

loadusr -W xhc-whb04b-6 -HsfB

# ######################################################################
# pendant signal configuration
# ######################################################################

# On/Off signals
net machine.is-on                         halui.machine.is-on                   whb.halui.machine.is-on
net pdnt.machine.on                       whb.halui.machine.on                  halui.machine.on
net pdnt.machine.off                      whb.halui.machine.off                 halui.machine.off

# program related signals
net pdnt.program.is-idle                  whb.halui.program.is-idle             halui.program.is-idle
net pdnt.program.is-paused                whb.halui.program.is-paused           halui.program.is-paused
net pdnt.program-is-running               whb.halui.program.is-running          halui.program.is-running
net pdnt.program.resume                   whb.halui.program.resume              halui.program.resume
net pdnt.program.pause                    whb.halui.program.pause               halui.program.pause
net pdnt.program.run                      whb.halui.program.run                 halui.program.run
net pdnt.program.stop                     whb.halui.program.stop                halui.program.stop

# machine mode related signals
net pdnt.mode.auto                        whb.halui.mode.auto                   halui.mode.auto
net pdnt.mode.manual                      whb.halui.mode.manual                 halui.mode.manual
net pdnt.mode.mdi                         whb.halui.mode.mdi                    halui.mode.mdi
net pdnt.mode.joint                       whb.halui.mode.joint                  halui.mode.joint
net pdnt.mode.teleop                      whb.halui.mode.teleop                 halui.mode.teleop
net pdnt.mode.is-auto                     halui.mode.is-auto                    whb.halui.mode.is-auto
net pdnt.mode.is-manual                   halui.mode.is-manual                  whb.halui.mode.is-manual
net pdnt.mode.is-mdi                      halui.mode.is-mdi                     whb.halui.mode.is-mdi
net pdnt.mode.is-joint                    halui.mode.is-joint                   whb.halui.mode.is-joint
net pdnt.mode.is-teleop                   halui.mode.is-teleop                  whb.halui.mode.is-teleop


# "selected axis" signals
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.jog-scale                 whb.axis.x.jog-scale                  axis.x.jog-scale
net pdnt.axis.y.jog-scale                 whb.axis.y.jog-scale                  axis.y.jog-scale
net pdnt.axis.z.jog-scale                 whb.axis.z.jog-scale                  axis.z.jog-scale

net pdnt.axis.x.jog-counts                whb.axis.x.jog-counts                 axis.x.jog-counts
net pdnt.axis.y.jog-counts                whb.axis.y.jog-counts                 axis.y.jog-counts
net pdnt.axis.z.jog-counts                whb.axis.z.jog-counts                 axis.z.jog-counts

net pdnt.axis.x.jog-enable                whb.axis.x.jog-enable                 axis.x.jog-enable
net pdnt.axis.y.jog-enable                whb.axis.y.jog-enable                 axis.y.jog-enable
net pdnt.axis.z.jog-enable                whb.axis.z.jog-enable                 axis.z.jog-enable

net pdnt.axis.x.jog-vel-mode              whb.axis.x.jog-vel-mode               axis.x.jog-vel-mode
net pdnt.axis.y.jog-vel-mode              whb.axis.y.jog-vel-mode               axis.y.jog-vel-mode
net pdnt.axis.z.jog-vel-mode              whb.axis.z.jog-vel-mode               axis.z.jog-vel-mode


# macro buttons to MDI commands
net pdnt.macro-1                          whb.button.macro-1                    halui.mdi-command-01             # use MDI command from main.ini
net pdnt.macro-2                          whb.button.macro-2                    halui.mdi-command-02             # use MDI command from main.ini or used for Hardcoded lube on/off
net pdnt.reserved.for.spindle+            whb.button.macro-3                                                     # Hardcoded for spindle+ whb.halui.spindle.increase
net pdnt.reserved.for.spindle-            whb.button.macro-4                                                     # Hardcoded for spindle- whb.halui.spindle.decrease
net pdnt.macro-5                          whb.button.macro-5                    halui.mdi-command-05             # use MDI command from main.ini
net pdnt.macro-6                          whb.button.macro-6                    halui.mdi-command-06             # use MDI command from main.ini
net pdnt.macro-7                          whb.button.macro-7                    halui.mdi-command-07             # use MDI command from main.ini
net pdnt.reserved.for.spindle.dir         whb.button.macro-8                                                     # Hardcoded for spindle direction inside pendant
net pdnt.macro-9                          whb.button.macro-9                    halui.mdi-command-09             # use MDI command from main.ini
net pdnt.reserved.for.ABS-REL             whb.button.macro-10                                                    # Hardcoded for swap Dro  Relative/Absolue
net pdnt.macro-14                         whb.button.macro-14                   halui.mdi-command-14             # use MDI command from main.ini
net pdnt.reserved.for.flood               whb.button.macro-15                                                    # Hardcoded for halui.flood on/off
net pdnt.reserved.for.mist                whb.button.macro-16                                                    # Hardcoded for halui.mist on/off

net pdnt.macro.11                         whb.button.macro-11                   halui.mdi-command-11             # use MDI command from main.ini
net pdnt.macro.12                         whb.button.macro-12                   halui.mdi-command-12             # use MDI command from main.ini
net pdnt.macro.13                         whb.button.macro-13                   halui.mdi-command-13             # use MDI command from main.ini


# flood and mist toggle signals
net  pdnt.flood.is-on                     whb.halui.flood.is-on                 halui.flood.is-on                #return signal is on or off
net  pdnt.flood.off                       whb.halui.flood.off                   halui.flood.off                  #reserved whb.button.macro-15
net  pdnt.flood.on                        whb.halui.flood.on                    halui.flood.on                   #reserved whb.button.macro-15

net  pdnt.mist.is-on                      whb.halui.mist.is-on                  halui.mist.is-on                 #return signal is on or off
net  pdnt.mist.off                        whb.halui.mist.off                    halui.mist.off                   #reserved whb.button.macro-16
net  pdnt.mist.on                         whb.halui.mist.on                     halui.mist.on                    #reserved whb.button.macro-16

#net  pdnt.lube.is-on                      whb.halui.lube.is-on                  halui.lube.is-on                 #return signal is on or off
#net  pdnt.lube.off                        whb.halui.lube.off                    halui.lube.off                   #reserved whb.button.macro-2
#net  pdnt.lube.on                         whb.halui.lube.on                     halui.lube.on                    #reserved whb.button.macro-2


# default function button signals
net pdnt.button.m-home                    whb.button.m-home                     halui.home-all                   # Homing use built-in halui home all
net pdnt.button.safe-z                    whb.button.safe-z                     halui.mdi-command-03             # Safe-z  use MDI command from main.ini
net pdnt.button.w-home                    whb.button.w-home                     halui.mdi-command-04             # Unpark  use MDI command from main.ini
net pdnt.button.probe-z                   whb.button.probe-z                    halui.mdi-command-08             # Probe-Z use MDI command from main.ini


# unused, just exposes pendant internal status or as basic button
#net pdnt.mode-lead                        whb.halui.feed.selected-lead
#net pdnt.mode-mpg-feed                    whb.halui.feed.selected-mpg-feed
#net pdnt.mode-continuous                  whb.halui.feed.selected-continuous
#net pdnt.mode-step                        whb.halui.feed.selected-step

#net pdnt.button.mode-mpg                  whb.button.mode-continuous
#net pdnt.button.mode-step                 whb.button.mode-step
#net pdnt.button.fn                        whb.button.fn
#net pdnt.button.reset                     whb.button.reset
#net pdnt.button.stop                      whb.button.stop
#net pdnt.button.start-pause               whb.button.start-pause
#net pdnt.button.s-on-off                  whb.button.s-on-off
#net pdnt.button.spindle-plus              whb.button.spindle-plus
#net pdnt.button.spindle-minus             whb.button.spindle-minus
#net pdnt.button.feed-plus                 whb.button.feed-plus
#net pdnt.button.feed-minus                whb.button.feed-minus


# spindle related signals
net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
net pdnt.spindle.start                    whb.halui.spindle.start               halui.spindle.0.start
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.increase                 whb.halui.spindle.increase            halui.spindle.0.increase         # reserved whb.button.macro-3
net pdnt.spindle.decrease                 whb.halui.spindle.decrease            halui.spindle.0.decrease         # reserved whb.button.macro-4
net pdnt.spindle-speed-abs                whb.halui.spindle-speed-cmd           spindle.0.speed-out-abs          # speed cmd from motion in rpm absolue


# spindle speed override signals
net pdnt.spindle-override.scale           whb.halui.spindle-override.scale      halui.spindle.0.override.scale   # needed for both spindle+/- and spindleoverride+/- button
net pdnt.spindle.override.value           halui.spindle.0.override.value        whb.halui.spindle-override.value # GUI feed rate related signals
net pdnt.spindle.override.increase        whb.halui.spindle-override.increase   halui.spindle.0.override.increase
net pdnt.spindle.override.decrease        whb.halui.spindle-override.decrease   halui.spindle.0.override.decrease


# GUI feed rate related signals can be used when program is running moving GUI slider
net pdnt.feed-override.scale              whb.halui.feed-override.scale         halui.feed-override.scale        # needed for both FeedOverride+/- and rotary knob button
net pdnt.max-velocity.value               whb.halui.max-velocity.value          halui.max-velocity.value         # needed for Mpg mode : button feed position% * max-velocity = Mpg feedrate


# take feed override min/max values from/to the GUI
net pdnt.feed-override.value              halui.feed-override.value             whb.halui.feed-override.value    # GUI feed rate related signals
net pdnt.feed-override.increase           whb.halui.feed-override.increase      halui.feed-override.increase
net pdnt.feed-override.decrease           whb.halui.feed-override.decrease      halui.feed-override.decrease


# axis position related signals feedback
net pdnt.axis.x.pos-feedback              halui.axis.x.pos-feedback             whb.halui.axis.x.pos-feedback
net pdnt.axis.y.pos-feedback              halui.axis.y.pos-feedback             whb.halui.axis.y.pos-feedback
net pdnt.axis.z.pos-feedback              halui.axis.z.pos-feedback             whb.halui.axis.z.pos-feedback


# axis position related signals relative
net pdnt.axis.x.pos-relative              halui.axis.x.pos-relative             whb.halui.axis.x.pos-relative
net pdnt.axis.y.pos-relative              halui.axis.y.pos-relative             whb.halui.axis.y.pos-relative
net pdnt.axis.z.pos-relative              halui.axis.z.pos-relative             whb.halui.axis.z.pos-relative

I suggest to all to not use this exemple but use the file from github !

The exemple file is for 3 axis ! if you need to use with Lathe you need to edit and remove Y relevant line
If you need to use 4 axis or more you need to copy past and edit for put the other axes.
I have do some effort for make a ready to use exemple file but everybody are welcome for enhance this driver.

Br


Ps : if you are able to do this, i think your welcome for add this to stepconf and pnconf :laugh: :laugh:


Edit if you have some difficulty, please try to use this post :
forum.linuxcnc.org/38-general-linuxcnc-q...king?start=90#164533
Last edit: 30 Jun 2020 21:18 by alkabal.
The following user(s) said Thank You: MrFouFou

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

More
06 May 2020 19:51 #166887 by MrFouFou
Many thanks alkabal, my pendant is now working !

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

Time to create page: 0.131 seconds
Powered by Kunena Forum