The SENtral Motion Coprocessor is a
custom integrated circuit that makes it easy
to quickly incorporate, optimize and operate
multiple motion sensors on mobile
consumer electronics devices. SENtral
employs and manages a user-specified
3-axis magnetometer, 3–axis accelerometer,
and 3–axis gyroscope to provide reliable
motion tracking, and accurate heading and
orientation data. SENtral gathers data from
the individual sensors, then integrates and
fuses this data using PNI’s proprietary
Kalman filtering and heuristic algorithms.
Features
Heading Accuracy of 2° rms.
Ultra Low Power Consumption
Continuous Soft and Hard-Iron
Magnetic Auto-Calibration
Magnetic Anomaly
Compensation
I2C Interface – 100 to 3400 kHz
Small Form-Factor
Sensor Flexibility
By offloading the sensor fusion and
interface from a dedicated sensor hub MCU
or the host CPU to SENtral, overall power
requirements are dramatically lowered and
processing power is opened up for other
uses.
These advantages make SENtral the ideal
choice for mobile and consumer electronics
devices desiring ultra-lower power
consumption and best-in-class sensor fusion.
Applications
Cell Phones
Tablets
Ultrabooks
TV Remote Controls
Video Game Controllers
The SENtral Motion Coprocessor is an integrated circuit that makes it easy to quickly integrate,
optimize and operate multiple sensors on mobile consumer electronics devices. SENtral manages
and uses data from a user-specified 3-axis gyroscope, 3-axis accelerometer, and 3-axis
magnetometer to provide reliable motion tracking and an accurate compass heading, while
consuming about 1% of the power of a comparable sensor fusion microprocessor.
Note: This revision of the SENtral Technical Datasheet applies to Configuration Files of revision 1.1 or
higher. The Configuration File is discussed in Sections 1.2, 5.1, 5.6.2, and 6, and Appendix I. It is
generated by the SENtral Configuration Tool and is uploaded into SENtral RAM after power up.
1.1 SENtral Features and Benefits
Features and benefits of the SENtral Motion Coprocessor include:
Low power consumption. Offloads sensor processing from the less efficient host
CPU, consuming <1% of the power of a Cortex M0 running a comparable sensor
fusion algorithm. Provides the ability to tailor the tradeoff between power
consumption and motion-tracking performance.
Industry-leading heading accuracy. Unparalleled heading accuracy for consumer
electronics applications.
Continuous hard and soft-iron magnetic auto-calibration. Provides continual
background calibration of the sensors. Leverages PNI’s more than 20 years of
experience and expertise in magnetic measurement.
Magnetic anomaly compensation. Heading and motion tracking is unaffected by
magnetic anomalies such as rebar in buildings, desks, speakers etc., that can easily
throw off the accuracy. SENtral recognizes and compensates for these anomalies.
Sensor flexibility. Works with common consumer electronic MEMS motion sensors,
so system designers can choose the sensors most appropriate for their systems.
Small form-factor. 1.6x1.6x0.5 mm chip-scale package on 0.4 mm pitch. Uses little
PCB real estate, allowing for painless integration.
I2C interface. Uses the industry-standard I2C protocol to interface to the sensors and
the host, so system integration is straightforward. Standard, Fast, Fast Plus, and High
Speed are supported on the host bus.
Figure 1-1 provides a diagram of SENtral’s primary functional blocks, and a brief description
of these functional blocks follows.
Figure 1-1: SENtral Block Diagram
Quaternion generates the orientation output, where the actual orientation outputs can
be quaternions or Euler angles (heading, pitch, & roll). The outputs are updated at a
rate limited to the gyro output data rate (ODR), to a maximum of 400 Hz.
Kalman Update fuses data from the 3-axis gyroscope, 3-axis accelerometer, and 3-
axis magnetometer, plus data from the magnetic anomaly determination and
continuous auto-calibration blocks to generate intelligent orientation updates. The
Kalman update involves a sophisticated multi-state Kalman algorithm.
Continuous Hard and Soft-Iron Auto-Calibration. SENtral is the only product in
the market that auto-calibrates for both hard-iron and soft-iron magnetic distortions.
While others may calibrate for hard-iron distortion, soft-iron distortion is more
difficult to correct for, and it can be caused by EMI shielding tape and other shielding
materials widely used in mobile and consumer electronic devices. It is important to
correct for soft-iron distortions since these can contribute up to 90° of error.
Additionally, since a host system’s magnetic signature can change over time and
temperature, SENtral’s continuous auto-calibration ensures accuracy all the time.
Magnetic Anomaly Determination establishes if a transient magnetic distortion is
present and accounts for it.
Configuration RAM allows for customizing SENtral to match the specific sensors
being used and allows the user to tailor certain parameters for their specific system.
The SENtral Configuration Tool generates the SENtral Configuration File, and this is
subsequently uploaded into SENtral’s Configuration RAM.
Pass-Through allows for direct communication with devices on the sensor bus by
connecting SENtral’s I2C Host Interface to the Sensor Interface.
Host Interface communicates with the host system. Data is transmitted between the
host and SENtral via the host I2C bus, in which the host acts as the master and
SENtral acts as a slave device. SENtral signals the host that new data is available by
sending an interrupt signal on the host DRDY line.
Sensor Interface communicates primarily with the sensors. Sensor data is
transmitted from the sensors to SENtral via the sensor I2C bus, in which SENtral acts
as the master and the sensors as the slave devices.
Stresses beyond those listed above may cause permanent damage to the device. These
are stress ratings only. Operation of the device at these or other conditions beyond those
indicated in the operational sections of the specifications is not implied.
1. SENtral’s current consumption in normal operation is dependent on a number of variables,
including the sensor update rates and the I2C sensor bus rate. The range given will be
typical for most customers. There is a trade-off between sensor update rates and current
consumption, as more frequent sensor update rates result in improved motion-tracking
performance, while less frequent sensor update rates result in reduced current
consumption. Faster I2C sensor bus rates result in lower current consumption.
2. Pass-Through current consumption assumes SENtral previously was in Standby State,
which is recommended, and a sensor bus rate of 400 kbits/s (Fast mode).
3. SENtral’s I2C Host Interface supports Standard, Fast, Fast Plus, and High Speed Modes.
High Speed Mode (3400 kHz) is supported with a reduced range of VDD and bus
capacitance. SENtral’s I2C sensor bus interface supports Standard, Fast, and Fast Plus
Modes. Pass-Through State, which connects the sensor bus and host bus, supports
Standard and Fast Modes.
Figure 3-1 provides a basic reference schematic for connecting SENtral with the host system
and the various sensors.
Figure 3-1: SENtral System Reference Schematic
A few points on system layout.
SENtral communicates with the sensors as the master via a dedicated I2C sensor bus.
The layout shows a discrete magnetometer, accelerometer, and gyroscope. SENtral
also works with combo sensors, such as a single 9-axis sensor or a combo gyro/accel
with a discrete magnetometer.
SENtral acts as a slave on the host system’s I2C bus. This does not need to be a
dedicated bus, although it is shown this way in the schematic. SA0 establishes
SENtral’s slave address when communicating with the host. It is shown set to
ground, but can be set HIGH instead. See Section 4.2.
The pull-up resistance on the I2C lines depends on the number of devices on the bus
and the bus speed. Normally 4.7 kΩ is appropriate for Standard or Fast modes(≤400
kbit/sec). See Section 4.4.
There are three dedicated sensor interrupt lines between the sensors and SENtral, and
one interrupt line between the host and SENtral. The default GPIO assignments are
shown, but these can be altered with the SENtral Configuration Tool. See Section 6.
SENtral provides for considerable flexibility in sensor orientation and layout, but there are
some basic requirements, as given below.
All three axes of a sensor must be orthogonal to each other. This is by-design for
most accelerometers, gyroscopes, and magnetometers.
A sensor’s X axis and Y axis should act parallel to the primary plane of the
motherboard. A sensor’s Z axis should act perpendicular to the primary plane.
Either a sensor’s X axis or Y axis should align parallel to the line-of-sight of the
motion-tracking device.
It is NOT necessary that the gyroscope, accelerometer, and magnetometer have their
same-axis sensors (i.e. all X-axis sensors) point in the same direction, since sensor
orientation is configured when running the SENtral Configuration Tool and stored in
the SENtral Configuration File.
Assuming the Orientation Matrix is properly input in the SENtral Configuration Tool,
SENtral will output data conforming to a North-East-Down (NED) convention. To convert
to East-North-Up (ENU) see Appendix II – Converting Quaternions.
In addition to the requirements listed above, other recommendations regarding sensor layout
are given below. These represent good practices, but are not mandatory.
Accelerometer
o Locate the accelerometer near the expected center of rotation of the device to
minimize rotational accelerations being interpreted as linear accelerations.
Magnetometer
o Locate the magnetometer >1 cm away from magnetic sources (hard-iron), such as
speaker magnets or known magnetized metals. If uncertain about whether a
component is a magnetic source, check it with a Gauss meter if possible.
o For non-magnetic components, try to avoid placing wireless antenna, power
capacitors, inductors, ferrite beads, and components using ferromagnetic materials
(Fe, Co, Ni) within 1 cm of the magnetometer. Examples of components in a cell
phone which typically contain ferromagnetic materials are the memory card slot,
battery, frame, electrical and magnetic noise shields, connectors, and hinges.
o Materials that are magnetically transparent, and thus relatively safe, include
aluminum, gold, titanium, copper, brass, and magnesium. Most stainless steel
alloys have relatively weak magnetic properties and are not as safe as those just
listed, but don’t need as much attention as ferromagnetic materials.
o Locate high-frequency signal lines away from the magnetometer.
o Locate power lines away from the magnetometer, per the table below.
Table 3-2: Recommended Power Line Distance from Magnetometer
3.4 Dedicated EEPROM (Optional)
A crucial step in using the SENtral coprocessor is uploading the SENtral Configuration File
into SENtral’s RAM. This file contains information on how the sensor system is configured
in the user’s system, and is generated with the SENtral Configuration Tool, as discussed in
Section 6. The Configuration File can be manually uploaded from non-volatile memory in
the host CPU or automatically uploaded from a dedicated EEPROM. The primary
advantages of using a dedicated EEPROM are freeing up host processor memory and
minimizing the time from power-up until the upload is complete. The advantages of using
host CPU memory are no additional cost and no additional system footprint requirement.
If implementing a dedicated EEPROM, connect it to SENtral as a slave device on the sensor
bus, in parallel with the sensors shown in Figure 3-1. The EEPROM upload rate should be
set with the SENtral Configuration Tool (see Section 6.1.3). Faster is generally better,
although the sensor bus rate is limited to 1 Mb/sec. Writing the Configuration File onto the
EEPROM can be accomplished either using an EEPROM programmer or by writing to the
EEPROM from the host while SENtral is in Pass-Through State.
The primary EEPROM requirements are:
≥320 Kbit (40 Kb x 8 bits) of memory.
Shifted address of 0xA0, 0xA2, 0xA4, 0xA6, 0xA8, or 0xAA. (Unshifted address of
0x50, 0x52, 0x54, 0x56, 0x58, or 0x5A.)
The following devices have been used with SENtral, but this list is not exhaustive.
Microchip 24LC256T-I/SN
ST M24M01-DRCS
Renesas R1EX24512ASAS0A
Communication with the host processor and sensors is via an I2C interface and interrupt lines.
The SENtral Motion Coprocessor acts as the I2C master with the sensors and as a slave with the
host processor. The sensor interrupt lines let SENtral know when new data is available, while
the host interrupt line lets the host system know when SENtral has updated the quaternions. The
sensor and host output data rates are set by the MagRate, AccelRate, GyroRate, and
QRateDivisor registers.
SENtral’s I2C interface complies with NXP’s UM10204 specification and user manual, rev 04.
Standard, Fast, Fast Plus, and High Speed modes of the I2C protocol are supported by SENtral’s
I2C host interface. Below is a link to this document.
SENtral’s I2C timing requirements are set forth below, in Figure 4-1 and Table 4-1. For the
timing requirements shown in Figure 4-1, transitions are 30% and 70% of VDD.
The host will control SENtral on the host bus via SENtral’s I2C host interface. The host
interface consists of 2 wires: the serial clock, SCLS, and the serial data line, SDAS. Both
lines are bi-directional. SENtral is connected to the host bus via the SDAS and SCLS pins,
which incorporate open drain drivers within the device. The host bus lines must be
externally connected to a positive supply voltage (DVIO) via a pull-up resistor. See Section
4.4 for more on the pull-up resistor.
SENtral’s 7-bit I2C slave address is 0b010100x, where the most significant 6 bits of the slave
address are pre-defined in hardware and are the same for all SENtral devices. The least
significant bit is user-configurable, using the SA0 pin to set the bit to ‘0’ or ‘1’. For
example, grounding the SA0 pin (‘0’ value) results in the 7-bit address of 0b0101000. This
should be set so the SENtral slave address is unique to any other devices on the host bus.
Note that setting SA0 to ‘1’ requires utilizing microvia technology, as discussed in Section 8.
------------ Data Transferred (n bytes + acknowledge) ------------
From SENtral to Host
START
SLAVE ADDRESS
RW
ACK
REGISTER ADDRESS (N)
ACK
START
SLAVE ADDRESS
RW
ACK
DATA FROM REGISTER (N)
NACK
STOP
S
A5
A4
A3
A2
A1
A0 0 0
R7
R5
R4
R3
R2
R1
R0 0 SR
A6
A5
A4
A3
A2
A1
A0 1 0
D7
D5
D4
D3
D2
D1
D0 1 P
Data Transferred
(n bytes + acknowledge)
START
SLAVE ADDRESS
RW
ACK
REGISTER ADDRESS (N)
ACK
STOP
S
A5
A4
A3
A2
A1
A0 0 0
R7
R5
R4
R3
R2
R1
R0 0 P
START
SLAVE ADDRESS
RW
ACK
DATA FROM REG. (N)
ACK
DATA FROM REG. (N+1)
NACK
STOP
S
A5
A4
A3
A2
A1
A01 0
D7
D5
D4
D3
D2
D1
D00 D7
D5
D4
D3
D2
D1
D01 P
From Host to SENtral
-------------- Data Transferred (n bytes + acknowledge) --------------
From SENtral to Host
Data transfer is always initiated by the host. Data is transferred between the host and
SENtral serially through the data line (SDAS) in an 8-bit transfer format. The transfer is
synchronized by the serial clock line, SCLS. Supported transfer formats are single-byte read,
multiple-byte read, single-byte write, and multiple-byte write. The data line can be driven
either by the host or SENtral. Normally the serial clock line will be driven by the host,
although exceptions can exist when clock-stretching is implemented in Pass-Through State.
4.2.1 I2C Slave Transfer formats
Figure 4-2 illustrates writing data to registers in single-byte or multiple-byte mode.
Figure 4-2: I2C Slave Write Example
The I2C host interface supports both a read sequence using repeated START conditions,
shown in Figure 4-3, and a sequence in which the register address is sent in a separate
sequence than the data, shown in Figure 4-4 and Figure 4-5.
Figure 4-3: I2C Slave Read Example, with Repeated START
Figure 4-4: I2C Slave Write Register Address Only
Figure 4-5: I2C Slave read register from current address
SENtral communicates with the accelerometer, gyroscope, and magnetometer over the sensor
bus, where SENtral acts as the I2C master and the sensors act as the I2C slaves. On the
sensor bus, SENtral initiates data transfer and generates the serial clock. SENtral’s I2C
sensor interface supports Standard mode with a rate up to 100 kbit/s, Fast mode with a rate
up to 400 kbit/s, and Fast Plus mode with a rate up to 1000 kbit/s.
The two wires comprising the sensor bus are SDAM, the serial data line, and SCLM, the
serial clock. Both are bidirectional and driven by open drain transistors within SENtral.
Each line should be attached to a pull-up resistor, which is further discussed in Section 4.4.
4.4 I2C Pull-Up Resistance
The pull-up resistor value for both the host and sensor bus will depend on the I2C data rate
and the number of devices on the bus. Table 4-2 provides the maximum acceptable bus
capacitance, as a function of bus rate, which can be accommodated with a 4.7 kΩ or 2.4 kΩ
pull-up resistor. As a general rule, each device connected to the bus represents 10 pF of
capacitance on the bus, so a bus with 4 devices would require a “Max Cb” value of >40 pF.
Table 4-2: I2C Pull-Up Resistance Table
As the table implies, for most Standard and Fast Mode implementations a 4.7 kΩ pull-up
should work well, while a 2.4 kΩ pull-up normally should be used for Fast Plus. See Section
7.1 of NXP’s UM10204 specification for additional information.
Figure 5-1 provides a flow chart of the initialization process, and a detailed discussion of the
initialization process follows in Section 5.1. For the registers, all multi-byte elements are
stored and transmitted using the Little Endian convention: the least significant byte is
stored at the lowest address and transmitted first over the I2C bus.