Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including accel-mma84 with all npm packages installed. Try it out:

var accelMma84 = require("accel-mma84")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

accel-mma84 v0.2.4

Library to run the MMA8452Q accelerometer.

#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).

###Events # 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.

###Further Examples

  • 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


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free