custom USB controller not recognized
-
I have an Atari joystick modified to send serial signals through a Feather nRF52 board from Adafruit; it uses a CP2104 UART bridge connected to a USB port. The signals work fine when connected to my Windows PC, so they're being sent correctly. I can't get my RetroPie to recognize the USB "custom controller". Checking lsusb shows the device (005):
pi@retropie:~ $ lsusb Bus 001 Device 006: ID 050d:0803 Belkin Components Nostromo 1745 GamePad Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family] Bus 001 Device 004: ID 04d9:2ba0 Holtek Semiconductor, Inc. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
But all that appears in /dev/input are my keyboard/mouse unit and gamepad:
pi@retropie:~ $ ll /dev/input/by-id total 0 0 lrwxrwxrwx 1 root root 9 Feb 2 12:05 usb-04d9_USB_Keyboard-event-kbd -> ../event0 0 lrwxrwxrwx 1 root root 9 Feb 2 12:05 usb-04d9_USB_Keyboard-if01-event-mouse -> ../event1 0 lrwxrwxrwx 1 root root 9 Feb 2 12:05 usb-04d9_USB_Keyboard-if01-mouse -> ../mouse0 0 lrwxrwxrwx 1 root root 9 Feb 2 12:05 usb-Nostromo_Nostromo_n45_Dual_Analog_Gamepad-event-joystick -> ../event2 0 lrwxrwxrwx 1 root root 6 Feb 2 12:05 usb-Nostromo_Nostromo_n45_Dual_Analog_Gamepad-joystick -> ../js0
section from dmesg that might be useful:
[ 2.661680] usb 1-1.4: new full-speed USB device number 5 using dwc_otg [ 2.796330] usb 1-1.4: New USB device found, idVendor=10c4, idProduct=ea60 [ 2.796349] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.796361] usb 1-1.4: Product: CP2104 USB to UART Bridge Controller [ 2.796369] usb 1-1.4: Manufacturer: Silicon Labs [ 2.796377] usb 1-1.4: SerialNumber: 018C5E43 [ 2.891560] usb 1-1.5: new low-speed USB device number 6 using dwc_otg [ 3.044978] usb 1-1.5: New USB device found, idVendor=050d, idProduct=0803 [ 3.045001] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 3.045011] usb 1-1.5: Product: Nostromo n45 Dual Analog Gamepad [ 3.045020] usb 1-1.5: Manufacturer: Nostromo [ 3.061834] input: Nostromo Nostromo n45 Dual Analog Gamepad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/0003:050D:0803.0003/input/input2 [ 3.062094] hid-generic 0003:050D:0803.0003: input,hidraw2: USB HID v1.10 Gamepad [Nostromo Nostromo n45 Dual Analog Gamepad] on usb-3f980000.usb-1.5/input0 [ 3.080073] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 3.224936] systemd-journald[100]: Received request to flush runtime journal from PID 1 [ 3.852753] usbcore: registered new interface driver usbserial [ 3.852830] usbcore: registered new interface driver usbserial_generic [ 3.852886] usbserial: USB Serial support registered for generic [ 3.862885] usbcore: registered new interface driver cp210x [ 3.862960] usbserial: USB Serial support registered for cp210x [ 3.863145] cp210x 1-1.4:1.0: cp210x converter detected [ 3.879077] usb 1-1.4: cp210x converter now attached to ttyUSB0
Pi 3B+, Linux retropie 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l
When trying "Configure Input" within Emulation Station, only the Gamepad is detected. Can anyone help me get the Pi to "see" this USB device as a HID? Thanks for any help you can provide!
-
You device is detected, using its driver, as a serial adapter. In order to function as a HID, you'd need an additional driver that translates the serial data to gamepad/joystick actions.
Note that the original Atari joystick, while it used a DB9 pinout, did not use a serial protocol.
Maybe inputattach can translate the serial protocol to HID events, try to see if it works with the joysticks supported. -
Thanks, that's the kind of thing I'm looking for. I'll check it out.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.