We are working with the "Firmata" Arduino Firmware and PD / PureData.
Controlling a standard servo motor with it through PureData, the motor gets hot after, say 1 minute - however, it works fine when we are controlling it via usual PWM from "direct Arduino. Is that a common problem?
We also found that it "overdrives" to a certain point (and does hardly move back from there, we have to send varying (!) lower values to "lure" it back) - maybe this helps us...
So far, Firmata helped us lots ;-)
Greetings from Potsdam,
uhmmm, wierd, i thought that the pwm was still under development.. i will have to try it :)
what i did to avoid getting the servos to hot was to bang some values where i know the servo remains on a fix (not jittering) position.
one other thing that might help is connecting to ground all the analog inputs you are not using...in case you have one at least activated..
my 2 cents..
have you tried with stepper motors? i need some idea or patch that helps me understand how to set the 4 values to control it.
The hardware PWMs that are built into the Arduino won't work for servos. You need to use very slow PWMs for servos. Also, many servos now just take pulses rather than a PWM signal. Using the fast hardware PWMs in the Arduino is probably causing your servos to heat up.
We plan on adding software PWM so that you can control servos using firmata/pduino, but its not in there yet. Any volunteers? For now, you should find some Arduino code for servos and use that.
add a capicitor to the signal wire and ground wire on the servo motor. this will reduce some of the noise driving the motor.
also, you might need to turn your signal "off". so once the servo is set to a certain position, send a digital low to the motor.