For a full list of products shown in this video, see its YouTube description.
The Micro Maestro is the smallest of Pololu’s second-generation USB servo controllers. The Maestros are available in four sizes and can be purchased fully assembled or as partial kits:
|Maestro family of USB servo controllers: Mini 24, Mini 18, Mini 12, and Micro 6.|
The Mini Maestros offer higher channel counts and some additional features (see the Maestro comparison table below for details).
|Micro Maestro 6-channel USB servo controller bottom view with quarter for size reference.|
The Micro Maestro is a highly versatile servo controller and general-purpose I/O board in a highly compact (0.85"×1.20") package. It supports three control methods: USB for direct connection to a computer, TTL serial for use with embedded systems, and internal scripting for self-contained, host controller-free applications. The channels can be configured as servo outputs for use with radio control (RC) servos or electronic speed controls (ESCs), as digital outputs, or as analog inputs. The extremely precise, high-resolution servo pulses have a jitter of less than 200 ns, making these servo controllers well suited for high-performance applications such as robotics and animatronics, and built-in speed and acceleration control for each channel make it easy to achieve smooth, seamless movements without requiring the control source to constantly compute and stream intermediate position updates to the Micro Maestro. Units can be daisy-chained with additional Pololu servo and motor controllers on a single serial line.
A free configuration and control program is available for Windows and Linux, making it simple to configure and test the device over USB, create sequences of servo movements for animatronics or walking robots, and write, step through, and run scripts stored in the servo controller. The Micro Maestro’s 1 KB of internal script memory allows storage of servo positions that can be automatically played back without any computer or external microcontroller connected.
Because the Micro Maestro’s channels can also be used as general-purpose digital outputs and analog inputs, they provide an easy way to read sensors and control peripherals directly from a PC over USB, and these channels can be used with the scripting system to enable creation of self-contained animatronic displays that respond to external stimuli and trigger additional events beyond just moving servos.
|Bottom view with dimensions (in inches) of Pololu Micro and Mini Maestro servo controllers.|
The Micro Maestro is available fully assembled with 0.1? male header pins installed as shown in the product picture or as a partial kit, which ship with these header pins included but unsoldered, allowing the use of different gender connectors or wires to be soldered directly to the pads for lighter, more compact installations. The Mini Maestro 12, 18, and 24 are also available fully assembled or as partial kits. The Micro and Mini Maestros have 0.086? diameter mounting holes that work with #2 and M2 screws.
|Micro Maestro||Mini Maestro 12||Mini Maestro 18||Mini Maestro 24|
|Analog input channels:||6||12||12||12|
|Digital input channels:||0||0||6||12|
|Width:||0.85" (2.16 cm)||1.10" (2.79 cm)||1.10" (2.79 cm)||1.10" (2.79 cm)|
|Length:||1.20" (3.05 cm)||1.42" (3.61 cm)||1.80" (4.57 cm)||2.30" (5.84 cm)|
|Weight(1):||3.0 g||4.2 g||4.9 g||6.0 g|
|Configurable pulse rate(2):||33–100 Hz||1–333 Hz||1–333 Hz||1–333 Hz|
|Pulse range(2):||64–3280 μs||64–4080 μs||64–4080 μs||64–4080 μs|
|Script size(3):||1 KB||8 KB||8 KB||8 KB|
1 This is the weight of the board without header pins or terminal blocks.
2 The available pulse rate and range depend on each other and factors such as baud rate and number of channels used. See the Maestro User’s Guide for details.
3 The user script system is more powerful on the Mini Maestro than on the Micro Maestro. See See the Maestro User’s Guide for details.
|Micro Maestro as the brains of a tiny hexapod robot.|
An example setup using a Micro Maestro to control a ShiftBar and Satellite LED Module is shown in the picture below and one of the videos above. Maestro source code to control a ShiftBar or ShiftBrite is available in the Example scripts section of the Maestro User’s guide.
Connecting the Micro Maestro to a chain of ShiftBars. A single 12V supply powers all of the devices.
|Size:||0.85" x 1.20"|
|Baud:||300 - 200000 bps1|
|Minimum operating voltage:||5 V|
|Maximum operating voltage:||16 V|
|Supply current:||30 mA2|
User’s guide for the Pololu Micro Maestro 6-channel USB Servo Controller and the Pololu Mini Maestro 12-, 18-, and 24-Channel USB Servo Controllers.
The Pololu USB SDK contains example code for making your own applications that use native USB to control the Jrk Motor Controller, Maestro Servo Controller, Simple Motor Controller, or USB AVR Programmer.
This is a step-by-step tutorial showing you how to use the Pololu Micro Maestro to build a simple six-legged walking robot. The total parts cost is about $72.
An application note about using AutoHotkey for Windows to control Pololu USB products.
In this short video, Pololu engineer Emily shows how easy it is to get started with Maestro servo controllers.
|Getting started with the maestro servo controller.|
|Diagram for connecting a button or switch to the Micro Maestro Servo Controller.|
First, decide which channel you would like to connect your button or switch to. In the Maestro Control Center, under the Channel Settings tab, change that channel to Input mode and click “Apply Settings”. Next, wire a pull-up resistor (1–100 kilo-ohms) between the signal line of that channel and 5 V so that the input is high (5 V) when the switch is open. Wire the button or switch between the signal line and GND (0 V) so that when the button/switch is active the input will fall to 0 V. The picture to the right shows how to connect a button or switch to channel 0.
You can test your input by toggling the button/switch and verifying that the “Position” variable as shown in the Status tab of the Maestro Control Center reflects the state of your button/switch: it should be close to 255.75 when the button/switch is active and close to 0 when it is inactive. Now you can read the state of the button/switch in your script using the GET_POSITION command or over serial using the “Get Position” command. These commands will return values that are close to 1023 when the button/switch is active and close to 0 when it is inactive. Warning: The Maestro’s I/O lines can only tolerate voltages from 0 to 5 V, so if your power supply is more than 5 V be careful not to connect it to the signal line.
Most standard radio control servos (and all RC servos we sell) have three wires, each a different color. Usually, they are either black, red, and white, or they are brown, red, and orange/yellow:
Please check the specs for your servo to determine the proper power supply voltage, and please take care to plug the servo into your device in the proper orientation (plugging it in backwards could break the servo or your device).
Be careful when going past the normal 90-degree range to avoid damaging your servo.
To find the settings in the Maestro Control Center that make your servo rotate as much as it can, first set the Min and Max values on the Channel Settings tab to a wider range. Then use the lowest possible supply voltage at which your servo moves and gradually move the slider on the status tab until the servo does not move any further or you hear the servo straining. Once you reach the limit, immediately move back from it to avoid damaging the servo. Finally, return to the channel settings tab and configure Min and Max so that the servo will never go past the limit.
When the Maestro first starts up, the servos could be in any position, and the Maestro has no way of determining what position they are in. The standard RC servo protocol provides no way to get feedback from a servo. Therefore, when the Maestro receives its first Set Target command for a servo, whether it comes from serial, USB or an internal script, it will not be able to produce a smooth transition from the current position to the target position and will instead command the servo to immediately go to the target position. The speed and acceleration limits will work for subsequent commands since the Maestro will know where the servo should be and can produce servo pulses that smoothly change from the current position to the target position.
If you need your servo’s first movement to be controlled by the speed and acceleration limits, then the first Set Target command you send to the Maestro should correspond to the servo’s current position. For example, if you know that your servo will always be at a position of 1500 μs when your system starts up, then your first Set Target command for that servo should have a value of 1500 μs.
Similarly, if you set the target of a servo to zero to make the Maestro stop sending pulses, the Maestro will lose its knowledge of where the servo is. During this time, the servo might slip and go to a different position. If you know your servo is not going to slip, then your program or internal script could remember where the servo is and send a Set Target command with that position in it before trying to move the servo to another position.