usinf identical JoyStick hardware boards and loadusr

More
4 years 11 months ago #228008 by ikkuh
Having two DragonRise USB joystick adapters to add some buttons to LinuxCNC.

Lots of troubles to get them both working at the same time. Documentation  mentions that when two devices have the same name adding a :0 or :1 would make them work.
But I can't get it to work at all. There is always just one pins.input.0 I expected that there would be another as pins.input.1

hal file

  loadusr -W hal_input -KRAL 14.0-1.2:0 -n Dragon:0 -d
  loadusr  -W hal_input -KRAL 14.0-1.3.1:1 -n Dragon:1 -d

LinuxCNC startup message

note: name is 'DragonRise Inc.   Generic   USB  Joystick  '
note: name is 'DragonRise Inc.   Generic   USB  Joystick  '
[QTvcp][INFO]  postgui commands: None (qtvcp:399)
[QTvcp][INFO]  Preference path: /home/cnc/linuxcnc/configs/qt/qtdragon.pref (qtvcp:378)
HAL: ERROR: duplicate component name 'hal_input'
Traceback (most recent call last):
  File "/usr/bin/hal_input", line 215, in <module>
    h = component("hal_input")
hal.error: Invalid argument


less /proc/bus/input/devices

I: Bus=0003 Vendor=0079 Product=0006 Version=0110
N: Name="DragonRise Inc.   Generic   USB  Joystick  "
P: Phys=usb-0000:00:14.0-1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:0079:0006.000D/input/input26
U: Uniq=
H: Handlers=event13 js0
B: PROP=0
B: EV=20001b
B: KEY=fff00000000 0 0 0 0
B: ABS=3002f
B: MSC=10
B: FF=107030000 0

I: Bus=0003 Vendor=0079 Product=0006 Version=0110
N: Name="DragonRise Inc.   Generic   USB  Joystick  "
P: Phys=usb-0000:00:14.0-1.3.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/0003:0079:0006.000E/input/input27
U: Uniq=
H: Handlers=event14 js1
B: PROP=0
B: EV=20001b
B: KEY=fff00000000 0 0 0 0
B: ABS=3002f
B: MSC=10
B: FF=107030000 0


linuxcnc.org/docs/html/man/man1/hal_inpu...NPUT%20SPECIFICATION
When several devices are identified by the same string, add ":N" where N is the index of the desired device. For example, if Mouse matches input3 and input10, then Mouse and Mouse:0 select input3. Specifying mouse:1 selects input10.


Another attempt:
hal file

  loadusr -W hal_input -KRAL  -n Dragon:0 -d
  loadusr  -W hal_input -KRAL  -n Dragon:1 -d

LinuxCNC startup messages

note: name is 'DragonRise Inc.   Generic   USB  Joystick  '
buttons.hal:8: Pin 'input.0.btn-thumb2' does not exist
HAL: ERROR: duplicate component name 'hal_input'
Traceback (most recent call last):
  File "/usr/bin/hal_input", line 215, in <module>
    h = component("hal_input")
hal.error: Invalid argument
Shutting down and cleaning up LinuxCNC...


 

Please Log in to join the conversation.

More
4 years 11 months ago #228019 by andypugh
You can only "loadusr" the component once.

If hal_input supports multiple joysticks (and it might) then you would need to specify both in the same loadusr command. Something like:

loadusr -W hal_input -KRAL -n Dragon:0 -n Dragon:1 -d

It might take some experimentation to see what works.

Please Log in to join the conversation.

More
4 years 11 months ago #228026 by ikkuh

You can only "loadusr" the component once.

If hal_input supports multiple joysticks (and it might) then you would need to specify both in the same loadusr command. Something like:

loadusr -W hal_input -KRAL -n Dragon:0 -n Dragon:1 -d

It might take some experimentation to see what works.
 
Thanks, but as soon as I use the -n and name the component the pins.input.0 disapears. As soon as I remove the -n the pins show up again (for a single instance of the component).

Maybe the joystick thingy doesn't support two or more joysticks.

Please Log in to join the conversation.

More
4 years 11 months ago #228028 by ikkuh
Should work if dev consists of more then one component.

master/src/hal/user_comps/hal_input.py

fds = [dev.device.fileno() for dev in d]
try:
while 1:
select.select(fds, , , .01)
for i in d:
i.update()
w.drive()

Please Log in to join the conversation.

More
4 years 10 months ago #228114 by andypugh
I am not clear if you need one, two or zero -n commands.

I can't really test, as I don't have even one joypad.

Can you follow the logic of the argument parsing well enough to add some "print" statements to see what it is seeing?

Please Log in to join the conversation.

More
4 years 10 months ago #228115 by ikkuh

I am not clear if you need one, two or zero -n commands.

I can't really test, as I don't have even one joypad.

Can you follow the logic of the argument parsing well enough to add some "print" statements to see what it is seeing?
 
Been trying to find out what is happening and why the multiple cards can not be selected. Kinda debugging with print statements I guess. Spend already a lot of time on this, have to do some proper work now. If I find out anything I will post it here.

The cards are very cheap, I paid 10 euro's for 15 inputs. www.amazon.com/s?k=arcade+usb+encoder&sp...cade+usb%2Caps%2C243
Nice cheap way to add hardware buttons to a LinuxCNC installation.

Please Log in to join the conversation.

Time to create page: 0.095 seconds
Powered by Kunena Forum