Rules/scripts while recieving commands from third party software


I use your maestro servo controllers in animatronic characters. One of the robots has a door-like cover over each eye, these open like the lid of a bin, and can tilt left and right to display expressions - like eyebrows.

My question is this, can I use the command centre to prevent the eye covers from been closed whenever they are in a tilted position? The main catch here is that the board is receiving its commands through third party software, can the command centre even monitor the positions that are transmitted from other software and override them?

Essentially, I need to find a way to create a failsafe to avoid the programmer accidentally closing the eyes whilst tilted and potentially damaging the mechanism.

Thank you for your help,

Kind regards,


The Maestro does not support the kind of rule feature that you are describing. If you were controlling the Maestro from a script, you could use conditional statements to do something like that, but since you are sending target position commands from a third party software (e.g. using TTL serial or USB commands), they will be processed directly.

There might be a few ways to get the kind of behavior you want. For example, you could have that movement handled in a subroutine of Maestro script (so you can do the conditional checks) and use the ‚ÄúRestart Script at Subroutine‚ÄĚ or ‚ÄúRestart Script at Subroutine with Parameter‚ÄĚ serial command to trigger it, instead of setting the target position directly. If the software you are using does not support those commands and you have an extra servo channel, you might be able to use that as a dummy channel to trigger the subroutine. For example, you can have a script running on the Maestro that checks the position of the dummy channel, and when it is in a particular position, it calls the subroutine for moving the eyes (with the conditional checks).


1 Like

Brilliant idea, thank you!

1 Like