I recently bought the Beagle Bone Black Robotics Cape by Strawson Design to use for my quadcopter build. The cape has 8 sets of 3 pins for sending pulses to control servos and ESCs. Using the code that comes from the “robot control library” code set, I can’t get it to communicate with my ESCs. When I ditch the cape and just use the BBB by itself I can control the ESCs perfectly using the PWM pins. The cape servo pins seem to be software controlled digital pins that require a dedicated thread that tells the signal pin to go high for a certain amount of time, sleeps until a specified time has passed and then triggers the pin to go high again. I’m guessing the PWM pins are hardware controlled, because you can make a call that sets the frequency and duty of the signal and then never think about it again until you want to change the signal.
When doing some investigation the only difference I can see between the output of the BBB PWM and the Robotics Cape servo pins is that the PWM has more precise timing and can achieve the exact frequency I want to use 50Hz. The cape servo pins get close to achieving 50Hz but has more variability in the timing cycle to cycle when measured by my multimeter.
Why won’t my ESCs respond to the cape servo pins when the output signal is so very similar to the PWM output signal? Any suggestions on how to solve this?