As the others, I was having the same problem. In my case I'm driving two digital servos and was trying to do it directly from two pins of the RFduino.
So, I contacted support. Here is the first suggestion:
We found the attribute of the jitter to be coinciding with the fact that the BLE protocol takes priority over other tasks. When BLE is active, it can cause small jitter with the PWM timing.
If the jitter is not within your projects\' tolerance, it would be best to use an external PWM controller.
Here is an example of an ideal PWM controller to accurately position your servo:
This didn't make much sense to me and I didn't want to add hardware so I contacted Nordic Semi. They indicated that if I didn't need to more than three servos that their example code would work and eliminate the jitter:
This sounds like an implementation issue, not a hardware issue. Assuming you don't need to change the PWM duty cycle during BLE events it should be possible to have a stable output.
I assume you are using a standard PWM implementation provided by RFduino?
Feel free to have a look at the following library:
It allows you to control up to 3 PWM outputs that will run also while interrupted by the BLE stack, but I suspect that you would have to remove the Arduino code in your module to use it.
Not knowing how to do this, I can edit sketches on a good day, I went back to RFdigital and got this:
"I looked at the Nordic example and it does work but it doesn't have BLE enabled so we don't know for certain that the Nordic example doesn't have jitter when running BLE.
Our servo shield does not use a servo driver, they are being driven directly by the RFduino."
Not very helpful.
Anyway, can anyone give me detailed instructions on how to incorporate the "Nordic Example" into the RFduino example so that we can see if this eliminates the problem.
BTW, I also tried the RFduino Servo shield which doesn't solve the problem. (BTW, to my surprise it also doesn't provide 3V for the RFduino.