The Maestros are Pololu’s second-generation family of
USB servo controllers. The Maestro family consists of
four controllers, each available fully assembled or as a
partial kit:
• Mini Maestro 12 [http://www.pololu.com/product/1352]
• Mini Maestro 18 [http://www.pololu.com/product/1354]
• Mini Maestro 24 [http://www.pololu.com/product/1356]
With three control methods — USB for direct connection to a PC computer, TTL serial for use with embedded
systems, and internal scripting for self-contained, host controller-free applications — and channels that can be
configured as servo outputs for use with radio control (RC) servos [http://www.pololu.com/category/23/rc-servos] or
electronic speed controls (ESCs), digital outputs, or analog/digital inputs, the Maestro is a highly versatile servo
controller and general I/O board in a highly compact package. The extremely precise, high-resolution servo pulses
have a jitter of less than 200 ns, making the Maestro well suited for high-performance animatronics, and built-in speed
and acceleration control make it easy to achieve smooth, seamless movements without requiring the control source to
constantly compute and stream intermediate position updates to the Maestro. The Maestro features configurable pulse
rates (up to 333 Hz for Mini Maestros) and can generate a wide range of pulses to allow maximum responsiveness
and range from modern servos. 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 (see Section 4), making it simple to
configure and test the board 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 Maestro’s internal script memory allows storage
of servo positions that can be automatically played back without any computer or external microcontroller connected
(see Section 6).
The Maestros’ channels can also be used as general-purpose digital outputs and analog or digital inputs, providing
an easy way to read sensors and control peripherals directly from a PC over USB. These inputs can be used with the
scripting system to enable creation of self-contained animatronic displays that respond to external stimuli.
• Three control methods: USB, TTL (5 V) serial, and internal scripting
• 0.25μs output pulse width resolution (corresponds to approximately 0.025° for a typical servo, which is
beyond what the servo could resolve)
• Configurable pulse rate and wide pulse range (see the Maestro comparison table below)
• Individual speed and acceleration control for each channel
• Channels can be optionally configured to go to a specified position or turn off on startup or error
• Alternate channel functions allow the channels to be used as:
◦ General-purpose digital outputs (0 or 5 V)
◦ Analog or digital inputs (channels 0 – 11 can be analog inputs; channels 12+ can be digital inputs)
◦ One channel can be a PWM output with frequency from 2.93 kHz to 12 MHz and up to 10 bits of
resolution (see Section 4.a for details)
• A simple scripting language lets you program the controller to perform complex actions even after its USB
and serial connections are removed
• Free configuration and control application for Windows and
Linux makes it easy to:
◦ Configure and test your controller
◦ Create, run, and save sequences of servo movements for
animatronics and walking robots
◦ Write, step through, and run scripts stored in the servo
controller
• Two ways to write software to control the Maestro from a PC:
◦ Virtual COM port makes it easy to send serial commands
from any development environment that supports serial
The Channel Settings tab in the Maestro
Control Center.
communication
◦ PololuUSBSoftwareDevelopmentKit
[http://www.pololu.com/docs/0J41] allows use of more advanced
native USB commands and includes example code in C#,
Visual Basic .NET, and Visual C++
• TTL serial features:
◦ Supports 300 – 200,000 bps in fixed-baud mode, 300 –
115,200 bps in autodetect-baud mode
◦ Simultaneously supports the Pololu protocol, which gives
The Status tab in the Maestro Control
Center.
access to advanced functionality, and the simpler Scott
Edwards MiniSSC II protocol (there is no need to configure the device for a particular protocol mode)
◦ Can be daisy-chained with other Pololu servo and motor controllers using a single serial transmit line
◦ Chain input allows reception of data from multiple Mini Maestros using a single serial receive line
without extra components (does not apply to Micro Maestros)
◦ Can function as a general-purpose USB-to-TTL serial adapter for projects controlled from a PC
• Board can be powered off of USB or a 5 – 16 V battery, and it makes the regulated 5V available to the user
can also be used to send commands to the servo controller, get information about the servo controller’s current state,
and send and receive TTL serial bytes on the TX and RX lines.
The processor and the servos can have separate power supplies.
Processor power must come either from USB or from an external
5–16V power supply connected to the VIN and GND inputs. It is
safe to have an external power supply connected at the same time
that USB is connected; in such cases the processor will be powered
from the external supply. Note that if the external supply falls below
5 V, correct operation is not guaranteed, even if USB is also
connected.
Servo power connections are provided in the upper right corner of
the Micro Maestro board. Servo power is passed directly to the
servos without going through a regulator, so the only restrictions on
Micro Maestro power pins.
your servo power supply are that it must be within the operating
range of your servos and provide enough current for your application. Please consult the datasheets for your servos to
determine an appropriate servo power source, and note that a ballpark figure for the current draw of an average
straining servo is 1 A.
You can power the Maestro’s processor and servos from a single power
supply by connecting the positive power line to both VIN and the servo
power ports. An easy way to accomplish this on the Micro Maestro is to
solder a wire on the bottom of the board between VIN and one of the servo
power connections as shown in the picture to the right. Only one ground
connection is needed because all ground pins on the board are connected.
The 5V (out) power output allows you to power your own 5V devices from
the on-board 50mA regulator or directly from USB. The on-board regulator is
used whenever VIN is powered; in this case, since the Maestro requires
30 mA, there is about 20 mA available to power other devices.
Micro Maestro configured to use
a single power supply for both
board and servos.
The SIG lines (0, 1, 2, …) are used for sending pulses to servos, controlling
digital outputs, and measuring analog voltages. These lines are protected by 220Ω resistors. The total current limit (in
or out) for these pins is 60 mA, but when using the on-board regulator the current out is limited to 20 mA (see above.)
The RX line is used to receive non-inverted TTL (0–5 V) serial bytes, such as those from microcontroller UARTs.
These bytes can either be serial commands for the Maestro, arbitrary bytes to send back to the computer via the USB
connection, or both. For more information about the Maestro’s serial interface, see Section 5.a. Note that the Maestro
will probably be able to receive 3.3V TTL serial bytes, but it is not guaranteed to read 3.3V as high on the RX pin, so
you should boost 3.3V TTL serial signals to above 4V if you want to ensure reliable operation.
The TX line transmits non-inverted TTL (0–5 V) serial bytes. These bytes can either be responses to serial commands
sent to the Maestro, or arbitrary bytes sent from the computer via the USB connection.
The RST pin can be driven low to reset the Maestro’s microcontroller, but this should not be necessary for typical
applications. The line is internally pulled high, so it is safe to leave this pin unconnected. Driving RST low is roughly
equivalent to powering off the Maestro; it will not reset any of the configuration parameters stored in non-volatile
memory. To reset the configuration parameters, select Device > Reset to default settings… in the Maestro Control
Center.
The dimensions of the Micro Maestro PCB are 1.2″ × 0.85″. The mounting holes have a diameter of 0.086″and are
intended for #2 or M2 screws. The vertical and horizontal distances between the two mounting holes are 0.65″ and
0.575″. The Micro Maestro weighs 3.0 g (0.11 oz) without header pins.
1.b. Mini Maestro Pinout and Components
Mini Maestro 12-channel USB servo controller (fully
Note: This section applies to the Mini
Maestro 12, 18, and 24 servo controllers.
Please see Section 1.a for Micro Maestro
pinout and component information.
ThePololuMiniMaestro12-,18-,and
24-channel servo controllers can connect to a
computer’s USB port via a USB A to mini-B
cable[http://www.pololu.com/product/130](not
included). The USB connection is used to
configure the servo controller. It can also be used
to send commands to the servo controller, get
information about the servo controller’s current
state, and send and receive TTL serial bytes on
the TX and RX lines.
Mini Maestro 18-channel USB servo controller (fully
assembled) labeled top view.
Mini Maestro 24-channel USB servo controller (fully
The processor and the servos can have separate power supplies.
Processor power must come either from USB or from an external
5–16V power supply connected to the VIN and GND inputs on the
left side of the board. It is safe to have an external power supply
connected at the same time that USB is connected; in that case the
processor will be powered from the external supply. Note that if the
external supply falls below 5 V, correct operation is not guaranteed,
even if USB is also connected.
Servo power connections are provided in the lower right corner of
Mini Maestro 12 power pins.
the Mini Maestro board. On the Mini Maestro 18 and 24, you can
make servo power connections via a 2-pin terminal block or a 2-pin
0.1″ header; the Mini Maestro 12 only has a 2-pin 0.1″ header for
connecting servo power. Servo power is passed directly to the
servos without going through a regulator, so the only restrictions on
your servo power supply are that it must be within the operating
range of your servos and provide enough current for your
application. Please consult the datasheets for your servos to
determine an appropriate servo power source, and note that a
ballpark figure for the current draw of an average straining servo is
1 A.
You can power the Maestro’s processor and servos from a single
Mini Maestro 18 power pins.
power supply by connecting the positive power line to both VIN and
the servo power ports (only one ground connection is needed
because all ground pins on the board are connected). The
recommended way to do this is to connect your power supply to the
dedicated servo power pins in the corner of the board and use the
included blue shorting block to connect the pins labeled
“VSRV=VIN”.
The 5V (out) power output allows you to power your own 5V
devices from the 150mA on-board regulator or directly from USB.
The on-board regulator is used whenever VIN is powered; in this
case, since the Maestro requires 50 mA, there is about 50 mA
available to power other devices.
The signal lines (0, 1, 2, …) are used for sending pulses to servos,
controlling digital outputs, and measuring voltages. The total
current limit (in or out) for these pins is 150 mA, but when using the
Mini Maestro 24 power pins.
on-board regulator the current out is limited to 50 mA (see above.)
The RX line is used to receive non-inverted TTL (0–5 V) serial bytes, such as those from microcontroller UARTs.
These bytes can either be serial commands for the Maestro, arbitrary bytes to send back to the computer via the USB
connection, or both. For more information about the Maestro’s serial interface, see Section 5.a. Note that the Maestro
will probably be able to receive 3.3V TTL serial bytes, but it is not guaranteed to read 3.3V as high on the RX pin, so
you should boost 3.3V TTL serial signals to above 4V if you want to ensure reliable operation.
The TX line transmits non-inverted TTL (0–5 V) serial bytes. These bytes are either generated by the Mini Maestro
itself (as responses to serial commands or arbitrary bytes sent from the computer via the USB connection), or they
come from the TXIN line.
The RST pin can be driven low to reset the Maestro’s microcontroller, but this should not be necessary for typical
applications. The line is internally pulled high, so it is safe to leave this pin unconnected. Driving RST low is roughly
equivalent to powering off the Maestro; it will not reset any of the configuration parameters stored in non-volatile
memory. To reset the configuration parameters, select Device > Reset to default settings… in the Maestro Control
Center.
The ERR line is an output that is tied to the red error/user LED. It is driven high when the red LED is on, and it is a
pulled low through the red LED when the red LED is off. The red LED turns on when an error occurs, turns off when
the error flags have been cleared, and can also be controlled by the user script. Since the ERR line is never driven low,
it is safe to connect the ERR line of multiple Mini Maestros together. Please note, however, that doing this will cause
the red LEDs of all connected Mini Maestros to turn on whenever one of the Mini Maestros turns on its red LED. For
more information on the possible error conditions and response options, please see Section 4.b.
The TXIN line is a serial input line that makes it easy to chain together multiple Mini Maestros. Any serial bytes
received on this line will be buffered through an AND gate and transmitted on the TX line. See Section 5.g for more
information about daisy chaining.
Bottom view with dimensions (in inches) of Pololu Micro and Mini Maestro
servo controllers.
The dimensions of the Mini Maestro PCBs are shown in the picture above, along with the Micro Maestro for
comparison. The mounting holes have a diameter of 0.086″and are intended for #2 or M2 screws. The vertical and
horizontal distances between the two mounting holes are as follows: 1.2″ and 0.5″ for the Mini Maestro 12, 1.58″ and
0.5″ for the Mini Maestro 18, and 1.5″ and 0.5″ for the Mini Maestro 24.
1.c. Indicator LEDs
The Maestro has three indicator LEDs:
• The green USB LED indicates the USB status of the device. When the Maestro is not connected to a
computer via the USB cable, the green LED will be off. When you connect the Maestro to USB, the green
LED will start blinking slowly. The blinking continues until the Maestro receives a particular message from the
computer indicating that the Maestro’s USB drivers are installed correctly. After the Maestro gets this message,
the green LED will be on, but it will flicker briefly when there is USB activity. The control center application
constantly streams data from the Maestro, so when the control center is running and connected to the Maestro,
the green LED will flicker constantly.
• The red error/user LED usually indicates an error. The red LED turns on when an error occurs, and turns off
when the error flags have been cleared. See Section 4.b for more information about errors. The red LED can also
be controlled by the user script; the red LED will be on if there is an error or if the script command for turning it
on was run.
• The yellow status LED indicates the control status. When the Maestro is in auto-baud detect mode (the
default) and has not yet detected the baud rate, the yellow LED will blink slowly. During this time the Maestro
does not transmit any servo pulses. Once the Maestro is ready to drive servos, the yellow LED will periodically
flash briefly. The frequency of the flashes is proportional to the servo period (the amount of time between pulses
on a single channel); with a period of 20 ms the flashing occurs approximately once per second. The number of
flashes indicates the state: a single flash indicates that none of the servos are enabled (no pulses are being sent)
and all output channels are low, while a double flash indicates that at least one of the servos is enabled or one of
the output channels is being driven high. Also, when a valid serial command is received, the yellow LED will
emit a brief, dim flash which ends when the next valid serial command is received or when the main blinking
occurs (whichever happens first). Mini Maestros with firmware version 1.00 only emit single flashes unless a
servo channel with a speed or acceleration limit is enabled. This behavior was fixed in firmware version 1.02 to
be consistent with the Micro Maestro.
When the Maestro is reset in some other way than being initially powered up, the red and/or yellow LEDs blink four
times to indicate the reset condition:
• Yellow off, red blinking: A brownout reset. This occurs when the Maestro’s 5 V line drops below about 3.0 V,
usually due to low batteries or an inadequate power supply.
• Yellow blinking, red off: The Maestro was reset by a low voltage on its RST line.
• Yellow and red blinking together: A firmware crash resulted in a “watchdog” reset. This also occurs
immediately following a firmware upgrade, as a normal part of the upgrade process.
• Yellow blinking, red steady: A firmware error resulted in a soft reset. This should never occur during normal
usage.
1.d. Supported Operating Systems
The Maestro USB drivers and configuration software work under Microsoft Windows XP, Windows Vista, Windows
7, Windows 8, and Linux.
We do not provide any software for Mac OS X, but the Maestro’s two virtual COM ports are compatible with Mac
OS X 10.7 (Lion) and later. The Maestro must be initially configured from a Windows or Linux computer, but after
that it can be controlled from a Mac.
Mac OS X compatibility: we have confirmed that the Maestro works on Mac OS X 10.7 and we can
assist with advanced technical issues, but most of our tech support staff does not use Macs, so basic
support for Mac OS X is limited.
You can check the product page of your particular Maestro model for additional information. We would be delighted
to hear from you about any of your projects and about your experience with the Maestro. You can contact us
[http://www.pololu.com/contact] directly or post on our forum [http://forum.pololu.com/]. Tell us what we did well, what we
could improve, what you would like to see in the future, or anything else you would like to say!
2. Open the ZIP archive and run setup.exe. The installer will guide you through the steps required to install the
Maestro Control Center, the Maestro command-line utility (UscCmd), and the Maestro drivers on your computer.
If the installer fails, you may have to extract all the files to a temporary directory, right click setup.exe, and select
“Run as administrator”.
3. During the installation, Windows will ask you if you want to install the drivers. Click “Install” (Windows 7,
8, and Vista) or “Continue Anyway” (Windows XP).
4. After the installation is finished, your start menu should have a shortcut to the Maestro Control Center (in
the Pololu folder). This is a Windows application that allows you to configure, control, debug, and get real-time
feedback from the Maestro. There will also be a command-line utility called UscCmd which you can run at a
Command Prompt.
Windows 8, Windows 7, and Windows Vista users: Your computer should now automatically install the necessary
drivers when you connect a Maestro. No further action from you is required.
Windows XP users: Follow steps 5–9 for each new Maestro you connect to your computer.
5. Connect the device to your computer’s USB port. The Maestro shows up as three devices in one so your
XP computer will detect all three of those new devices and display the “Found New Hardware Wizard”
three times. Each time the “Found New Hardware Wizard” pops up, follow steps 6-9.
6. When the “Found New Hardware Wizard” is displayed, select “No, not this time” and click “Next”.
If you use Windows XP and experience problems installing or using the serial port drivers, the cause of your problems
might be a bug in older versions of Microsoft’s usb-to-serial driver usbser.sys. Versions of this driver prior to version
5.1.2600.2930 will not work with the Maestro. You can check what version of this driver you have by looking in
the “Details” tab of the “Properties” window for usbser.sys in C:\Windows\System32\drivers. To get the fixed version
of the driver, you will need to install Service Pack 3 [http://www.microsoft.com/downloads/details.aspx?FamilyId=68C48DAD-
BC34-40BE-8D85-6BB4F56F5110]. If you do not want Service Pack 3, you can try installing Hotfix KB918365 instead, but
some users have had problems with the hotfix that were resolved by upgrading to Service Pack 3. The configuration
software will work even if the serial port drivers are not installed properly.
After installing the drivers, if you go to your computer’s Device Manager and expand the “Ports (COM & LPT)” list,
you should see two COM ports: the Command Port and the TTL Port. In parentheses after these names, you will see
the name of the port (e.g. “COM5” or “COM6”). If you expand the “Pololu USB Devices” list you should see an
entry for the Maestro.
Windows 7 device manager showing the Micro Maestro 6-channel USB servo controller.
Windows XP device manager showing the Micro Maestro 6-channel USB servo
controller.
Some software will not allow connection to higher COM port numbers. If you need to change the COM port number
assigned to your USB device, you can do so using the Device Manager. Bring up the properties dialog for the COM
port and click the “Advanced…” button in the “Port Settings” tab. From this dialog you can change the COM port
assigned to your device.
Unzip the tar/gzip archive by running “tar -xzvf” followed by the name of the file. After following the instructions in
README.txt, you can run the programs by executing MaestroControlCenter and UscCmd.
You can also download the C# source code of UscCmd as part of the Pololu USB Software Development Kit
[http://www.pololu.com/docs/0J41]. Read README.txt in the SDK for more information.
The Maestro’s two virtual serial ports can be used in Linux without any special driver installation. The virtual serial
ports are managed by the cdc-acm kernel module, whose source code you can find in your kernel’s source code
drivers/usb/class/cdc-acm.c. When you connect the Maestro to the PC, the two virtual serial ports should appear
as devices with names like /dev/ttyACM0 and /dev/ttyACM1 (the number depends on how many other ACM devices
you have plugged in). The port with the lower number should be the Command Port, while the port with the higher
number should be the TTL Serial Port. You can use any terminal program (such as kermit) to send and receive bytes
on those ports.
3.c. Using the Maestro without USB
It is possible to use the Maestro as a serial servo controller without installing any USB drivers or using a PC. Without
using USB, you will not be able to change the Maestro’s settings, but you can use the default settings which are
suitable for many applications. The default settings that the Maestro ships with are described below.
Default Settings
• The serial mode is “UART, detect baud rate”; after you send the 0xAA baud rate indication byte, the Maestro
will accept TTL-level serial commands on the RX line.
• The Pololu Protocol device number is 12, the Mini SSC offset is 0, and serial timeout and CRC are disabled.
• All channels are configured as servos, with a minimum pulse with of 992 μs and a maximum pulse width of
The Maestro’s USB interface provides access to all configuration options as well as support for real-time control,
feedback, and debugging. The Maestro Control Center is a graphical tool that makes it easy for you to use the USB
interface; for almost any project, you will want to start by using the control center to set up and test your Maestro.
This section explains most of the features of the Maestro and the Maestro Control Center.
4.a. Status and Real-time Control
The Status tab in the Maestro Control Center.
The Status tab is used for controlling the Maestro’s outputs and for monitoring its status in real time. A separate row
of controls is displayed for each of the Maestro’s channels. In the screenshot above, there are 12 channels displayed
because the Maestro Control Center is connected to the Mini Maestro 12-channel servo controller. When the Maestro
Control Center connects to Maestro models with more or fewer channels, it displays more or fewer channels on the
screen.
For a channel configured as a servo or output, the checkbox enables the output, dragging the slider adjusts the target
setting of the channel, and the green ball indicates the channel’s current position. For example, if the channel is set
to a relatively slow speed, when the slider is moved to a new position, the green ball will slowly move until it has
reached the slider, indicating that the output has reached its target. For more precise control, a target value may also be
entered directly into the “Target” input box. The slider is automatically scaled to match the minimum and maximum
values specified in the Settings tab.
For a channel configured as input, the slider, green ball, “Target”, and “Position” display the current value of the
input. There is no control available for inputs. The inputs on channels 0–11 are analog: their values range from 0 to
255.75, representing voltages from 0 to 5 V. The inputs on channels 12–23 are digital: their values are either exactly
0 or exactly 255.75.
4. Using the Maestro Control CenterPage 22 of 73
Loading...
+ 51 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.