Library to run the MMA8452Q accelerometer.


Driver for the accel-mma84 Tessel accelerometer module. The hardware documentation for this module can be found here.

If you run into any issues you can ask for support on the Accelerometer Module Forums.

npm install accel-mma84
This basic accelerometer example logs a stream
of x, y, and z data from the accelerometer
var tessel = require('tessel');
var accel = require('../').use(tessel.port['A']); // Replace '../' with 'accel-mma84' in your own code 
// Initialize the accelerometer. 
accel.on('ready', function () {
    // Stream accelerometer data 
  accel.on('data', function (xyz) {
    console.log('x:', xyz[0].toFixed(2),
      'y:', xyz[1].toFixed(2),
      'z:', xyz[2].toFixed(2));
accel.on('error', function(err){
  console.log('Error:', err);

# accel.availableOutputRates()
Logs the available interrupt rates in Hz.

# accel.availableScaleRanges()
Logs the available accelerometer ranges (in units of Gs).

# accel.enableDataInterrupts( trueOrFalse, callback(err) )
Enables or disables data interrupts, and thus, data events. Set the first param truthy to enable, falsy to disable.

# accel.getAcceleration( callback(err, xyz) )
Gets the acceleration from the device, outputs as array [x, y, z].

# accel.setOutputRate( rateInHz, callback(err) )
Sets the output rate of the data (1.56-800 Hz).

# accel.setScaleRange( scaleRange, callback(err) )
Sets the accelerometer to read up to 2, 4, or 8 Gs of acceleration (smaller range = better precision).

# accel.on( 'data', callback(xyz) )
Emitted when data is available. xyz is an array in the form of [x, y, z].

# accel.on( 'error', callback(err) )
Emitted upon error.

# accel.on( 'ready', callback() )
Emitted upon first successful communication between the Tessel and the module.

  • Change Rates. This more advanced accelerometer example logs a stream of x, y, and z data, then stops the stream, changes the polling rate, and resumes streaming from the accelerometer.
  • Show Axes. Demonstrates axes by turning on a different LED per axis (x, y, z) only when that axis has positive acceleration. Also prints +/- per axis to the console.

MIT or Apache 2.0, at your option