3 ms·
The original library used DMA to create a reliable signal to drive both motor drivers and servos (the servos are more picky) The alternatives at the time did n
by alexellisuk 10y ago
The original library used DMA to create a reliable signal to drive both motor drivers and servos (the servos are more picky)
The alternatives at the time did not use DMA and so an Arduino is often paired with a Pi by the community to generate hardware quality signals.
I'm not sure what you're getting at re: DRY/OPC. Are you aware that software PWM has issues especially when coupled with servos it produces judder.
- ChuckMcM 10y agoI am aware that hardware generated servo signals are preferable to software generated ones. I'm also aware that the Pi2 and Pi3 are capable of creating such signals even more effectively than the original Pi. So when you came up against this challenge, the original library doesn't work on the Pi and the author had moved on to other things you had two choices; give up on that or figure out how to make it work. Related was another conversation I was in where the other party was unable to achieve their object on the Pi because "they Googled it and nobody has done it." And as a spectator its always a bit sad and disappointing when people stop there.
- alexellisuk 10y agoI tried a few options and made a decision to use hardware PWM. If you're in the same position that I was in > 12 months ago and need to drive servos and motors then by all means give software PWM a shot and please let us know what the results are like. Also don't underestimate the complexity of the changes needed to fix the DMA library - there were several long threads about it. In fact browsing the repo now there may be signs of renewed activity - https://github.com/metachris/RPIO/issues https://github.com/metachris/RPIO/issues
- alexellisuk 10y agoSee also: Adafruit 16-channel i2c Servo Driver (was also very popular at the time)