N900 accelerometer

(Software)
(Software)
Line 32: Line 32:
The accelerometer is supported by the dbus/sysfs infrastructure [[Accelerometers]], and the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-rotation.html application rotation framework].
The accelerometer is supported by the dbus/sysfs infrastructure [[Accelerometers]], and the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-rotation.html application rotation framework].
-
It is used by much software, including [http://maemo.org/packages/view/n900fly/ N900Fly]] and [http://maemo.org/downloads/product/Maemo5/pedometerhomewidget/ a pedometer widget] as well as all applications that support the screen rotating automatically to be up.
+
It is used by much software, including [http://maemo.org/packages/view/n900fly/ N900Fly] and [http://maemo.org/downloads/product/Maemo5/pedometerhomewidget/ a pedometer widget] as well as all applications that support the screen rotating automatically to be up.

Revision as of 09:46, 11 June 2010

The accelerometer detects orientation and movement of the phone.

Hardware

The accelerometer in the phone is a LIS302DL.

It is connected through the I2C bus.


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, and the application rotation framework. It is used by much software, including N900Fly and a pedometer widget as well as all applications that support the screen rotating automatically to be up.