3-Axis Accelerometers

Wockets are in need of an accelerometer upgrade to replace the two 2-axis accelerometers with a single 3-axis accelerometer. This will reduce board space and design complexity.

Analog or Digital Output?
Digital accelerometers come with their own A/D converters and are mainly used when your microcontroller only has digital inputs (e.g. BASIC Stamp). See this guide for more info: Beginner's guide to accelerometers. Given that the transmitter's microcontroller will support analog inputs, it is probably better to use analog accelerometers.[discuss]

More information on accelerometers from TI.

Which one?
Given the +-2/3g range, there are basically 2 popular choices for analog accelerometers: ADXL330 or MMA7260. Which one should we use? Other accelerometers are listed in the table below.[discuss]


Analog Output Accelerometers
g range
Sensitivity
Price/unit for 1
Price/unit for 1000
Current supply
Voltage supply
Noise density
Notes
ADXL330
3
300 mV/g
$9.99
$5.45
320 µA (3 V)
1.8 - 3.0 V
280 µg/rtHz

H34C
3



360 µA (3 V)
2.2 - 3.6 V

smallest size
MMA7260QT
1.5/2/4/6
800 mV/g @ 1.5 g
~$5.00
$2.90
500 µA (3.3 V)
2.2 - 3.6 V
350 µg/rtHz
factory-calibrated (see footnote)
MMA7341L or MMA7361L
3/11 or 1.5/6
440 mV/g

$2.86
400 µA (3.3 V)
2.2 - 3.6 V

factory-calibrated (see footnote)

Digital Output Accelerometers
Output
g sensitivity
Price/unit for 1
Price/unit for 1000
Current supply
Voltage supply
Notes
ADXL202 (2-axis, currently used)
PWM
2

$8.60
<600 µA
3.0 - 5.25 V

H30CD
I2C
3


270 µA (3 V)
2.2 - 3.6 V

MMA7455L
SPI and I2C
2/4/8
$4.22
$2.74
400 µA (3V)
2.4 - 3.6 V

SCA3000-E01/SCA3000-E02
SPI or I2C
3
$27.00
$18.36
120 µA (2.5 V)
2.35 - 3.6 V
too costly
LIS302DL
SPI and I2C
2/8
$8.00
$5.87
300 µA (2.5 V)
2.16 - 3.6 V


Calibration
If you place the sensor flat on a surface so that X and Y have a 0g condition you should have 1.65V +/-0.165V if the device is powered from a 3.3V power supply. All accelerometers are "factory-calibrated" in this fashion. Unfortunately there is no additional information regarding calibration procedures. But if you want to increase the accuracy you only have to set flat the sensor so that X and Y have a 0g condition and record the exact offset then place the sensor so that Z Axis has a 0g condition and record that value. The values recorded have to be used in your program to exactly remove the offset.