XHC-WHB04B-6 LinuxCNC not working

More
6 years 5 months ago - 6 years 4 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
Last edit: 6 years 4 months ago by alkabal.
The following user(s) said Thank You: MrFouFou

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

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

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

More
6 years 5 months ago - 6 years 5 months ago #168490 by 00alkskodi00
we can now only compiling linuxcnc and is working with XHC-WHB04B-6?
Last edit: 6 years 5 months ago by 00alkskodi00.

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

More
6 years 5 months ago #168497 by alkabal
Yes if you check my last message for configuration this is now intergrated.

You can also use buildbot install 2.8 or 2.9 (the driver is not inside 2.7)

Br

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

More
6 years 5 months ago #168713 by TKWard10000
Im using Deb Stretch with 2.8 ( fresh install )

lsusb gives : Bus 001 Device 006: ID 10ce:eb93 Silicon Labs

Do i need to do anything additional ? Compile, change ?

Tried using sample config of linuxcnc with xhc-hb04 and keep getting this error :

"waiting for xhc-hb04 device"

Thanks
Keith

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

More
6 years 5 months ago #168720 by alkabal
xhc-hb04 and xhc-whb04b-6 are two different device !

They need different settings and driver, this topic is related to xhc-whb04b-6 and xhc-whb04b-4.

Br

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

Time to create page: 0.102 seconds
Powered by Kunena Forum