Micro Maestro - USB Disconnects

I am using the Micro Maestro 6 Ch USB servo controller with 1 servo.

I connected it directly to my laptop (Toshiba Qosmio G20) running Ubuntu 10.04 kernel 2.6.32-24-generic.

I followed the instructions for Ubuntu and Maestro Control Center loads up fine and detects the controller as #00007366. I set serial mode to USB Dual Port. Enabled 1 servo on ch 0 with the default settings and it starts to work. When I move the slider the motor responds but after a few seconds of moving the slider I get an error: “Failed to set target of servo 0 to 5903. Control transfer failed” (the target number would always be different of course).

I checked the messages log and found that it shows:
Aug 27 20:52:52 stefan-laptop kernel: [ 7511.840138] usb 5-1: USB disconnect, address 52
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.084040] usb 5-1: new full speed USB device using uhci_hcd and address 53
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.298204] usb 5-1: configuration #1 chosen from 1 choice
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.301388] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.306287] cdc_acm 5-1:1.2: ttyACM1: USB ACM device

I also checked the kernel log and that shows:
Aug 27 20:52:52 stefan-laptop kernel: [ 7511.840124] hub 5-0:1.0: port 1 disabled by hub (EMI?), re-enabling…
Aug 27 20:52:52 stefan-laptop kernel: [ 7511.840138] usb 5-1: USB disconnect, address 52
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.084040] usb 5-1: new full speed USB device using uhci_hcd and address 53
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.298204] usb 5-1: configuration #1 chosen from 1 choice
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.301343] cdc_acm 5-1:1.0: This device cannot do calls on its own. It is not a modem.
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.301388] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.306264] cdc_acm 5-1:1.2: This device cannot do calls on its own. It is not a modem.
Aug 27 20:52:52 stefan-laptop kernel: [ 7512.306287] cdc_acm 5-1:1.2: ttyACM1: USB ACM device

Each time this happens the address increments by 1 and I have to manually select the controller from the drop down menu in Maestro Control Centre. It isn’t so annoying with the UscCmd command line as it doesn’t hold a connection and each discrete command runs individually.

The disconnect only occurs when motor control commands are being sent. If I leave it idling but connected to the Maestro Control Centre (green LED flashing) it remains connected indefinitely.

Has anyone come across this problem before and found a solution? Does anyone know what the message hub 5-0:1.0: port 1 disabled by hub (EMI?), re-enabling… means?

I understand this is probably a Ubuntu or Linux issue and not necessarily a issue with the servo controller, but I do not see this problem with other USB devices I use on the same machine.

Appreciate any help…

Thanks and regards,
Stefan

USB ports can get disconnected by the USB controller on your computer (the root hub) when the device misbehaves in a bad way, such as drawing too much power. How are you powering your servo? Could you describe everything that you have connected to the Maestro? If you disconnect everything from the Maestro, does your USB disconnection problem go away?

–David

I’ve got an external 5V 2A supply to drive the motor.

I have 1 x HITEC HS-625MG servo connected on Channel 0.

I further noticed that if the servo power is disconnected and I continue to move the slider in Maestro Control Centre I do not get the error. I can move the slider as much as I want and the green LED keeps blinking and no error is encountered.

Soon as I add the Servo power I start seeing the error.

I then thought maybe the USB power draw is too high so I added another line from my servo power supply to power the Maestro externally. This has also not helped. The error still remains.

I also tried using Windows XP with another PC (Dell Inspiron 9100) and I am getting the same symptoms.

I am not using a any USB hub, the connection is direct to the PC.

Here’s the error message I get from UscCmd in windows:
C:\Program Files\Pololu\Maestro\bin>usccmd --servo 0,5696
Setting target of servo 0 to 5696…
Unhandled Exception: System.Exception: Failed to set target of servo 0 to 5696. —> System.ComponentModel.Win32Exception: Control transfer failed.
at Pololu.WinusbHelper.WinUsbDevice.controlTransfer(WINUSB_SETUP_PACKET setupPacket, Void* buffer)
at Pololu.WinusbHelper.WinUsbDevice.controlTransfer(WINUSB_SETUP_PACKET setupPacket)
at Pololu.UsbWrapper.UsbDevice.MyWinUsbDevice.controlTransfer(Byte RequestType, Byte Request, UInt16 Value, UInt16 Index)
at Pololu.UsbWrapper.UsbDevice.controlTransfer(Byte RequestType, Byte Request, UInt16 Value, UInt16 Index)
at Pololu.Usc.Usc.setTarget(Byte servo, UInt16 value)
— End of inner exception stack trace —
at Pololu.Usc.Usc.setTarget(Byte servo, UInt16 value)
at Pololu.Usc.UscCmd.Program.Main(String[] args)

Hello.

If the problem only occurs when the servo is in the system and you are trying to drive it, it’s seems very likely that you have a power issue. Could you post a picture of your setup so we can see how you have everything connected?

- Ben

I replaced my power supply with a battery pack and viola! all the errors and USB disconnects disappeared!

Now I can start on the project.

Thanks all for the help!