I am developing an app that requires high speed motion data (approximately 80hz). As of iOS 10 my app is reporting that motion data is coming in only at 67 Hz. In iOS 7 through 9 the same exact code was report a stable 80 to 81 Hz.
Has anything changed in CMMotionManager that would be causing this slow down?
This appears to be a bug in iOS 10. If the requested Hz setting set on CMMotionManager accelerometerUpdateInterval is between 60Hz and 89 Hz, motion data will come in at 67 Hz. And if it set to 90Hz or above, the motion data will come in at 100Hz. Anything below 60 Hz behaves as it did before iOS 10.
Edit: I did some more checking across a broad selection of updateIntervalSettings on both iOS 9 and iOS 10. And what I found is that any setting below 50 Hz works as expected but if you set speeds above that you will get unexpected update intervals for the motion sensors. The most egregious error I found was on iOS 9 when the update interval is set to 80 Hz the sensors were reporting in at 47 Hz.