Pololu Micro Maestro 6 Channels - USBProblem on Ubuntu 12.04

Hi all,

I just acquired a pololu micro maestro 6 channels and I am trying to access it from my linux machine (Ubuntu 12.04 64b)

I copied the 99-pololu.rules to /etc/udev/rules.d and installed the required libs (libusb mono…).

My problem is that I can only connect once to the micro. The first time I connect I see in dmesg:

[ 115.461481] usb 4-2: new full-speed USB device number 3 using uhci_hcd [ 115.763167] cdc_acm 4-2:1.0: This device cannot do calls on its own. It is not a modem. [ 115.763184] cdc_acm 4-2:1.0: ttyACM0: USB ACM device [ 115.767168] cdc_acm 4-2:1.2: This device cannot do calls on its own. It is not a modem. [ 115.767188] cdc_acm 4-2:1.2: ttyACM1: USB ACM device [ 115.769434] usbcore: registered new interface driver cdc_acm [ 115.769438] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

And the LEDs remain on.

I opened the Maestro control center and at the beggining it says there is an I/O problem and I can’t do anything.

If then I disconnect the micro and connect again, the green and orange LEDs blink 2-3 times and go off. dmesg says:

[ 2627.471313] usb 4-2: new full-speed USB device number 36 using uhci_hcd [ 2627.591066] usb 4-2: device descriptor read/64, error 8 [ 2627.814656] usb 4-2: device descriptor read/64, error 8 [ 2628.030382] usb 4-2: new full-speed USB device number 37 using uhci_hcd [ 2628.150127] usb 4-2: device descriptor read/64, error 8 [ 2628.373769] usb 4-2: device descriptor read/64, error 8 [ 2628.589427] usb 4-2: new full-speed USB device number 38 using uhci_hcd [ 2628.619896] usb 4-2: device descriptor read/8, error -61 [ 2628.747668] usb 4-2: device descriptor read/8, error -61 [ 2628.960790] usb 4-2: new full-speed USB device number 39 using uhci_hcd [ 2628.991261] usb 4-2: device descriptor read/8, error -61 [ 2629.119033] usb 4-2: device descriptor read/8, error -61 [ 2629.220319] hub 4-0:1.0: unable to enumerate USB device on port 2

I have to shutdown and unplug the computer (only reboot doesn’t work) to go back to the behaviour at the beginning.

Could you help me? Is a problem of the USB connection?

Thank you

–Roberto

Some extra info. The first time I connect it (the USB connection seems to be established, one green LED is running, one orange LED is blinking) I can’t reach the device with an error of “There was an error while starting up. I/O error”.

I tried to use some of the examples of the SDK an all fail with the error:

Unhandled Exception: System.Exception: Error getting serial number string from device (pid=89, vid=1ffb). ---> System.Exception: I/O error. at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code, System.String message) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code, System.String message) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.LibUsb.getSerialNumber (IntPtr device_handle) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.UsbDevice.getDeviceList (UInt16 vendorId, System.UInt16[] productIdArray) [0x00000] in <filename unknown>:0 at Pololu.Usc.Usc.getConnectedDevices () [0x00000] in <filename unknown>:0 at Pololu.Usc.UscCmd.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.Exception: Error getting serial number string from device (pid=89, vid=1ffb). ---> System.Exception: I/O error. at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code, System.String message) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at Pololu.UsbWrapper.LibUsb.throwIfError (Int32 code, System.String message) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.LibUsb.getSerialNumber (IntPtr device_handle) [0x00000] in <filename unknown>:0 at Pololu.UsbWrapper.UsbDevice.getDeviceList (UInt16 vendorId, System.UInt16[] productIdArray) [0x00000] in <filename unknown>:0 at Pololu.Usc.Usc.getConnectedDevices () [0x00000] in <filename unknown>:0 at Pololu.Usc.UscCmd.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

After a lsusb -v I get:

Bus 004 Device 002: ID 1ffb:0089 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 8 idVendor 0x1ffb idProduct 0x0089 bcdDevice 1.01 iManufacturer 1 iProduct 2 iSerial 5 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 150 bNumInterfaces 5 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 1 AT-commands (v.25ter) iFunction 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.20 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 CDC Call Management: bmCapabilities 0x00 bDataInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 0 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 2 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 1 AT-commands (v.25ter) iFunction 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.20 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 2 bSlaveInterface 3 CDC Call Management: bmCapabilities 0x00 bDataInterface 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 4 bInterfaceProtocol 1 iInterface 2 Device Status: 0x0000 (Bus Powered)

I hope someone has an idea…

Thank you

Roberto

Hello, Roberto.

I am sorry you are having trouble with the Micro Maestro. It seems like your computer is having trouble communicating with the Maestro at a pretty low level. Could you try using a different USB cable, if possible? It would also be helpful to try different USB ports and a different computer if possible.

–David

Hi David,

I tried with a different cable, no luck.

But yes, I agree it must be a low level issue.

I got the Maestro Control Center to run once, at the beginning. But as soon as I close the application, if I open again the device cannot be found. The control the Maestro with my own program (basically the cross-platform c example adapted to Linux/ttyACM0) doesn’t work, it stops when it has to read from the port.

Thank you

I am sorry you are still having trouble. Do you have another computer available that you could try the Maestro on?

–David

Hi,

well, I have some other computers but they are the same model. I could have to install a couple of things on them to try. Any other USB device work without problems (kinects, usb hdd, memory sticks, Iphone, Ipod…).

I tried in windows. I installed everything and started Maestro Control Center. When I connect the device and select its serial number (#0051783) in “Connected to” I get the error:

“Error applying settings to the form. Value of ‘20’ is not valid for ‘Value’. ‘Value’ should be between ‘Minimum’ and ‘Maximum’.
Parameter name: Value”

And I can’t select the device.

Once I disconnect and connect again, the same behaviour as in Linux happens, so some LEDs blinking and then off and a message from Windows: “USB Device Not Recognized. One of the USB devices attached to this computer has malfunctioned, and Windows does not recognize it. For assistance in solving the problem, click this message”. If I go into the message I see an “Unknown Device”. If I click on it I see in the Device status: “Windows has stopped this device because it has reported problems. (Code 43)”

So it seems to not be a OS problem, since it is similar in Windows and Linux.

Thank you for your help!

Hi again,
I just tried in another computer (a laptop, different hardware) running linux. Exactly the same behaviour. Some LEDs blinking, then all off, dmesg showing what I posted before: “usb 6-1: device descriptor read/64, error 8 …”

If it is not the machine and it is not the OS and it is not the cable…

Thanks!

–Roberto

I’m sorry for being so active on this, but I really need to get the Maestro to work :slight_smile:
After a while connected in the “good way” under Linux (the first time I connect it, when the serial devices are well created and the green LED remain on, sometimes I can even use it to control servos), even without using it, a red LED gets on and remains on while the yellow blinks. Checking the manual it says: “Yellow blinking, red steady: A firmware error resulted in a soft reset. This should never occur during normal usage.”

Could I solve it?

–Roberto

Unfortunately, it sounds like something is wrong with the Maestro. Please email us about this and include your order information. I have one more thing you can try (reloading the firmware), but if that does not work then I’ll see what we can do for replacing the Maestro.

–David