Pololu Maestro Servo Controllers

This node lets you control a bunch of servos with the Pololu Maestro family of servo control boards using the maestro-arduino library. A servo control board is great because it moves all of the hardware and software resources needed to control servo motors off of the Arduino and only takes up 2 pins to control a large number of servos. The board creates the smooth PWM signals needed to run the servos. You can also use these boards to control anything that's controlled by a PWM signal like LEDs.

Hardware Setup

Servos pull much more amps than the Arduino can supply, so you'll need an external power source. Wire up your boards as in the diagram below.

Notice that the voltage from your external power supply connects to both the VIN pin on the side of the board as well as the voltage channel on the servo connections. Also note that in this configuration you need to put the jumper over the 2 pins next to the Voltage and Ground pins on the servo channel.

You only need two pins to control the servo controller from your Arduino. Plug digital pin 10 on the Arduino into the TX pin on the Maestro, and digital pin 11 into the RX pin.

Plug as many servos as you want into the servo channel. Make sure the ground pin is on the outside of the board, you do not want to plug your servo in backwards as it could apparently mess up your board (I haven't tried this). Simply note the index of the servo as labeled on the board, and use that same number on the node to control each servo.

Using the Node

Before using the Maestro with your Arduino, plug the Maestro into you computer with the USB cable and run the Maestro Control Center software from the Pololu site. On the settings tab make sure the following options are set: Serial Mode: UART, fixed baud rate. Baud Rate: 9600. CRC Disabled.

For each servo you want to control you add one copy of the node to your project. Simply set the pin index and you are ready to control the servo by updating the input activation.

If you need to edit which Arduino pins are used to communicate with the Maestro, you'll need to open the node and edit the Declarations section. Notice that this uses the "static" keyword for the SoftwareSerial and MicroMaestro objects. This means in your compiled Arduino program there will be only one instance of these objects, and all instances of this node will use them to communicate with the board. This is why there aren't configuration inputs to set the communication pins, if there were each instance of the node could set them differently which wouldn't make any sense.

Also note in the Declarations section that depending on your hardware you might need to comment out the MicroMaestro line and uncomment the MiniMaestor line.

View discussion page on forum

To use this node in your Embrio project, either add it from the Library toolbar or copy the XML in the below box and paste it into a node screen.