Wednesday, July 15, 2015

Limits of CoreMotion on Apple Watch

Too bad.  I have confirmed some comments from other folks testing this device.  The CoreMotion package is somewhat hardware deficient on the Watch.  Here's a screen dump from test program:


What this confirms is that only the 3-axis accelerometer is available in the Watch.  Since the gyroscope and magnetometer aren't available, the high-level motion library is also unavailable.

And, as shown in the code, the maximum delivery rate is 100 samples/second.  Incidentally, the accelerometer orientation is:
  • +X is in the right direction (toward the crown)
  • +Y is in the top direction (toward the 12 o'clock position of the watch)
  • +Z is coming out of the watch toward the viewer
Apparently LIS3DH is, or is close to the actual hardware used (thanks to Mr. Sparks for the hint).  It would be interesting to see if the sampling range and sensitivity is actually dynamic -- or if it is hard coded to +/-4G, 2mG, etc. I'll put together a test to see if this can be determined (Apple doesn't yet provide this information so any signal processing they do is a little harder to derive).

Next step will be to log the actual events to determine sample jitter, actually delivery jitter or delivery dropout as it appears that the samples are coming out of the MEMS at a constant rate. And of course to see what happens when the application isn't in foreground. Right now my code turns off the event delivery so I'll make some changes to see if the host OS actually stops delivering events when the app is out of focus. I'll need to dig into HealthKit a bit too...

No comments:

Post a Comment