Skip to content

MMA8451Q Accelerometer

Three-axis I2C accelerometer with a selectable address and two interrupt outputs

MMA8451Q accelerometer breakout

The MMA8451Q is a three-axis accelerometer with 14-bit resolution, read over I2C. Tilt it in the simulator and firmware reads the new orientation from the same registers it would on real hardware.

The MMA8451Q datasheet documents the register map, the mode state machine, and the interrupt sources.

The breakout has a single 8-pin header. Names below are the silkscreen, left to right:

PinSimulator nameDescription
VINVDDSupply
GNDGNDGround
3VoVDDIOI/O rail
I2INT2Interrupt 2
I1INT1Interrupt 1
SCLSCLI2C clock
SDASDAI2C data
ASA0Address select

SA0 chooses the I2C address: 0x1C when low, 0x1D when high. Leave it unwired to take the default.

FeatureSupportNotes
I2C register interface
3-axis accelerationX, Y, Z in g
Mode state machineStandby / wake / sleep, gated the way the part gates it
Address select (SA0)
Interrupt outputs⚠️Pins exist; interrupt sources are not driven
Orientation / tap / freefall detectionNot modelled
  • ✅ Fully supported ⚠️ Partial / stub ❌ Not supported

The part will not acknowledge on the bus until it is powered and has finished booting — the same gate real silicon applies, so firmware that probes too early sees the same NACK it would on a bench.

Drag the 3D control in the editor to tilt the sensor, and firmware reads the change immediately. From the SDK, the current reading is a sample channel:

run.stream("accel1").subscribe(({ value }) => {
console.log(value); // { acceleration_x_g, acceleration_y_g, acceleration_z_g, mode }
});
  • INT1/INT2 are wirable but never asserted
  • No tap, orientation, freefall or transient detection
  • No FIFO