XHC-WHB04B-6 LinuxCNC not working

More
6 years 6 months ago #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

Attachment not found

Attachment not found

Attachment not found



Anyone a idea?

Debian Wheezy 3.4-9-rtai-686
LinuxCNC 2.9.0-pre0-1427

Please Log in to join the conversation.

More
6 years 6 months ago #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 to join the conversation.

More
6 years 6 months ago #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 to join the conversation.

More
6 years 6 months ago #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 to join the conversation.

More
6 years 6 months ago #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.

Please Log in to join the conversation.

More
6 years 6 months ago #165946 by alkabal
You need to push Step or Con for mpg selection

default mode is feedrate override

Please Log in to join the conversation.

More
6 years 6 months ago #166006 by StormBP
Oh yes!
Now i have a MPG.
Thank you alkabal for you asistance!

Please Log in to join the conversation.

More
6 years 5 months ago #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 to join the conversation.

More
6 years 5 months ago #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 :
Code:
#////////////////////////////////////////////////////////////////////////// ### 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 !
Code:
# ###################################################################### # 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

Please Log in to join the conversation.

More
6 years 5 months ago #166887 by MrFouFou
Many thanks alkabal, my pendant is now working !

Please Log in to join the conversation.

Time to create page: 0.130 seconds
Powered by Kunena Forum