On Thu, 12 Nov 2015, Jose Colmenares wrote: > I posted this question in Stack Overflow, and somebody recommended > that I post it here. > > I'm using an IMU (Inertial Measurement Unit) which connects via USB. > I have to unplug it and plug it again to be able to use it. The IMU > is used to get acceleration and positioning data (among other > things). I have an example driver code from the manufacturer (I'll > call it driver A), and another driver I found on github (driver B). > Both have the same problem. > > If I plug in the device everything works. If the computer starts, and > the IMU is already plugged in, I have to unplug it and plug it again. > This is unacceptable because the IMU will be used in a robot, so we > cannot just unplug it every time the robot starts. > > With driver A I get some basic information from the device like model > number, but it freezes when I request data. With driver B, it just > won't even start. Until, like I said, I unplug it and plug it again > and then everything works. > > I found this code to "reset" a usb device via the OS (I'm using > linux, ubuntu 14.04). When I run it dmesg gives the following output: > > [ 2443.165898] usb 3-1: reset full-speed USB device number 2 using xhci_hcd
What happens if you plug the IMU into a USB port that doesn't use xhci-hcd? (You may have to locate an older computer to try this out.) > [ 2443.182281] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with > disabled ep ffff880036bed700 > [ 2443.182290] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with > disabled ep ffff880036bed740 > [ 2443.182295] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with > disabled ep ffff88003687e600 > [ 2443.182310] usb 3-1: ep 0x82 - rounding interval to 1024 microframes, ep > desc says 2040 microframes > [ 2443.182695] cdc_acm 3-1:1.0: This device cannot do calls on its own. It is > not a modem. > [ 2443.182725] cdc_acm 3-1:1.0: ttyACM0: USB ACM device > > If I run lsusb, the IMU is shown. But the IMU is still not working. > The blinking of the led on its cover says its in idle mode as it was > before. I still have to manually unplug it and plug it again for it > to work. Maybe is a power issue? Has anyone reading this have had > issues like this before? > > This data is to be published using ROS if that is of any help. The > device is a microstrain 3DM-GX4-25 IMU. > > EDIT: When I say I have two drivers, what I mean is that I have two > programs that can read data from the device. They may not necessarily > be in a "driver format". I'm going over this right now. What does usbmon show in the working and non-working case? (See Documentation/usb/usbmon.txt for instructions.) Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html