What's new
Thanks for info! Need to figure out some way to manage this without shooting myself in the foot trying to re-invent something.

Seems I was using the older linux joystick api, hopefully the new event api I will also use for keyboard will behave different. The issues I have are stuck buttons/axis, which is a pretty big no-no in project like this :)

Edit: Think we got a winner http://pingus.seul.org/~grumbel/xboxdrv/
Seems there is a ton of info on it, a zillion config options and it would simply things a lot if the program can expect one mapping
 
Last edited:
will the i2c be usable for the adafruit lcd cape?
All pins from the RPI are passed to the 2x20 pin header footprints, and the i2c is not used by the mini io. So while no guarantees, I can't see why the 'lcd cape' would not work, enabling people to make a relatively compact consolized naomi setup :)
 
This was addressed before but... the input lag would be no issue here, right? :)
 
The way JVS works, is that the master sends out a request for input state, and the IO board replies within about 1ms. I will hook up the logic analyzer later and check how it performs in this regards, but I'm pretty sure the "lag" will be neglbile.
 
Anyone here got a racing cab that can share some details on which analog channels go to what, which buttons are in use etc?
AD0-AD3 are for Player 1AD4-AD7 are for Player 2

In driving games, AD0 is wheel, AD1 is Gas and AD2 is brakes.

In shooting games, it's AD0 for X axis and AD1 for Y axis.

Buttons are normally mapped as joystick buttons.

What else do you need?
I've ordered a wired and wireless 360 controller, as these seem to be the 'standard'.


360 controller.png


Normal mode:
Back - coin/service
Guide - Test
Start - start
D-pad , left,right,up,down
left stick - ad0, ad1
Any games that use ad2&ad3, and would it make sense to map them to right stick?

What about button mappings, normal games button 1-6? I don't have a 360 myself, so no idea what makes most sense..

Racing mode:
left stick ad0 only (wheel)?
RIght trigger ad1 (gas)
Left trigger ad2 (brake)
?
 
What about button mappings, normal games button 1-6? I don't have a 360 myself, so no idea what makes most sense..
typically I look at fight stick mapping which would be

X = button 1
Y = button 2
LB = button 3
A = button 4
B = button 5
RB = button 6

though depending on the game the button 3 and 6 mapping could change
Some games use the LT and RT instead, some games reverse them so that LB/LT is button 6 and RB/RT is button 3
some game use RB and RT for buttons 3 and 6
If you look at the MadCatz TE fight stick vs the official Tekken fight stick you'll see that the face buttons are always mapped the same but the shoulder buttons are not.
so... yeah.

also keep in mind that on a 360 controller (and a PS3 controller) you can click the thumbsticks like a button so those are some additional buttons you can work with as well, though these often get accidentally pushed when using the analog stick so things like driving games often just use them for something like the horn button where it wont hurt gameplay if you hit it by accident.

having some way to remap might be ideal. maybe a button you can push on the device. followed by just hitting buttons 1 though 6 to map the controller however you like.
 
Gotta say I agree with deibit, the Xbox One pad is where it's at now.
It works as both a wireless controller and a wired controller by simply connecting a mini USB cable.

The wireless 360 control needs a wireless receiver, and the wireless receiver has a known hardware flaw and needs a fuse replaced every so often.
I've got two wireless receivers that both died from this fault.

Not to mention the 360 wireless receiver has been cloned about 10000x in China, only the knockoffs won't work with the official drivers... And it looks identical!
I'm sure this has been a problem for more than one unsuspecting eBay customer over the years.
 
Not to mention the 360 wireless receiver has been cloned about 10000x in China, only the knockoffs won't work with the official drivers... And it looks identical!
I've got both an original (from wayyyyyyyy back) and a knockoff, and both work fine with the official windows drivers...
o_O

I was kinda hoping for generic HID gamepad support of some sort however...
Maybe the 360 pads/wheels can get fully sorted, and the drivers can support other HID devices, but in an unsupported mode...?
 
Didn't work for me, Windows 10 x64 UEFI install.
Seems like it didn't work for a lot of others too (did you see the link I posted), I would say exception not rule.

I totally agree however open HID is a better way to go, not locked down MS.
That being said... Had you played any modern PC titles with XBONE pad?
It f33lz teh sex0r. :D
 
Last edited:
I'm not locking down anything - but rather designing for 360 I think - so that button[X]=jvs button 1

With http://pingus.seul.org/~grumbel/xboxdrv/ one should be able to take whatever hardware and remap so that desired button is [x] - it's not just for 360 controllers..

That way I don't have to make a huge profile/hardware specific/configuration thingy..
Looks like the way to go...
 
Same here - I would definitely buy at least one. The ability to use an Xbox 360 controller and especially a USB Driving Wheel (Logitech MoMo) with any JVS system would be amazing. We can also expect FFB to be utilized as well with a USB Wheel?
 
Last edited:
The proper usb wheels are a tad pricey to justify getting just for this - anyone got a racing wheel they intend to use with this and access to linux/rpi?

Is so, it would be great with a little details:
Find it:
Code:
root@DietPi:~# ls -l /dev/input/by-id/
total 0
lrwxrwxrwx 1 root root 9 Aug 14 23:17 usb-046d_PS3_USB_Cordless_Gamepad-event-joystick -> ../event2
lrwxrwxrwx 1 root root 6 Aug 14 23:17 usb-046d_PS3_USB_Cordless_Gamepad-joystick -> ../js0
lrwxrwxrwx 1 root root 9 Aug 14 23:17 usb-GASIA_USB_KB_V11-event-if01 -> ../event1
lrwxrwxrwx 1 root root 9 Aug 14 23:17 usb-GASIA_USB_KB_V11-event-kbd -> ../event0
lrwxrwxrwx 1 root root 9 Aug 14 23:17 usb-Logitech_Logitech_Cordless_RumblePad_2-event-joystick -> ../event3
lrwxrwxrwx 1 root root 6 Aug 14 23:17 usb-Logitech_Logitech_Cordless_RumblePad_2-joystick -> ../js1
Then run evtest on the appropriate event file and get some details, like:

Code:
root@DietPi:~# evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x46d product 0xcad2 version 0x111
Input device name: "PS3/USB Cordless Gamepad"
Supported events:
 Event type 0 (EV_SYN)
 Event type 1 (EV_KEY)
   Event code 304 (BTN_SOUTH)
   Event code 305 (BTN_EAST)
   Event code 306 (BTN_C)
   Event code 307 (BTN_NORTH)
   Event code 308 (BTN_WEST)
   Event code 309 (BTN_Z)
   Event code 310 (BTN_TL)
   Event code 311 (BTN_TR)
   Event code 312 (BTN_TL2)
   Event code 313 (BTN_TR2)
   Event code 314 (BTN_SELECT)
   Event code 315 (BTN_START)
   Event code 316 (BTN_MODE)
 Event type 3 (EV_ABS)
   Event code 0 (ABS_X)
     Value    128
     Min        0
     Max      255
     Flat      15
   Event code 1 (ABS_Y)
     Value    128
     Min        0
     Max      255
     Flat      15
   Event code 2 (ABS_Z)
     Value    128
     Min        0
     Max      255
     Flat      15
   Event code 5 (ABS_RZ)
     Value    128
     Min        0
     Max      255
     Flat      15
   Event code 16 (ABS_HAT0X)
     Value      0
     Min       -1
     Max        1
   Event code 17 (ABS_HAT0Y)
     Value      0
     Min       -1
     Max        1
 Event type 4 (EV_MSC)
   Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
 
I have a Logitech MoMo (Red) that I would love to use with this; however, I don't have a lot of experience with Linux (I do have a Raspberry Pi). Would be willing to try get the information you are asking for with some direction.
 
Any of you own a racing wheel and have a bit of linux experience?

I have a Logitech MoMo (Red) that I would love to use with this; however, I don't have a lot of experience with Linux (I do have a Raspberry Pi). Would be willing to try get the information you are asking for with some direction.
Just log into the rpi, plug your wheel and run the two commands above:
ls -l /dev/input/by-id/
and
evtest /dev/input/eventN
where N is the number you found with the first command.
 
Back
Top