Maestro-6 USB Connection Failure

I have been using several Micro Maestro-6 devices over the past few years, and for the first time, I have run into an issue, where the OS (Ubuntu 16.04) is unable to allocate a device path (e.g. /dev/ttyACM0) for the device.

Checking the kernel logs, it appears that the USB allocation is in a constant loop. The OS tries to give it a usb number, but the device does not communicate back. I have attached the logs. As you can see, every 2 seconds the OS retries and it fails.

polulu.log (26.4 KB)

For a healthy device, this is what the logs look like:

[Mon Nov 5 11:40:11 2018] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[Mon Nov 5 11:40:11 2018] [drm] Initialized i915 1.6.0 20171023 for 0000:00:02.0 on minor 0
[Mon Nov 5 11:40:11 2018] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[Mon Nov 5 11:40:11 2018] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
[Mon Nov 5 11:40:11 2018] usb 1-2: New USB device found, idVendor=1ffb, idProduct=0089
[Mon Nov 5 11:40:11 2018] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[Mon Nov 5 11:40:11 2018] usb 1-2: Product: Pololu Micro Maestro 6-Servo Controller
[Mon Nov 5 11:40:11 2018] usb 1-2: Manufacturer: Pololu Corporation
[Mon Nov 5 11:40:11 2018] usb 1-2: SerialNumber: 00193545

My questions are:

  • Is this particular device defective?
  • Is there a software only solution to resolve this?
  • How can I do a “sanity” check on my Pololu devices to check for this defect?

Thank you!

Hello.

I am sorry you are having trouble with the Micro Maestro.

For reference, here are a few lines from the log file you posted for the non-working case:

Nov 1 19:46:03 hostname kernel: [ 1229.061597] usb 1-2: new low-speed USB device number 3 using xhci_hcd
Nov 1 19:46:04 hostname kernel: [ 1230.165607] usb 1-2: new low-speed USB device number 5 using xhci_hcd
Nov 1 19:46:06 hostname kernel: [ 1232.357693] usb 1-2: new low-speed USB device number 6 using xhci_hcd
Nov 1 19:46:09 hostname kernel: [ 1235.073522] usb 1-2: new low-speed USB device number 7 using xhci_hcd
Nov 1 19:46:10 hostname kernel: [ 1236.101667] usb 1-2: new low-speed USB device number 8 using xhci_hcd

It is interesting that it is detecting a low-speed USB device, because the Maestro is a full-speed USB device, and you can see that it is correctly detected as full-speed in the other log file.

I will need some more information to figure out what is going on and answer your questions.

Did the non-working Maestro ever work for you in the past? What are the Maestro’s three indicator LEDs doing when you connect it to your computer?

If you have not done so already, can you try plugging a known-working Maestro into the exact same setup that you used for the non-working Maestro? That means using the same computer, same USB port, and the same USB cable. Are you able to get another Maestro to work in the exact same setup?

I moved this topic to “Servo controllers and servos” section since that is more appropriate. Also, the name of our company is spelled with only one “u”: it is spelled “Pololu”.

–David

David,

Thank you for your reply. I will try my best to answer your questions:

  • Yes, the device used to work. I do not have physical access to this unit, and I am not sure about the LED indicators.

  • Again, the unit is remote. However, shutting down the computer and rebooting it after a few hours, revived the device, and then after a few days this issue happened again. Also, when I first came across this issue, the PC already had access to the USB device but lost it suddenly. We use several instances of the same setup and this is the first time in years we encountered this issue, so I think there is a reasonable assumption that the issue is particular to this device only. This computer and the same USB port have all been used before with several Maestros.

  • Sorry about the wrong spelling of the name, I will edit my original post!

Thank you!

It sounds like you have not been able to try another Maestro in the same setup since the problem started happening, so it is hard to be sure whether this is a problem with the computer or the Maestro.

You asked about doing a sanity check. I do not know enough about this problem to be able to recommend anything.

You asked if there is a software-only solution. Since rebooting the computer works, there probably is a software solution. Here is one thing you can try:

When the system is working, run udevadm info -a /dev/ttyACM0 (assuming that ttyACM0 is one of the ports of the Maestro). The second-to-last entry in the output should have lines that look something like this:

  looking at parent device '/devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="uhci_hcd"

Make a note of the KERNELS value, which is 0000:00:1d.0 in this example, and the DRIVERS value, which is uhci_hcd in this example (but will probably be xhci_hcd on your computer).

Then try running the following two commands, but be sure to replace 0000:00:1d.0 with the KERNELS value from earlier and replace uhci_hcd with the DRIVERS value from earlier:

sudo bash -c 'echo 0000:00:1d.0 > /sys/bus/pci/drivers/uhci_hcd/unbind'
sudo bash -c 'echo 0000:00:1d.0 > /sys/bus/pci/drivers/uhci_hcd/bind'

The first command should disable the USB port of the Maestro, and the second command should re-enable it. Be careful because the first command might also disable other ports on the computer. On the computer I tested this on, the USB port still provided power while it was disabled, so this won’t serve as a complete reset of the Maestro, but it might help.

If you run those two commands the next time the problem happens, it might fix the issue. Please let us know what you find out.

These instructions were inspired by this blog post. If it doesn’t work, another thing to try would be to disable power to the USB port. I haven’t tried it, but uhubctl might be useful.

–David