Serial protocol error - Micro Maestro 6

Dear developers!

I run a computer with Ubuntu 12.04 Lte and upon boot, just as I get the desktop loaded and ready, a serial error occur on the ttyACM0-port and the red led turns on. The green led is on with a steady light. The yellow led is flashing once every second.
If I start up the MaestroControlCenter everything is working (including the servo) despite the red led and the errorcode 0x0010 is set. We use dual USB port mode and 9600 baud. And if I change mode to USB chained mode and apply settings, the red led turns off. Now I can shift back to USB dual port mode and apply the settings, the red led is still off.

It seem to me that the MaestroControlCenter program send a command to the servo controller to initialize it when we change the USB port mode. Do you have that command or some other ideas?

With regards

Stefan

Hi, Stefan.

Could you please post a screenshot of the error?

-Derrill

Hi Derrill!

I send a png picture of my desktop straight after I launched the Maestro Control Center. The errorcode is in red in the upper right corner of the programwindow. On the Micro Maestrocontroller the green LED is blinking furiously. A yellow LED is blinking once every second and finally there is a nonblinking red LED on as well.

If I click the box for servo number #0 it all looks the same on the controller except for the yellow LED that now blinks twice every second and the attached servo goes to its middleposition. Pulling the handle for servo #0 turns the servo .

Just clicking to activate the servo obviously sent a string commad to the port. I wonder what that is.

Now I move to the tab “Serial settings” and I check the radiobutton “USB Chained” and I click “Apply settings”.
At that very moment two things happen:

  1. The red LED on the controller turns off. Now there’s only the blinking green LED and the doubleblinking yellow LED that are turned on.
  2. The red errorcode is cleared and now it says “Error code: 0x0000”.

I have sent a second screenshot from this condition. (Serial_setting.pn)

This time the Maestro Control Center obviously initiated the controllerboard. I’d die to get my hands on this command so that I can put it in my pythoncode. I am currently coding in python 2.7.3 :slight_smile:

Finally I check the radiobutton “USB Dual Port” and click “Apply settings”. After this all is green and I can run my pythoncode to control the servo. I really hope you can help me out here.

With my best regards

Stefan Schmidt




Hi again!

I just discovered that if I Let the computer boot up and the Micro Maestro Controller has it’s red LED turned on, I can pull out the USB-cable and reinsert it again. That will clear the error as well and turn off the red LED and get the yellow LED to doubleblink every second. I don’t know why but it works. I do not wish to keep doing that every time I boot upp the Ubuntu pc but it seems to work. Is that any clue for you ?

Regards

Stefan Schmidt

Hi, Stefan.

Thank you for posting the additional information. I am looking into this, but it will probably be Monday before I can get a response to you.

-Derrill

Hi, Stefan.

I seems this is a problem outside the Maestro Control Center. Ubuntu or some 3rd-party software that uses virtual COM ports and has an auto-detect feature could be causing the error while booting. The error code indicates that the Maestro has received some serial bytes that look like invalid commands.

As you noted in your first post, the error message does not prevent the Maestro from working. If you are writing software to control the Maestro with its virtual COM port, you could use the Get Errors command (0xA1) to clear the error. Also, from within the Maestro Control Center, you can click on the “Clear Errors” button under the “Errors” tab to clear the error, or replug the Maestro serial cable (as you discovered).

-Derrill

Hi Derrill!

We tried using the command (0xA1) to clear the error in our program and it works. Why the error occurs is still a mystery. The command is placed at the top of our code and only run once in order to not prohibit other possible errors to show their errorcode.

Thank you very much for taking the time to help us!

Regards Stefan Schmidt