The sensor includes built-in tap detection, activity detection, pedometer/step counter, and a programmable finite state machine/machine learning core that can perform some basic gesture recognition. For interfacing, the user can use either SPI or I2C, and there are two configurable interrupt pins. For advanced usage, the user can attach additional devices to an external I2C/SPI port, which is used for optical image stabilization. The sensor has been placed on a compact breakout board with voltage regulation and level-shifted inputs. That allows the user to use them with 3V or 5V power/logic devices.