Micro Maestro 6 problem

Hi Pololu,

I have a problem that’s driving me crazy. I expect that if I explain it here, you’ll point out something obvious that I’ve missed.

I have two guitar-picking robots that use the Micro Maestro 6 servo controller. See:

For each robot, I have an Arduino Uno board that recieves MIDI and sends commands to the servo controller using the Arduino library posted on the Pololu resources page. Each has a separate 5 volt, 10 amp power supply. The two power supplies are delivering a little bit more than 5V–one of them is at 5.24V, the other at 5.3V. The Arduino, the servo controller board, and the servos are all driven from the same power supply:

Power supply in --> Arduino Vin
Power supply in --> Micro Maestro 6 VIN
Power supply in --> Micro Maestro Servo Power +
Power supply ground --> Arduino Ground --> Micro Maestro GND --> Micro Maestro Servo Power -

The Micro Maestro 6 baud rate is set to 32000 via the Pololu Maestro Control Center application, and in the Arduino sketch.

The servos are all PowerHD DSM 44s (specs are here: https://www.pololu.com/product/2142).

The setup performs perfectly when the Micro Maestro 6 controllers are plugged into USB. The Pololu Maestro Control Center is not running.

The trouble starts when I unplug the USB cable. In general, things work well for a minute or two. After that, the controller starts missing commands, garbling commands, and swinging servo arms around at random. This happens when the servos are not under any load (when I’ve disconnected the motors from the shafts that let the robot pick the strings).

Plug USB back in again, and everything works perfectly.

This sounds like a serial communication mismatch, to me. What is the obvious thing I’m missing? Does the The Pololu Maestro Control Center application set the baud rate at the driver level, and not on the board itself?

The point is for humans to be able to pick up the guitar and improvise with the preprogrammed picking patterns (fretting with both hands is fun). I really need to be able to deploy these without a USB cable running to a computer.

Thanks,

Ole

1 Like

Setting the serial mode in the Maestro Control Center configures the board to that mode, so it should stay in the same configuration after removing the USB connection. Additionally, if there is some problems in the serial communication (such as a baud rate mismatch or noise interfering with the commands), I would expect one of the several serial error to be triggered. Does the red LED on the Maestro light up (indicating an error) when you remove the USB connection and start seeing problems? If so, can you try plugging it back in and checking the “Errors” tab of the Maestro Control Center?

From your description, it could be possible that you are having a power issue. The minimum operating voltage of the Maestro is 5V and it sounds like your two supplies are both just above that. It could be possible that the servos are drawing spikes of current that briefly drop the voltage low enough to brown out and reset the Maestro. You might try testing this by using a separate power supply for the Maestro’s logic side (e.g. VIN), preferably a few volts above the minimum operating voltage. If the problem goes away in this configuration, you might be able to go back to powering them form the same supply and solve the problem by adding some capacitors on the power line.

Also, the Arduino Uno has a recommend operating voltage range of 7-16V. It sounds like you might be powering it from a 5V supply, so you might look into that as well.

By the way, that is a really cool project! I love the idea. Once you get it finalized, you might consider posting more about it in the “Share your projects” section of our forum; I’m sure other members would be interested too!

Brandon

Hi BrandonM,

The red LED did come on, which reinforced my idea that it was a serial communications error. However, your response made me realize that the previous iterations of this design had been run by “home brew” Arduino boards that I’d built that were powered from a 5 volt supply. I’d sort of overlooked that the Arduino Uno might need something else.

When I add a 9 volt supply for the Arduino Uno, use its 5V out to power the Micro Maestro 6, and continue running the servos from the 5V 10A supply, everything works as expected when the USB cable is disconnected from the servo controller. That’s what I was overlooking!

But I want a single power supply, so I reworked the connections like this:

Power supply --> Arduino 5V*
Power supply --> Micro Maestro 6 VIN
Power supply --> Micro Maestro 6 Servo +

  • Doing this bypasses the onboard voltage regulator and input diode.

This setup also appears to work–no red lights, no random servo movement. For now, I think we’re good.

Thanks for your kind words about the guitar robots! It’s been quite a challenge to find servos that are a.) small enough to fit 6 of them on a guitar, b.) powerful enough to push a pick past a string, and c.) fast enough to be musically useful. The programming and electronic design were pretty simple, but the mechanical design was tricky. I designed all of the parts and made them using a CNC machine and a 3D printer. I have a big box of rejected designs (especially the picks! hundreds of those).

I’ll definitely post something in the “Share your projects” section of the forum once I have a better video.

Thanks,

Ole

I am glad you got it working!

The design looks really neat. I like the clear acrylic mounting plate that keeps it all visible; the wooden enclosures between the PC and guitar is a nice touch too. Also, supporting MIDI so you can easily vary the strum pattern sounds great. I’m looking forward to seeing more about it!

Brandon