Adding a ShuttleXpress

More
26 Jul 2019 00:13 #140597 by dgarrett
Replied by dgarrett on topic Adding a ShuttleXpress
For the master branch and prerelease 2.8~pre*:

See the 'Updating LinuxCNC' docs:
Ref: linuxcnc.org/docs/master/html/getting-st...dating-linuxcnc.html
7.8. shuttlexpress driver renamed to shuttle The
HAL driver for the Contour Designs ShuttleXpress device
has been renamed from "shuttlexpress" to just
"shuttle". If your hal files include some variant of
"loadusr shuttlexpress", replace "shuttlexpress" with
"shuttle".

Support has been added for the ShuttlePRO, a bigger
version of the ShuttleXpress, so the old driver name is
no longer accurate.


Ref: linuxcnc.org/docs/master/html/getting-st...med_to_tt_shuttle_tt

Commit (Jun 14, 2016):
github.com/LinuxCNC/linuxcnc/commit/ba077f564cd6c028
The following user(s) said Thank You: JetForMe

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

More
26 Jul 2019 05:10 #140609 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress

What does "locate shuttlexpress" show?

$ locate shuttlexpress
/usr/share/doc/linuxcnc/examples/sample-configs/by_machine/scorbot-er-3/shuttlexpress-customization.hal

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

More
26 Jul 2019 05:21 - 26 Jul 2019 05:26 #140612 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress

For the master branch and prerelease 2.8~pre*:
7.8. shuttlexpress driver renamed to shuttle The
HAL driver for the Contour Designs ShuttleXpress device
has been renamed from "shuttlexpress" to just
"shuttle". If your hal files include some variant of
"loadusr shuttlexpress", replace "shuttlexpress" with
"shuttle".


That's helpful! I have that.

I tried loading it in halcmd, but I get a permissions error:
$ halcmd -f
halcmd: loadusr shuttle
halcmd: shuttle: checking /dev/hidraw0
shuttle: found Contour Design ShuttleXpress on /dev/hidraw0
shuttle: checking /dev/hidraw1
shuttle: error opening /dev/hidraw1: Permission denied
shuttle: make sure you have read permission on /dev/hidraw1, read the shuttle(1) manpage for more info
shuttle: checking /dev/hidraw2
shuttle: error opening /dev/hidraw2: Permission denied
shuttle: make sure you have read permission on /dev/hidraw2, read the shuttle(1) manpage for more info
shuttle: checking /dev/hidraw3
shuttle: error opening /dev/hidraw3: Permission denied
shuttle: make sure you have read permission on /dev/hidraw3, read the shuttle(1) manpage for more info

The man page for shuttle says "The LinuxCNC Debian package installs an appropriate udev file automatically", but I had no such file. So I created it, as per the man page instructions:

/etc/udev/rules.d/99-shuttle.rules
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05f3", ATTRS{idProduct}=="0240", MODE="0444"

I think this has worked.
Last edit: 26 Jul 2019 05:26 by JetForMe.

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

More
26 Jul 2019 06:14 #140618 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress
Okay, now that I've got LinuxCNC seeing my ShuttleXpress, I'm having trouble wiring it up. I've looked at a few configurations I've found online (the most thorough so far is this one ), but non seem to do what I'd like.

The ShuttleXpress has a number of momentary buttons, a spring-loaded ring that returns to center, and an encoder wheel you can spin. I'd like to use the buttons primarily to select the active jog axis, but halui.joint.0.sel doesn't seem to do the trick (and how do I deal with joints vs axes in joint mode or axis mode on my gantry table?).

I'd like to map the ring, which outputs an integer from -7 to 7 (or a float from -1 to 1), to arbitrary jog speeds. I can't find any kind of s32 lookup table component. I could just scale the value, but would prefer to set the values explicitly.

There's a halui jog section, including some inputs for the selected axis, but I don't see how to select an axis for jogging in halui.

There are other things I'm finding requires a lot of HAL wiring to make work, enough that I feel like I must be missing something obvious.

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

More
26 Jul 2019 07:23 #140626 by rodw
Replied by rodw on topic Adding a ShuttleXpress
There is a component called lincurve that might let you map the -1 to +1 discrete values assuming its a float. You will need a couple of steps to confer the float down to a bit.

With a gantry, I would just forget about the joint mode and live with hitting home all as you power up. Thats all I've ever done.

Regarding axis selection and jog wheels, I have an example for a 7i76e on my build thread here forum.linuxcnc.org/show-your-stuff/32029...build?start=20#85279

It has all the axis select for jogging covered. I've extended this to a 6 way selector on my pendant using a mux8 but I'm only using the first 3 for now but I thought the others might be handy for feed override or something.

Another alternative would be to use a custom component to decode your 15 integer values. It would actually be very similar to this example I shared recently forum.linuxcnc.org/plasma-laser/36410-co...are?start=140#140416 This maps a float input to 4 digital pins based on thresholds of the axis position. Very similar.

I think you could map the integer values to a 16 bit bitmap that could be used to set the discrete pins.

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

More
26 Jul 2019 08:01 #140632 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress
Would an s32/float lookup table component be generally useful? It would sure help me, and maybe it's a good way to learn to write components.

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

More
26 Jul 2019 08:09 - 26 Jul 2019 08:10 #140634 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress
Regarding joint/world modes and jogging (somewhat off-topic, sorry): I really want to be able to jog the machine before homing. I feel like it should be perfectly safe to let me jog joint 0 (x) and joint 3 (z), and I wish LinuxCNC would give me a way to jog joints 1 & 2 together before homing, or separately if I really really promise I know what I'm doing.
Last edit: 26 Jul 2019 08:10 by JetForMe.

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

More
28 Aug 2019 03:20 #143388 by randypetersen
JetForMe, how is your shuttle jogging method coming? Can I ask what version shuttle you have?

I have a Contour Design ShuttlePRO Model SP-JNS from my photo editing days, and was thinking about trying to connect it to linuxcnc. Once you got it updated, was it pretty easy to set up and use?

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

More
28 Aug 2019 21:33 #143489 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress
Alas, I haven't gotten it to work like I want (the way it works in PathPilot) yet. I've been experimenting with one from my Tormach lathe, but I bought this one (just haven't taken it out of the box yet). I got busy with other things a day or two after I posted this.

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

More
17 Jun 2020 00:51 #171891 by JetForMe
Replied by JetForMe on topic Adding a ShuttleXpress
I've finally gotten back around to trying to make this work, and I have the spring wheel working reasonably well. This makes using the router a LOT nicer. I'm happy to share the config with anyone, though it's far from perfect.

One thing I'd like to figure out how to address, and my googling is coming up short: the OS interprets the spring wheel movement as mouse wheel movement, and does things like zooming the NC preview, or scrolling windows, depending on where the mouse is pointing. I imagine there's a way to tell linux to ignore the ShuttleXpress as a general HID device, but I haven't found it.

Any ideas? Thanks!

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

Time to create page: 0.352 seconds
Powered by Kunena Forum