BES v0.8 does not recognize the USB Gamepad

Now, I have been trying to find out what it is happening with the BES after flashing the v0.8 in a new uSD card.

The main issue is with the USB controller, let me explain what I have found.

Just flashed the uSD, the BBB boots up perfectly, shows the @IP, and I can connect through the web server. That is fine.
Now, the steps I did were:

  1. Upload some ROMs to BBB. Meanwhile, I uploaded the ROMs, the screen automatically change to ‘PAUSE’ screen.
  2. I removed the USB gamepad (it neither work), and restart the BBB. Here, there is no time to watch which ROMs are in the uSD, as screens changes to ‘PAUSE’ automatically.
  3. Web server is out of business because of previous step, I can not connect to it anymore.
  4. Checked in Windows the vendor ID and other parameters from the USB gamepad. With ‘joy.cpl’ I can check the USB Gamepad is working fine.
  5. Format again the uSD, reflashes the BES v0.8, and without upload any ROMs, modify the controller #1 buttons configuration with the one obtain from ‘joy.cpl’.
  6. Reboot with USB gamepad connected the BBB. Connect BBB through ssh, check with ‘dmesg’ and ‘lsusb’ the USB devices. The USB gamepad is not shown, it has not been detected.
  7. Unplug the USB gamepad, BBB and its ethernet still works.
  8. Plug again the USB gamepad, ethernet goes down, then nor ssh neither the web browser works.

Please, find attached a document with the outputs of the different commands I tested, and also the VendorID information from Windows. Maybe, you can figure out what it is happening.

Does anyone knows how can I force the system to detect the USB gamepad? Is it possible to add support for this USB gamepad?

Thanks in advance.

USB_SNES_Gamepad_VendorID.txt (6.43 KB)

Does anybody know how can I add the support for these USB gamepads?

It would be great to have some help for doing this, even if someone could explain how develop a new driver and compile It.

I have everything ready but the USB gamepads.

Hello there. I apologize for not responding sooner, as I have been very busy at work for the past few days and I have something like 600 mails in my inbox, waiting for a response.

The problem you are seeing is not because of your USB gamepad, but rather because you do not have the SNES gamepad interface circuitry attached. This causes there to be two “phantom” gamepads that BES sees as having every button pressed at once. This selects the first game on the GUI and then triggers the pause combo once in-game.

There is a simple hardware workaround for this issue: pull pins P9.12 and P9.14 high (3.3v). You can do this by connecting P9.12 to P9.4 and P9.14 to P9.3, as both P9.3 and P9.4 supply 3.3v. Like this: http://i.imgur.com/4C4Jrb1.jpg

Sorry for the inconvenience.

Andrew

Dear Andrew,

thank you very much for your answer.

I can stabilize the image at home screen with the HW workaround, but gamepads are not working yet.

Through web server, I configured the controllers but no action is performed when pressing any button or combination of buttons.

Can you imagine what is happening?
Any hint to figure out how to solve it, please?

BR!

There are a number of reasons why you might be having trouble. Your original link to your gamepad pointed to your order, requiring that I enter your Aliexpress login information to view it. I pulled the gamepad product ID out of the URL and came to this product page: https://www.aliexpress.com/item/Retro-Super-for-Nintendo-SNES-USB-Controller-for-PC-for-MAC-Controllers-SEALED/32668671882.html

I see a lot of messages in your log about the USB OTG driver. Are you powering your BBB via a 5 volt, 2 amp power supply, or are you using the USB cable to power it? It looks like you are using the USB cable to power it, but you must use a power supply. Super low-cost USB devices like this may also be pretty buggy themselves, making them not work with the generic Linux USB HID gamepad driver.

Andrew

You’re right, the link was wrong, but that is the USB gamepad.

The BBB is sourced by a power supply (5V, 2A) but maybe the low-cost gamepad is the root cause of the issue, because no USB device is detected.

I keep looking for a solution, and if there is none, I will buy a better gamepad.

Thanks for your help.

Hello for all

Firstly I would like to thank you Andrew for your work on this project! It is amazing what you did.

Like the another e-mail, I have the same issue with booth a generic USB SNES and a USB Play Station-like gamepad not working and not recognized by kernell.
On windows the gamepad was recognized and works perfectly.

I made some tests with USB monitor and dig on “/dev/input” folder and I saw that when I plug the gamepad I cannot see the js0 or js1 device, nothing change.
To test USB for the sake of a hardware problem I pluged a keyboard and “event1” and “event2” appeared (and I can control and play normally).

I did not test this hardware jumpers on some pins of beaglebone, the external GPIO pins has a priority over the USB gamepad?

If it will not work, there is a way to force the Kernell to recognize this gamepad?

Thank you!

I had the same problem and Andrews fixed solved the issue. I need to get some better gamepads though. Does anyone have ones they recommend that have worked? A link to them would be greatly appreciated!

it's been a while since I played with gamepads on Linux, but I seem to
remember that the gamepads show up as HID devices with crazy number
of mouse buttons (MB 1,2,3,4,5,6,7,8,9....). So, just write your app
to react to high-numbered mouse buttons. You can see what your gamepad
is generating by running the xev program from your text terminal;
it'll print event records to your screen.