Monday, November 12, 2012

Android accelerometer sampling rates

An app I'm working on relies on quick spikes in accelerometer activity, like fractions of a second, so I have to have a pretty fast accelerometer. Android lets you specify accelerometer sampling rate, kind of: you can choose SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME, or SENSOR_DELAY_FASTEST. Then the phone will try to give you samples at a rate that works for your app.

On NORMAL, my Nexus S gives me about 7Hz. Not at all fast enough. On UI, GAME, or FASTEST, I get about 49Hz, which is almost fast enough. So I gave some friends a little test app which determined their phone's FASTEST sample rate and here's what I found (readings in Hz):

Motorola Droid X: 5.19
Motorola Droid X2: 6.23
ZTE Blade: 9.11
HTC Nexus One: 24.86
HTC Evo 4G: 37.54
HTC Wildfire: 38.40*
HTC Desire: 47.27*
LG Nexus S: 49.44
Samsung Galaxy S3: 93.98
Motorola Atrix: 94.32
Sony Ericsson x10 Mini: 94.77**
Samsung Galaxy S2: 96.03, 97.5
Samsung Galaxy Nexus: 99.8
Samsung Note II: 100.0
Samsung Galaxy S3: 100
Samsung Galaxy Teos: 109.42*
LG Nexus 4: 198

(* from this stack overflow post)
(** from this slideshow, slide 13)

Want to add a reading? Here's how:
1. Enable installation of apps from unknown sources (Settings -> Security -> Unknown Sources)
2. Download this app
3. Tap "start", wait 5 seconds, and post (in a comment) which phone you have and what reading you get.
Edit: thanks all for adding to this! If you're looking for some other phones, check out the comments below.