LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (http://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   USB device (DDR pad) keeps disconnecting (http://www.linuxquestions.org/questions/linux-hardware-18/usb-device-ddr-pad-keeps-disconnecting-596445/)

shadowsnipes 11-01-2007 04:55 PM

USB device (DDR pad) keeps disconnecting - Solved!
 
I have one of those "Deluxe" ebay DDR pads with USB, Xbox, and PSX connectors. The pad works great in Windows, but it only works in Linux for sets of about one minute. After that I have to restart the application which uses it for the program to recognize it again.

When I insert the USB adapter into my PC dmesg says
Code:

usb 3-2: new low speed USB device using ohci_hcd and address 8
usb 3-2: configuration #1 chosen from 1 choice
input: USB Dance Pad as /class/input/input10
input: USB HID v1.00 Joystick [USB Dance Pad] on usb-0000:00:03.1-2
usbhid: exports duplicate symbol hiddev_hid_event (owned by kernel)

However, soon I will get a message like
Code:

hub 3-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
usb 3-2: USB disconnect, address 9

This is echoed in syslog and messages collectively.

lsusb shows
Code:

Bus 3 Device 18: ID 0b43:0001 Play.com, Inc.
The device reconnects but it changes (always goes up) its input number and device/address number (so next time it will be /class/input/input11 and Device/address 19, etc).

It also sometimes changes which device in dev it points to such as switching between /dev/input/js0 and /dev/input/js1. I wrote a udev rule to stop that, but it doesn't do any good since the input and Device numbers keep changing.

The end result is that the device will work until it disconnects again (at most a couple of minutes).

I tested more than one of these pads and they all act the same.

I tested this in more than one Linux OS:
Slackware 12 with 2.6.21.5-smp kernel (my main OS) and Ubuntu Feisty with 2.6.20.16 kernel (a test OS I use as a reference when helping others that use Ubuntu). Ubuntu, as usual, loads more modules such as the xpad module when this device is plugged in. It is not needed, however, and works the same without it (In Slackware only the joydev module is loaded upon plugging this device in). The device itself works the same in both OSs.

I tried all my USB ports and there is no difference in the results. When I use other joypad devices such as my Logitech Precision gamepad I don't have these disconnection problems, so the problem is not in my PC hardware.

As far as I can tell the problem lies in the Linux driver for these pads seeing as they work in Windows. What does "disabled by hub (EMI?)" mean or why does it show up?

Thank you in advance for any help offered.

UPDATE: This issue has been resolved by using an external USB hub. My post below gives more details.

shadowsnipes 11-29-2007 09:17 AM

So far no helpful information...I did check what the pad shows up as in the hardware manager in Windows, though...

HID-compliant game controller
USB Human Interface Device

I also emailed the person I originally bought the pad from but I received no response. As far as I can tell this model isn't currently being sold anymore.

Again, any help would be appreciated. For instance, does anyone know why "disabled by hub (EMI?), re-enabling..." happens or what that message means? It sounds like a general "I don't know what is going on, but it might have something to do with a power failure of some sort message".

shadowsnipes 12-13-2007 01:26 AM

I wonder if I hadn't mentioned it was a DDR pad that more people might be taking a look at this...

Any help is appreciated.

shadowsnipes 12-29-2007 01:21 AM

*************bump***********

santa8claws 01-14-2008 09:02 PM

So I'm trying to do something similar and wonder how you created a rule to keep the /dev/js* device fixed?

shadowsnipes 01-14-2008 10:37 PM

I put a line in /etc/udev/rules.d/10-local.rules that says
Code:

SUBSYSTEMS=="usb", ATTRS{interface}=="USB Dance Pad", NAME="input/js0", MODE="0664"
I found the following link very helpful in learning how to do this:
http://reactivated.net/writing_udev_rules.html

Let me know how it turns out, please.

shadowsnipes 01-23-2008 11:43 AM

This issue has finally been solved! I got a report from nyingen over in the StepMania forums that they had similar problems as me with the same pad. It turns out that nyingen had it working on one of their older machines, however.

After nyingen compared kernel configs and versions it became apparent to me that the real difference that made that one setup work was the different hub being used.

I plugged in a 4-port external hub from RadioShack and then plugged my pad into that. The pad now works beautifully in StepMania!

Here is a link to the corresponding StepMania forum thread.

Electro 01-23-2008 10:31 PM

It could be a power issue. An active USB hub will provide more power to the ports than what the motherboard can handle. Some active USB hub can provide up to 2 amperes -- that is about four times the amount of power than what motherboards can deliver.

You could modify the pad to include a bridge rectifier to include an external power source. Another way is use a farad capacitor and a diode. The capacitor will provide good enough power to keep the pad energized.

Comparing Windows 2000/XP to Linux is not fair when dealing with USB devices. Windows 2000/XP uses different methods to handle USB. Windows 98 and Linux is a good comparison for USB devices. These two OS are about the same when handling USB devices. In VMware I do not have any problem using USB 2.0 devices with a virtual machine running Windows 98.

shadowsnipes 01-23-2008 11:50 PM

I don't think the problem was that the pad wasn't getting enough power. My hub isn't active- it's just one of those low power 4-port microhubs you use for laptops. It makes use of the Alcor AU9254 Chipset. Perhaps the external hub was taking care of any current spikes before they got to my main hub.

Even if I needed more power I think using a simple farad capacitor and a diode would make the pad responsiveness sluggish.

I definitely agree that comparing XP's and Linux's USB handling is not really fair as they are vastly different.

As a side note, I want to confirm that using the external microhub allows me to power two pads with no problems.

friend lemly 01-03-2009 05:21 PM

Sorry about bumping an old thread but I think this might help somebody.

I've been having this problem for quite a while, and I was sure that my problem was caused by static electricity (the pad's arrows are made of lexan or plexilass and generate a lot of static).

Using a USB hub inbetween my pad and the computer helped, but nothing could help if I tried to play while wearing clothes that contained polyester or anything that holds a lot of static.

I fixed my problem by getting a dryer sheet and rubbing the pad with it. It sounds like a no-brainer, and I don't know why it took me so long before I tried it. The static is totally gone and it seems to be lasting for a while.

The disconnects are gone and another plus is that the wax from the dryer sheet gives my pad a nice tacky feeling.


All times are GMT -5. The time now is 10:54 PM.