I’m in a process of upgrading my Rover and one of the key part is a pan and tilt camera based on 2 servos. I was very excited about using a Navio+ shield instead of PCA9685 board from Adafruit which is working perfectly.
I was not able to make Navio+ to work with the servos:
- power provided and servo is self reseting it to default position with power on
- I can easily control LED light on Navio+ board
- I’m using Python examples (quicker to debug)
- Standard latest Raspbian build
Basically servo is producing strange sound - it seems board signalling it to turn too much or to do operations too quick!
Does anyone can give me an advice, please?
PS: Stuck for 2 days already…
It’d be great if you could compare if the code you’d been using is any different from the new code.
The main issue is frequency and duty configuration. If you have a scope you can compare the output produced by the old and new setup.
@seregus it is most likely wrong servo frequency, please check that it is set to 50Hz and pulse length is between 1ms and 2ms.
I’ve checked the code… it seems pwm.setPWMFreq simply resets servo and it doesn’t produce any strange sound… while using pwm.setPWM - makes it to produce exaclty same sound and move a little… changin values in a range of 1 to 10000 doesn’t change anything (made 1 sec sleep between) moves and waited for a while. Servo also gets very hot!
I’d like to clear some things out.
- You use this code, right?
What parameters exactly are your passing to pwm.setPWM?
According to the image above to make the servo rotate 45 degrees back and forth every 3 seconds one might use code like this.
- The hardware setup is the same. The only difference is switching to Navio from an Adafruit shield.
Where exactly did you put those values?
Thanks for reply! Actually there was nothing wrong with the code, but connecting cable between servo and Navio! Everything works perfectly as it supposed to work using chip from Adafruit on it’s own! Thanks a lot!