A few suggestions for the Mini Maestro servo controllers

Hi there,
I’m using your Mini Maestro 24 for a hexapod walker (details and pics here: http://forums.trossenrobotics.com/showthread.php?t=4102). I’ve found it to be a lot more compact and capable than other servo controllers. However, there are a few areas where I think it could be improved so I thought I’d share them. It’s possible these are my fault rather than the controllers, if so please say so.

  1. When a servo is set to go to a position at power up using the Windows program, it only seems to work if the USB cable is plugged in before servo power. I.e. if you are using one power source for logic and servos (with the jumper on), when you plug the power in the servos wont move (they actually stay unpowered as if they’re set to ‘Off’ in the power up option), whereas if you plug the USB cable in and then the servo power, the servos will snap to the positions you set.

  2. I’m impressed with the Maestro’s acceleration and speed options (especially acceleration, this seems to be pretty rare and useful for smooth moves). However, one extension of this I’d like to see is setting the time a move should take. I think the Lynxmotion SSC- style controllers handle this pretty well. Information on them is here http://www.lynxmotion.com/images/html/build136.htm . I’m particularly interested in the ‘group move’ feature where several servos can complete movements of difference distances yet begin and end their movements at the same time and take a specified time to do so. I know that the speed setting could be used to the effect, but if this was handled by the controller itself it would be a cool feature and save time sending serial commands while only requiring a simple function in the code.
    [The advantage I see this feature as having over using the acceleration commands is that in some applications the servos don’t just need to be at a start and end point at particular times, but may need to move along a particular path, so you could send position to a servo every x ms, and the controller would make sure that the servo was moving at the right speed between each position so that it always reached the end point just as the next position to go to was received. This would be especially useful in walker applications using inverse kinematics, where you send the positions the servo need to go to to the controller every few ms, and the intermediate positions need to be filled in smoothly. I imagine that such applications must be pretty common for servo controller such as the Mini Maestro 18 and 24. ]

Sorry for the lengthy post! Perhaps these features could be incorporated into the next firmware version.

Hello, Chench.

  1. I was unable to reproduce the problem. If you start with the Maestro unpowered, and then plug in the servo power, what do the LEDs do? If you then plug in the USB cable, do the servos move to their correct positions? What do the LEDs do after you plug in USB?

  2. Thanks for the suggestion. We’ll keep it in mind.


Hi David,
On closer inspection, the issue was to do with my using auto-detect baud rate on the UART. Because my control programs runs remotely over Bluetooth, it wasn’t being powered up at the same time as the controller and the controller was waiting for the 0xAA character.

The reason I thought it was to do with USB being plugged in or not was that when I plugged USB in, the Control Centre asked me to change the serial to fixed baud rate which I did, and then the controller immediately went to home position on power up, but I then I was setting it back to auto-detect baud rate before unplugging the USB and testing with servo power only, making it wait for 0xAA again. Duh!

That’s good that you figured the problem out. You can avoid this issue in the future by using the UART fixed baud rate mode (if you know what baud rate your Bluetooth module is going to use). This will allow you to test your servos from your PC without reconfiguring the Maestro.

Your hexapod looks pretty cool so far! Let us know how it turns out.