N900 accelerometer

The accelerometer detects orientation and movement of the phone.

Hardware

The accelerometer in the phone is a LIS302DL.

It is connected through N900 Hardware Bus I2C.


It features:

  • Low power consumption
  • Dynamically selectable 2/8G full-scale.
  • Programmable multiple interrupt generator
    • Click and double click recognition
    • Zero G detection

The click and double click functionality are not implemented in the current software.

The accelerometer is uncalibrated - the sensitivity may vary by around 10% plus or minus per-axis. Ideally this would be able to be calibrated by the user. It is possible to recover the bias and sensitivity by rotating the phone several times, and then finding the best mapping of the resulting ellipsoid to a sphere centered around zero.

The absolute resolution is poor - 18mg (at 2g sensitivity) typical. This is fine for detecting the orientation of the phone, but makes most uses that would attempt to integrate the acceleration for detection of position useless.

At the fastest sampling speed, the noise is enough to dither the output, so the resolution is somewhat higher.

Fundamental limitations

For example - with a 9mg error - there is an accelleration error of 9 centimeters per meter per second.

This means that after 10 seconds, the velocity may be anywhere within a 1.8m/s (around 4MPH) band, and the position inaccurate by 4.5m. After 100s, the position inaccuracy is up to 450m. (this assumes the orientation of the phone is known exactly)

Software

The accelerometer is supported by the dbus/sysfs infrastructure Accelerometers.