RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    custom USB controller not recognized

    Scheduled Pinned Locked Moved Help and Support
    controllerusbraspbian
    3 Posts 2 Posters 327 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kfairchild6
      last edited by

      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!

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • K
          kfairchild6
          last edited by

          Thanks, that's the kind of thing I'm looking for. I'll check it out.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          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.