SENtral® M&M Motion & Measurement Modules General Description PNI’s SENtral M&M motion and measurement modules provide accurate heading and orientation data in a small, lowpower-consumption, and easy-to-integrate package. A module incorporates the SENtral motion coprocessor, a magnetometer, an accelerometer, a gyroscope, and an optional barometric pressure sensor with different SENtral M&M versions comprising different sensor models. Unlike other inertial measurement units (IMUs) requiring extensive sensor fusion algorithm development and sensor calibration work, the Sentral M&M modules are pre-engineered to provide high accuracy motion tracking, heading, environmental data. And this is obtained at a fraction of the power used by any other solution on the market. Features All-in-one motion & orientation tracking module, incorporates the SENtral motion coprocessor, 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer, and barometric pressure sensor. Low power consumption. 11x11 mm footprint and SMT design for ease of integration into a user’s system Multiple versions with different sensors. Applications Personal Navigation & LBS Gaming & Augmented Reality Movement Science & Fitness Ordering Information The SENtral M&M comes ready to integrate into a user’s systemThe on-board EEPROM contains SENtral’s configuration file and this automatically uploads into SENtral RAM when powered up. Item Sensors White none (Sentral only) 13734 Orange BMI055+AK8963 13771 Red MPU6500+AK8963 13763 With the SENtral M&M modules you can quickly and easily incorporate industryleading motion-tracking and orientation measurement in your mobile device. We’re sure you’ll be impressed. Green LSM330+AK8963 13736 Yellow LSM9SD0 13738 Blue LSM330+RM3100 13759 Purple BMI160+BMM150+BMP280 13807 Pink LSM6DS3+AK9911+LPS25H 13813 Part # Table of Contents 1 PRODUCT OVERVIEW ............................................................................................... 3 1.1 SENTRAL FEATURES AND BENEFITS ........................................................ 3 1.2 SENTRAL M&M SYSTEM OVERVIEW .......................................................... 4 1 2 SENTRAL SPECIFICATIONS .................................................................................... 6 2.1 PERFORMANCE CHARACTERISTICS ......................................................... 6 2.2 ELECTRICAL CHARACTERISTICS ............................................................... 6 3 INTERFACE ................................................................................................................. 8 2 3.1 I C TIMING ...................................................................................................... 9 2 3.2 I C HOST INTERFACE (HOST BUS) ........................................................... 10 2 3.2.1 I C Transfer formats ......................................................................... 11 2 3.3 I C SENSOR INTERFACE (SENSOR BUS) ................................................. 12 3.4 HOST INTERRUPT/GPIO LINES ................................................................. 12 4 OPERATION .............................................................................................................. 13 4.1 POWER-UP ................................................................................................... 14 4.2 INITIAL REGISTER SET-UP ......................................................................... 14 4.3 RUNNING IN NORMAL OPERATION .......................................................... 16 4.3.1 Error .................................................................................................. 18 4.3.2 Read Results .................................................................................... 18 4.4 STANDBY STATE ......................................................................................... 19 4.5 PASS-THROUGH STATE ............................................................................. 20 4.6 TROUBLESHOOTING .................................................................................. 22 4.6.1 Hardware-Related Error Conditions ................................................. 22 4.6.2 Software-Related Error Conditions ................................................... 23 5 PACKAGE INFORMATION ....................................................................................... 25 6 ASSEMBLY GUIDELINES......................................................................................... 27 7 SENTRAL M&MS WITH PRESSURE SENSORS OVERVIEW ................................ 29 7.1 SYSTEM SCHEMATICS ............................................................................... 29 7.2 SPECIFICATIONS ......................................................................................... 30 7.3 INTERFACE .................................................................................................. 31 APPENDIX I – CONVERTING QUATERNIONS .................................................................... 32 APPENDIX II – PARAMETER TRANSFER ............................................................................ 34 APPENDIX III – MEASURING CURRENT CONSUMPTION ................................................. 40 PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 1 List of Figures Figure 1-1: SENtral M&M Module Reference Schematic ......................................................... 4 2 Figure 3-1: I C Timing Diagram ................................................................................................ 9 2 Figure 3-2: I C Slave Write Example ...................................................................................... 11 2 Figure 3-3: I C Slave Read Example, with Repeated START................................................ 11 2 Figure 3-4: I C Slave Write Register Address Only ................................................................ 11 2 Figure 3-5: I C Slave read register from current address ....................................................... 11 Figure 4-1: SENtral Initialization Sequence ............................................................................ 13 Figure 4-2: SENtral Operational States .................................................................................. 13 Figure 4-3: SENtral Normal Operation Flow ........................................................................... 18 Figure 5-1: SENtral Orange, Red, Green, & Yellow M&M Mechanical Drawing .................... 25 Figure 5-2: SENtral White M&M Mechanical Drawing............................................................ 25 Figure 5-3: SENtral Blue M&M Mechanical Drawing.............................................................. 26 Figure 6-1: SENtral Orange, Red, Green, & Yellow M&M Solder Pad Layout ....................... 27 Figure 6-2: SENtral White M&M Solder Pad Layout .............................................................. 27 Figure 6-3: SENtral Blue M&M Solder Pad Layout ................................................................ 28 Figure 7-1: SENtral M&M Purple Schematic ........................................................................... 29 Figure 7-2: SENtral M&M Pink Schematic .............................................................................. 30 Figure A2-0-1: Parameter Load Process ................................................................................ 35 Figure A2-0-2: Parameter Retrieve Process .......................................................................... 36 Figure A3-0-1: SENtral Blue M&M Zero-Ohm Resistor Location ........................................... 40 List of Tables Table 2-1: Performance Characteristics ................................................................................... 6 Table 2-2: Absolute Maximum Ratings .................................................................................... 6 Table 2-3: Operating Conditions............................................................................................... 7 Table 3-1: SENtral M&M Module Pin Assignments .................................................................. 8 2 Table 3-2: I C Timing Parameters .......................................................................................... 10 Table 4-1: Configuration File Upload from EEPROM Registers ............................................ 14 Table 4-2: Registers for Initial Set-up ..................................................................................... 15 Table 4-3: Normal Operation Registers .................................................................................. 17 Table 4-4: Results Registers .................................................................................................. 19 Table 4-5: Standby Registers ................................................................................................. 20 Table 4-6: Pass-Through Registers........................................................................................ 21 Table 4-7: Hardware-Related Error Indications ...................................................................... 22 Table 4-8: Software-Related Error Indications ....................................................................... 23 Table 4-9: ErrorRegister Indications ....................................................................................... 23 Table 4-10: RAMVersion Register Values .............................................................................. 24 Table 7-1 Pressure Senor Data Accesss ................................................................................ 31 Table A2-0-1: Registers Used for Parameter Transfer........................................................... 34 Table A2-0-2: Parameter Numbers ........................................................................................ 37 Table A2-0-3: DriverID & AlgorithmID Definition .................................................................... 39 PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 2 1 Product Overview The SENtral M&M Motion and Measurement Module is a castellated printed-circuit assembly that makes it easy to quickly integrate a complete motion-sensor-fusion system into a wearable or mobile device. A module incorporates the SENtral Motion Coprocessor, a magnetometer, an accelerometer, a gyroscope, and an optional barometric pressure sensor with different SENtral M&M versions integrating different sensor models. The SENtral Motion Coprocessor manages and uses data from the sensors to provide reliable motion tracking and an accurate compass heading, while consuming about 1% of the power of a comparable ARM-based sensor fusion microprocessor. SENtral outputs Euler angles (aka heading, pitch, and roll), quaternions, and sensor data. Quaternions uniquely define orientation and, unlike Euler angles, do not experience a singularity (i.e. gimbal lock) when pointing straight up. They easily can be converted to Euler angles, the rotation vector, and the rotation matrix (aka DCM), as discussed in Appendix I. 1.1 SENtral Features and Benefits At the heart of the SENtral M&M module is PNI’s revolutionary SENtral Motion Coprocessor. Listed below are some of the features and benefits of this device. Low power consumption. Offloads sensor processing from the less efficient host CPU, consuming <1% of the power of a general purpose microprocessor 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 auto-calibration. Unlike other motion-tracking products, SENtral calibrates for both hard-iron and soft-iron magnetic distortion. Specifically, soft-iron distortion is quite difficult to correct, and can contribute up to 90° of error. It can be caused by materials widely used in mobile and consumer electronic devices, such as EMI shielding tape and other shielding. Additionally, since a host system’s magnetic signature can change over time and temperature, SENtral’s continuous auto-calibration ensures accuracy over time. Magnetic anomaly compensation. With SENtral, heading and motion tracking is unaffected by short-term magnetic anomalies, such as rebar in buildings, desks, speakers etc., that can easily throw off the accuracy. SENtral establishes if a transient magnetic anomaly is present and compensates for this. Sensor flexibility. SENtral works with most common consumer electronics motion sensors, so designers can choose the sensors most appropriate for their systems. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 3 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 industry-standard I2C protocol in a low-power implementation 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. Outputs. SENtral natively outputs Euler angles (heading, pitch, and roll), quaternions, rotational velocity, linear acceleration, and magnetic field. Pass-Through allows for direct communication with devices on the I2C sensor bus. 1.2 SENtral M&M System Overview Figure 1-1 provides a reference schematic for SENtral M&M modules. While this diagram applies for most versions of the SENtral M&M, the White and Blue M&M modules differ from what is shown and the Purple and Pink include an additional pressure sensor (not shown). Section 7 addresses additional functionality provided by the pressure sensor on the Pink & Purple M&M modules. Specific schematics for each module are available from PNI on request. How to interface with the SENtral M&M is covered in more detail in Section 3. Figure 1-1: SENtral M&M Module Reference Schematic PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 4 A few points on diagram: The layout shows a discrete magnetometer, accelerometer, and gyroscope. SENtral M&M modules generally incorporate a combo sensor that combines the gyroscope and accelerometer into a single device or all three sensors into a single device. SENtral acts as a slave on a host system I2C bus. This does not need to be a dedicated bus, although it is shown this way in the schematic. The SCLM and SDAM lines can be used to monitor SENtral’s I2C sensor bus, but this is not necessary. These lines are optional and may be left unconnected. If the host will poll SENtral, rather than running in an interrupt-driven manner, it is not necessary to connect GPIO[6], the host interrupt line, to the host system. GPIO[4] is intended for future use and currently serves no purpose. This can be left unconnected. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 5 2 SENtral Specifications1 2.1 Performance Characteristics Table 2-1: Performance Characteristics Parameter Minimum Typical Heading Accuracy 2 Output Data Rate 200 Maximum Units ° rms 400 Hz 2.2 Electrical Characteristics Table 2-2: Absolute Maximum Ratings Parameter Symbol Minimum Maximum Units Supply Voltage VDD -0.3 +3.6 VDC Input Pin Voltage VIN GND – 0.3 VDD + 0.3 VDC -50° +150° C Storage Temperature CAUTION: 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. Footnote 1. Specifications subject to change. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 6 Table 2-3: Operating Conditions Parameter Symbol Min Digital Supply Voltage – Sensors & EEPROM DVDD Supply Voltage – SENtral Analog Supply Voltage – Sensors Power-On Reset Threshold Max Units 1.71 AVDD VDC DVDD2 1.6 3.3 VDC AVDD 2.4 3.6 VDC VPOR Typ 1.0 VDC High Level Input Voltage VIH 0.7*VDD VDD VDC Low Level Input Voltage VIL 0 0.3*VDD VDC High Level Output Current, VOH = VDD – 0.3V IOH -1 mA Low Level Output Current, VOL = 0.3V IOL 1 mA Host Bus 3400 kbits/sec Sensor Bus 1000 kbits/sec Pass-Through 400 kbits/sec +85 C 2 I C Interface 1 Data Rate Operating Temperature TOP -40 +25 Footnote: 2 1. SENtral‟s I C 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 2 capacitance. SENtral‟s I C 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. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 7 3 Interface The SENtral M&M pin-out is given in Table 3-1. Pin-outs also are given alongside the device mechanical drawings in Section 5. See Table 2-3 for the operating ranges of DVDD, DVDD2, and AVDD. A discussion of the communication interface follows the table. Table 3-1: SENtral M&M Module Pin Assignments M&M Orange, Red, Green, & Yellow Pin# M&M White Pin # M&M Blue Pin # Pin Name Description DVDD Digital Supply Voltage – Sensors & EEPROM 1 NA 2 DVDD2 Supply Voltage – SENtral 2 D1 2 AVDD Analog Supply Voltage – Sensors 7 NA 7 GND Ground 8 D2 8 SCLS I C host bus SCL clock line 2 3 B1 3 2 5 A1 5 2 9 A4 9 2 SDAS I C host bus SDA data line SDAM I C sensor bus SDA data line SCLM I C sensor bus SCL clock line 10 B4 10 GPIO[0] SENtral Accelerometer Interrupt -- D4 -- GPIO[1] SENtral Magnetometer Interrupt -- C4 -- GPIO[2] SENtral Gyroscope Interrupt -- A3 -- GPIO[3] Reserved -- B3 -- GPIO[4] Reserved 6 A2 6 GPIO[5] Reserved -- B2 -- GPIO[6] Host Event Interrupt 4 C1 4 SA0 Slave Address Pin 0 -- C3 -- VCAP Regulator Capacitor -- D3 -- Reserved Reserved (not connected) -- C2 1, 12, 13 Communication with the host processor is via SENtral’s I2C host interface, where the SENtral M&M acts as a slave device and the host’s processor acts as the master. The host interrupt line informs the host system when SENtral has updated measurement data. The SENtral Motion Coprocessor on the SENtral M&M module communicates with the module’s sensors over the sensor bus, where SENtral is the I2C master and the sensors are slave devices. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 8 SENtral’s I2C interfaces comply 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. http://www.nxp.com/documents/user_manual/UM10204.pdf 3.1 I2C Timing SENtral’s I2C timing requirements are set forth below, in Figure 3-1 and Table 3-2. For the timing requirements shown in Figure 3-1, transitions are 30% and 70% of VDD. Figure 3-1: I2C Timing Diagram PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 9 Table 3-2: I2C Timing Parameters Standard Fast Fast Plus Units Symbol Parameter Min Max Min Max Min Max fSCL SCL Clock 0 100 0 400 0 1000 kHz tr SDA & SCL Rise Time - 1000 20 300 120 ns tf SDA & SCL Fall Time - 300 20*(VDD/ 5.5V) 300 20*(VDD/ 5.5V) 120 ns tLOW LOW period of SCL Clock 4.7 - 1.3 - 0.5 - s tHIGH HIGH period of SCL Clock 4.0 - 0.6 - 0.26 - s tHD;STA Hold time (repeated) START 4.0 - 0.6 - 0.26 - s tHD;DAT Data hold time 0 - 0 - 0 - s tSU:DAT Data set-up time 250 - 100 - 50 - ns tSU;STA Set-Up time for repeated Start 4.7 - 0.6 - 0.26 - s tSU;STO Stop set-up time 4.0 - 0.6 - 0.26 - s tBUF Bus free time between STOP & START 4.7 - 1.3 - 0.5 - s 3.2 I2C Host Interface (Host Bus) The host will control the SENtral M&M 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. Note the SENtral M&M module incorporates 4.7 kΩ pull-up resistors on the host bus clock and data lines, so if the host system also incorporates pull-up resistors on these line the resistors will act in parallel. The SENtral M&M’s 7-bit I2C slave address is 0x28 (0b0101000). The shifted address is 0x50. 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 PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 10 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. I2C Transfer formats 3.2.1 Figure 3-2 illustrates writing data to registers in single-byte or multiple-byte mode. START SLAVE ADDRESS S A6 A5 A4 A3 A2 A1 A0 RW ACK 0 0 REGISTER ADDRESS (N) ACK DATA TO REGISTER (N) R7 R6 R5 R4 R3 R2 R1 R0 0 D7 D6 D5 D4 D3 D2 D1 D0 ACK DATA TO REGISTER (N+1) ACK STOP 0 D7 D6 D5 D4 D3 D2 D1 D0 0 P From Host to SENtral ------------ Data Transferred (n bytes + acknowledge) -----------From SENtral to Host Figure 3-2: I2C Slave Write Example The I2C host interface supports both a read sequence using repeated START conditions, shown in Figure 3-3, and a sequence in which the register address is sent in a separate sequence than the data, shown in Figure 3-4 and Figure 3-5. START SLAVE ADDRESS RW ACK S A6 A5 A4 A3 A2 A1 A0 0 0 REGISTER ADDRESS (N) ACK START R7 R6 R5 R4 R3 R2 R1 R0 0 SR SLAVE ADDRESS RW ACK A6 A5 A4 A3 A2 A1 A0 1 0 DATA FROM REGISTER (N) D7 D6 D5 D4 D3 D2 D1 D0 Data Transferred (n bytes + acknowledge) Figure 3-3: I2C Slave Read Example, with Repeated START START SLAVE ADDRESS RW ACK S A6 A5 A4 A3 A2 A1 A0 0 0 REGISTER ADDRESS (N) R7 R6 R5 R4 R3 R2 R1 R0 ACK STOP 0 P 2 Figure 3-4: I C Slave Write Register Address Only START S SLAVE ADDRESS RW ACK A6 A5 A4 A3 A2 A1 A0 1 0 DATA FROM REG. (N) ACK DATA FROM REG. (N+1) D7 D6 D5 D4 D3 D2 D1 D0 0 D7 D6 D5 D4 D3 D2 D1 D0 NACK STOP 1 P From Host to SENtral -------------- Data Transferred (n bytes + acknowledge) -------------From SENtral to Host Figure 3-5: I2C Slave read register from current address PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 11 NACK STOP 1 P 3.3 I2C Sensor Interface (Sensor Bus) Understanding how the sensor interface operates is not necessary when using the SENtral M&M module. However, understanding the sensor interface is useful if there is a need to communicate directly with a sensor or the EEPROM in Pass-Through state. The SENtral Motion Coprocessor on the SENtral M&M module communicates with the module’s accelerometer, gyroscope, magnetometer and pressure sensor over the module’s sensor bus, where SENtral is the I2C master and the sensors are slave devices. On the sensor bus, SENtral initiates data transfer and generates the serial clock. 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. These can be monitored by the host, but should not be written to by the host. Each line is attached to a 4.7 kΩ pull-up resistor. 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. 3.4 Host Interrupt/GPIO Lines GPIO[6] provides an interrupt to the host whenever a defined event occurs. Exactly which types of events will trigger an interrupt are set by the EnableEvents register, which is discussed in Section 4.2 This interrupt line can be used to signal the host that new results are available for reading. Alternately, the host may poll SENtral’s EventStatus register, discussed in Section 0, to determine if any events of interest have been updated. If polling will be used, PNI recommends polling on a regular interval such that an error event will be identified in a timely manner. GPIO[4] is not currently used, and generally should be left unconnected. This is also true for GPIO[3] and GPIO[5], which are only accessible on the SENtral White M&M. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 12 4 Operation Figure 4-1 provides a flow chart of the SENtral M&M module’s initialization process, and a discussion of this process follows in Section 4.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. Figure 4-1: SENtral Initialization Sequence Once the initialization sequence is complete, there are three states in which SENtral may reside: Normal Operation, Standby, and Pass-Through. Figure 4-2 indicates the recommended way to get from one state to another, and these states are discussed in detail in Sections 4.2 and 0 (Normal Operation), 4.4 (Standby), and 4.5 (Pass-Through). Figure 4-2: SENtral Operational States PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 13 4.1 Power-Up After powering up or issuing a ResetReq command, SENtral automatically initializes the registers and loads the SENtral Configuration File from the onboard EEPROM, as indicated in Figure 4-1. The Configuration File contains information specific to the particular SENtral M&M flavor, and is discussed more thoroughly in the SENtral Motion Coprocessor Technical Datasheet. Once the upload is complete, SENtral enters Initialized State and waits for instructions from the host. Table 4-1: Configuration File Upload from EEPROM Registers Register Name Address Register Value SentralStatus 0x37 [0] EEPROM. 1 = EEPROM detected [1] EEUploadDone. 1 = EEPROM upload completed [2] EEUploadError. 1 = Calculated CRC of EEPROM is incorrect. Only valid when EEUploadDone = 1. [3] Idle. 1 = Device in Unprogrammed or Initialized state. [4] NoEEPROM. 1 = No EEPROM detected. ResetReq 0x9B [0] ResetRequest. 1 = Emulate a hard power down/power up. The host should confirm a successful EEPROM upload by following the steps below: Read the value from the SentralStatus register. Check bit [0], the EEPROM bit, to ensure an EEPROM is detected by SENtral. Check bit [1], the EEUploadDone bit. If this is ‘0’ then the Configuration File upload is not complete, and reread the SentralStatus register until bit [1] = 1. Once bit [1] = 1, check bit [2], the EEUpload Error bit. If this is ‘0’, then the upload was successful. If the Configuration File upload failed, send a Reset command by writing 0x01 to the ResetReq register or power off/power on the device. If the issue persists, refer to the SENtral Motion Coprocessor datasheet for debugging hints. 4.2 Initial Register Set-Up After the initialization process is complete, it is necessary to configure a few of SENtral’s registers before running in Normal Operation. These registers are given in Table 4-2. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 14 Table 4-2: Registers for Initial Set-up Register Name Address Register Value MagRate 0x55 Requested magnetometer output data rate AccelRate 0x56 Requested accelerometer output data rate divided by 10 GyroRate 0x57 Requested gyroscope output data rate divided by 10 QRateDivisor 0x32 Along with GyroRate, establishes output data rate for quaternion data. 0x54 [0] 1 = StandbyEnable 0 = Disable Standby State (return to Normal Operation) [1] RawDataEnable. 1 = Raw data provided in MX, MY, MZ, AX, AY, AZ, GX, GY, & GZ. 0 = Scaled sensor data. [2] HPRoutput. 1 = Heading, pitch, and roll output in QX, QY, & QZ. QW = 0.0. 0 = Quaternion outputs. 0x33 „1‟ indicates an interrupt to the host will be generated for the event. [0] CPUReset. Non-maskable [1] Error [2] QuaternionResult [3] MagResult [4] AccelResult [5] GyroResult AlgorithmControl EnableEvents Perform the following operations to run SENtral as desired. Set the sensor output data rates (ODRs): MagRate, AccelRate, and GyroRate. If a sensor rate is set to 0x00, SENtral will shutdown the sensor and disable SENtral background calibration. There are two major points regarding setting these registers: o The AccelRate and GyroRate register values should be 1/10th the desired ODR, while the MagRate value should match the desired ODR. For example, if the desired ODR is 30 Hz for the magnetometer, 100 Hz for the accelerometer, and 200 Hz for the gyroscope, then the respective register values should be 0x1E (30d), 0x0A (10d), and 0x14 (20d). o The actual accelerometer and gyro ODRs are limited to the ODRs supported by the specific sensors. If the AccelRate or GyroRate register values do not correspond to a supported ODR, then the next highest ODR will be used. For instance, if the GyroRate register is set to 0x14, which corresponds to 200 Hz, but the gyro supports 95 Hz, 190 Hz, and 380 Hz, then the actual gyro ODR will be 380 Hz since this is the closest supported rate above that requested by the register. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 15 Establish the quaternion output data rate, where the quaternion output data rate equals GyroRate divided by QRateDivisor. The default for QRateDivisor is 0x00, which is interpreted as ‘1’ and results in the quaternion output data rate equaling GyroRate. Establish how SENtral’s orientation and sensor data is to be output. The AlgorithmControl register allows the user to select either quaternion or Euler angles (heading, pitch, and roll) for orientation outputs, and either scaled or raw sensor data outputs. The defaults are quaternions and scaled sensor data. Establish which events will trigger an interrupt to the host by configuring the EnableEvent register. PNI specifically recommends enabling bit [1], the Error interrupt bit, in addition to whichever other interrupts the user wants. Example steps to do this are below: Write 0x1E0A0F to the MagRate register. Since SENtral automatically increments to the next register, this also populates the AccelRate and GyroRate registers. This sets MagRate to 100 Hz, AccelRate to 100 Hz, and GyroRate to 150 Hz. Write 0x02 to the QRateDivisor Register. This sets the quaternion output data rate to be half the GyroRate. This step is optional, as the default register value of 0x00 sets the quaternion output data rate equal to GyroRate. Write 0x06 to the AlgorithmControl register. This enables heading, pitch, and roll orientation outputs and raw sensor data outputs. This step is optional, as the default register value of 0x00 results in outputs of quaternions and scaled sensor data. Write 0x07 to the EnableEvents register. This sets the host to receive interrupts from SENtral whenever the quaternion results registers (QX, QY, QZ, and QW) are updated, an error has been detected, or SENtral has been Reset but the Configuration File has not been uploaded. If the host regularly will poll SENtral, rather than run in an interrupt-driven manner, it is not necessary to set the EnableEvents register. Note: It is necessary to set the MagRate, AccelRate, AND GyroRate registers to non-zero values for the SENtral algorithm to function properly and to obtain reliable orientation and scaled sensor data. If a [Sensor]Rate register is left as 0x00 after power-up, or is changed to 0x00, this effectively disables that sensor within the SENtral algorithm. Also, the CalStatus, MagTransient, and AlgorithmSlow bits become undefined. 4.3 Running in Normal Operation After performing the steps listed above, SENtral is ready to start generating orientation data. The registers used to run in Normal Operation are given in Table 4-2, the steps to follow comes after this, and a flow diagram is given in Figure 4-3. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 16 Table 4-3: Normal Operation Registers Register Name Address HostControl EventStatus Register Value 0x34 [0] 1 = RunEnable 0 = Enable Initialized State (Standby State generally is preferred since enabling Initialized State resets the SENtral algorithm, including calibration data.) 0x35 „1‟ indicates a new event has been generated. [0] CPUReset [1] Error [2] QuaternionResult [3] MagResult [4] AccelResult [5] GyroResult Below are the steps to follow when operating in Normal Operation state. a) Write 0x01 to the HostControl register. This sets the RunEnable bit to ‘1’ and enables the sensors and the SENtral algorithm. b) If operating in an interrupt-driven mode, then the host waits until it receives an interrupt signal from SENtral. Alternatively the host may operate on a polling basis, rather than an interrupt-driven basis, in which case the interrupt line may not be used. c) Once an interrupt is received by the host or the host otherwise decides to read new data, read the EventStatus register. d) Interpret and act on the EventStatus register in the priority shown in Figure 4-3. If bit [1], the Error bit, is ‘1’, see Section 4.3.1. If bits [2], [3], [4], or [5], the Results bits, are ‘1’, see Section 4.3.2. Bit [0], the CPUReset bit, should never be ‘1’, since this bit only can be ‘1’ after a Reset or powering up and prior to loading the Configuration File, and on the SENtral M&M module loading of the Configuration File is automatically performed after powering up. e) Repeat steps c and d until new orientation data is not needed and/or the host decides to enter a different state. Reading the EventStatus register clears it. It is possible for more than one bit position to be ‘1’ in the EventStatus register, especially if the host does not always read the EventStatus register after receiving an interrupt. Similarly, if multiple bits are set to ‘1’ in the EventStatus register, once the register is read all the bits will be set to ‘0’. For this reason the EventStatus register should be processed in the priority shown in Figure 4-3, as information will be cleared for events that are not handled. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 17 Figure 4-3: SENtral Normal Operation Flow A discussion of how to handle the events follows. 4.3.1 Error In the event of an error, SENtral will trigger an error interrupt and SENtral will enter Standby State. See the Section 4.6 for recommendations on Troubleshooting and/or reset SENtral by sending 0x01 to the ResetReq register, at address 0x9B. 4.3.2 Read Results The Results Registers’ addresses, formats, and full-scale ranges are given below in Table 4-4. For an explanation of how to convert quaternions to the rotation vector, the rotation PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 18 matrix, or Euler angles (heading, pitch, and roll), see Appendix I. The resolution is 32 kHz for all timestamps. Note: All multi-byte elements are stored and transmitted using the Little Endian convention: the 2 least significant byte is stored at the lowest address and transmitted first over the I C bus. Table 4-4: Results Registers Name Address (Hex) Description Format Full-Scale Range QX 00 – 03 Normalized Quaternion – X, or Heading Float32 0.0 – 1.0, or ± QY 04 – 07 Normalized Quaternion – Y, or Pitch Float32 0.0 – 1.0, or ±/2 QZ 08 – 0B Normalized Quaternion – Z, or Roll Float32 0.0 – 1.0, or ± QW 0C – 0F Normalized Quaternion – W, or 0.0 Float32 0.0 – 1.0 QTime 10 – 11 Quaternion Data Timestamp UInt16 0 – 2048 msec MX 12 – 13 Magnetic Field – X Axis, or Raw Mag Data Int16 ±1000 µT when scaled MY 14 – 15 Magnetic Field – Y Axis, or Raw Mag Data Int16 ±1000 µT when scaled MZ 16 – 17 Magnetic Field – Z Axis, or Raw Mag Data Int16 ±1000 µT when scaled MTime 18 – 19 Magnetometer Interrupt Timestamp UInt16 0 – 2048 msec AX 1A – 1B Linear Acceleration – X Axis, or Raw Accel Data Int16 ±16 g when scaled AY 1C – 1D Linear Acceleration – Y Axis, or Raw Accel Data Int16 ±16 g when scaled AZ 1E – 1F Linear Acceleration – Z Axis, or Raw Accel Data Int16 ±16 g when scaled ATime 20 – 21 Accelerometer Interrupt Timestamp UInt16 0 – 2048 msec GX 22 – 23 Rotational Velocity – X Axis, or Raw Gyro Data Int16 ±5000°/s when scaled GY 24 – 25 Rotational Velocity – Y Axis, or Raw Gyro Data Int16 ±5000°/s when scaled GZ 26 – 27 Rotational Velocity – Z Axis, or Raw Gyro Data Int16 ±5000°/s when scaled GTime 28 – 29 Gyroscope Interrupt Timestamp UInt16 0.0 – 2.048 sec 4.4 Standby State In Standby State overall system power consumption is dramatically reduced because both the SENtral algorithm and the sensors are shut down. Table 4-5 provides the registers associated with Standby State. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 19 Table 4-5: Standby Registers Register Name Address Register Value AlgorithmControl 0x54 [0] 1 = StandbyEnable 0 = Disable Standby State AlgorithmStatus 0x38 [0] 1 = SENtral in Standby State 0 = SENtral not in Standby State The steps to enter and exit Standby State are given below: Write 0x01 to the AlgorithmControl register. This places SENtral in Standby State. Read the AlgorithmStatus register. If bit [0] is ‘1’, then SENtral is in Standby State. This step is optional. When you are ready to exit Standby State, write 0x00 to the AlgorithmControl register. This takes SENtral out of Standby State and normally will place it back into Normal Operation. Read the AlgorithmStatus register. If bit [0] is ‘0’, then SENtral is not in Standby State. This step is optional. 4.5 Pass-Through State In Pass-Through State, SENtral’s sensor and host interfaces are connected by internal switches so the host system can communicate directly with the sensors or EEPROM. To enter Pass-Through State, SENtral first either should be in Standby or Initialized State. Consequently, in Pass-Through State the SENtral algorithm, host interrupt line, and sensors are disabled, unless a sensor is directly turned on by the host. When exiting Pass-Through State, SENtral will return to its prior state. Note: When entering Pass-Through State the sensor’s registers retain the values established by SENtral, and when exiting Pass-Through State any register changes will be retained. Uses for the Pass-Through State include: Direct control of sensors, if desired. Debugging. Communication with the dedicated EEPROM, if implemented. Specifically, if a new Configuration File is generated, the host can write this into the EEPROM when in Pass-Through State, as discussed in the SENtral Motion Coprocessor datasheet. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 20 Since operating in Pass-Through State requires stopping the SENtral algorithm, PassThrough State is not recommended for accessing sensor data unless reliable heading data is not required. If sensor data and reliable heading data are both desired, they can both be accessed during Normal Operation from the Results Registers, as given in Table 4-4. Table 4-6 provides the registers associated with Pass-Through State. Table 4-6: Pass-Through Registers Register Name Address Register Value AlgorithmControl 0x54 [0] 1 = StandbyEnable 0 = Disable Standby State AlgorithmStatus 0x38 [0] 1 = SENtral in Standby State 0 = SENtral not in Standby State PassThroughControl 0xA0 [0] 1 = Enable Pass-Through State 0 = Disable Pass-Through State PassThroughStatus 0x9E [0] 1 = SENtral in Pass-Through State. 0 = SENtral not in Pass-Through State. The steps to go in and out of Pass-Through State are given below. Write 0x01 to the AlgorithmControl register. This places SENtral in Standby State. Write 0x01 to the PassThroughControl register. This places SENtral in Pass-Through State. Read the PassThroughStatus register. If bit [0] is ‘1’, then SENtral is in PassThrough State. This step is optional. When you are done in Pass-Through State, write 0x00 to the PassThroughControl register. This terminates Pass-Through mode and returns SENtral to Standby State. Write 0x00 to the AlgorithmControl register. This takes SENtral out of Standby State and normally will place it back into Normal Operation. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 21 4.6 Troubleshooting This section provides guidance in troubleshooting SENtral, and is divided into hardwarerelated and software-related errors. 4.6.1 Hardware-Related Error Conditions Possible indications of a hardware-related problem are given below in Table 4-7. Table 4-7: Hardware-Related Error Indications Register Name Address Error Indication EventStatus 0x35 [0] 1 = CPURest. SENtral Configuration File needs uploading. See Section 4.1. SentralStatus 0x37 [2] 1 = EEUploadError. Issue with uploading from the dedicated EEPROM. See Section 4.1. MagRate 0x55 0x00 – Value lost AccelRate 0x56 0x00 – Value lost GyroRate 0x57 0x00 – Value lost In the event of such errors, SENtral will enter Standby State, shut down the sensors, and generate an interrupt to the host. Possible reasons for hardware-related errors include problems with the EEPROM upload, power transients detected by power management, and errors in software detected by Watchdog. Often the error can be cleared by sending the ResetReq command. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 22 4.6.2 Software-Related Error Conditions Possible indications of software-related errors are given below in Table 4-8: Table 4-8: Software-Related Error Indications Register Name Address EventStatus 0x35 SensorStatus 0x36 Error Indication [1] 1 = Error. [0] MagNACK. 1 = NACK from magnetometer [1] AccelNACK. 1 = NACK from accelerometer [2] GyroNACK. 1 = NACK from gyroscope [4] MagDeviceIDErr. 1 = Unexpected DeviceID from magnetometer [5] AccelDeviceIDErr. 1 = Unexpected DeviceID from accelerometer [6] GyroDeviceIDErr. 1 = Unexpected DeviceID from gyroscope. SentralStatus 0x37 [3] 1 = Idle. SENtral in Initialized State. ErrorRegister 0x50 Non-zero value indicated an error. See Table 4-9. RAMVersion 0x72, 0x73 Unexpected Configuration File revision level. If the ErrorRegister indicates a non-zero value, then the value provides additional information on the sensor that is causing a problem, as given in Table 4-9. Table 4-9: ErrorRegister Indications Value Error Condition Response 0x00 No error 0x80 Invalid sample rate selected Check sensor rate settings. 0x30 Mathematical Error Check for software updates 0x21 Magnetometer initialization failed 0x22 Accelerometer initialization failed 0x24 Gyroscope initialization failed This error can be caused by a wrong driver, physically bad sensor 2 connection, or incorrect I C device address in the driver 0x11 Magnetometer rate failure 0x12 Accelerometer rate failure 0x14 Gyroscope rate failure This error indicates the given sensor is unreliable and has stopped producing data. If the RAMVersion register values do not correspond to the expected Configuration File revision level, as given in Table 4-10, certain features or functions that are expected to be PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 23 available may not be available, or they may not function as expected. This normally can be remedied by generating the latest Configuration File revision level using the SENtral Configuration Tool and then loading this into the onboard EEPROM, as discussed in the SENtral Technical Datasheet. Table 4-10: RAMVersion Register Values 0x72 Register Value 0x73 Register Value RAM Version (Hex / Decimal) Config File Revision 0x04 0x0C 0x0C04 / 3076 1.0 0xD5 0x0C 0x0CD5 / 3285 1.1 0x37 0x0E 0x0E02 / 3639 1.2 PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 24 5 Package Information Figure 5-1: SENtral Orange, Red, Green, & Yellow M&M Mechanical Drawing Figure 5-2: SENtral White M&M Mechanical Drawing PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 25 Figure 5-3: SENtral Blue M&M Mechanical Drawing PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 26 6 Assembly Guidelines Figure 6-1: SENtral Orange, Red, Green, & Yellow M&M Solder Pad Layout Figure 6-2: SENtral White M&M Solder Pad Layout PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 27 Figure 6-3: SENtral Blue M&M Solder Pad Layout PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 28 7 SENtral M&Ms with Pressure Sensors Overview SENtral M&M Pink and M&M Purple include barometric pressure sensors. In addition to expanding the range of applications and features that the M&M’s support, pressure sensors are an important component in accurate dead-reckoning and indoor navigation. The pressure sensors used also provide temperature. Application Functionality Barometric pressure for weather forecasting Floor and elevator detection for indoor navigation Slope detection and altimeter for outdoor navigation Climbing speed Ambient temperature This data is available in addition to the SENtral quaternion and algorithm outputs. 7.1 System Schematics Our M&M modules are an ideal way to test the functionality of a SENtral based system. Full size schematics are provided upon request for those wishing to integrate a discrete solution into their system. Figure 7-1: SENtral M&M Purple Schematic Key components include PNI SENtral, Bosch Sensortech BMI160 Gyro/Accel , BMM150 Magnetometer and BMP280 Pressure sensor. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 29 Figure 7-2: SENtral M&M Pink Schematic Key components include PNI SENtral, ST Micro LSM6DS3 Gyro/Accel, AKM AK9911 Magnetometer and ST Micro LPS25H Pressure Sensor 7.2 Specifications Sensor data available through SENtral is output at scale factors detailed in the following table; Product M&M Purple – Pressure M&M Purple – Temperature M&M Pink – Pressure M&M Pink – Temperature 1. Scale Factor 1 Range 3Pa/LSB 300-1100 hPa 0.01°C/LSB -40 - 85°C 3Pa/LSB 260 – 1260 hPa 0.01°C/LSB -40 – 85°C Least Significant Bit PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 30 7.3 Interface Pressure sensor data is available separate from the quaternion outputs and can be accessed without the need to wakeup the inertial sensors on the board. The data can be accessed at the following registers. Table 7-1 Pressure Senor Data Accesss Register Name Register Address Register Value Feature0 0x2A-0x2B Barometer Data Feature1 0x2C-0x2D Barometer Timestamp Feature2 0x2E-0x2F Temperature Data Feature3 0x30-0x31 Temperature Timestamp PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 31 Appendix I – Converting Quaternions SENtral outputs orientation data in quaternions, using a North-East-Down (NED) convention. This is done to avoid the singularities inherent in using Euler angles (heading, pitch, and roll), and because the fusion algorithms are easier to implement with quaternions. However, normally quaternions are not the desired final output format. Most end users will want heading, pitch, and roll, while Android looks for a rotation vector and generally uses a rotation matrix for orientation. Plus, Android and Win8 both expect data to be presented in the East-North-Up (ENU) convention. This appendix discusses how to convert SENtral’s output quaternions into these other output formats. Converting from NED to ENU While the North-East-Down (NED) convention is common in many industries, both Android and Windows 8 use the East-North-Up convention. Below is the equation to convert from NED to ENU. Heading, Pitch, and Roll Most end users will want orientation data reported as heading, pitch, and roll. Below are the Excel transformation equations. Note that for other programs, such as Matlab, the ATAN2 arguments may be reversed. Heading = atan2[(Qx2 – Qy2 – Qz2 + Qw2), 2*(QxQy + QzQw)] Pitch = asin[-2*(QxQz – QyQw)] Roll = atan2[(–Qx2 – Qy2 + Qz2 + Qw2), 2*(QxQw + QyQz)] Where: Results are in radians. The quaternions are the outputs from SENtral in NED convention. Heading increases as the device rotates clockwise around a positive Z axis, and the range is 0° – 360°. (i.e. it matches what you would expect on a compass.) Pitch increases when pitching upward and the range is ±180°. Roll increases when rolling clockwise and the range is ±90°. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 32 Rotation Vector The rotation vector is the first three elements of the quaternion output, Qx, Qy, and Qz. The fourth element, Qw, is not included in the rotation vector. The rotation vector in ENU convention will be the first three elements of QENU, discussed above. Rotation Matrix, or Direction Cosine Matrix (DCM) The rotation matrix, also known as the direction cosine matrix (DCM), can be established from the quaternion output using the following conversion. QENU values can be substituted to give the rotation matrix with an ENU convention. 2 2 2 2 Qw + Qx – Qy – Qz R= 2*(Qx*Qz – Qw*Qy) 2*(Qx*Qy + Qw*Qz) 2 2 2 2 2*(Qx*Qy – Qw*Qz) Qw – Qx + Qy – Qz 2*(Qy*Qz + Qw*Qx) 2*(Qx*Qz + Qw*Qy) 2*(Qy*Qz – Qw*Qx) Qw – Qx – Qy + Qz PNI Sensor Corporation SENtral M&M Technical Datasheet 2 2 2 2 Doc #1020129 revG Page 33 Appendix II – Parameter Transfer Note: Implementing the parameter transfer process is not necessary when using SENtral, but can be useful for enabling a warm start, for setting the sensor ranges to non-default values, and/or for reading the device driver IDs. This appendix provides the protocol for implementing SENtral’s parameter transfer process. A parameter transfer involves the host either loading parameter values into SENtral, or retrieving parameter values currently used by SENtral. Register Usage Table A2-0-1 provides the registers used for the parameter transfer process. Table A2-0-1: Registers Used for Parameter Transfer Register Name Address Access Format Description [0] StandbyEnable. 1 = Enable Standby state [1] RawDataEnable. 1 = Raw data provided in MX, MY, MZ, AX, AY, AZ, GX, GY, & GZ. 0 = Scaled sensor data. [2] HPRoutput. 1 = Heading, pitch, and roll output in QX, QY, & QZ. QW = 0.0. 0 = Quaternion outputs. [7] ParamTransfer. 1 = Enable Parameter Transfer. AlgorithmControl 0x54 R/W [7:0] LoadParamByte0 0x60 R/W Float 8 Parameter value to be loaded – LSB LoadParamByte1 0x61 R/W Float 8 Parameter value to be loaded – LSB + 1 LoadParamByte2 0x62 R/W Float 8 Parameter value to be loaded – MSB – 1 LoadParamByte3 0x63 R/W Float 8 Parameter value to be loaded – MSB ParamRequest 0x64 R/W [7:0] Bits [0] – [6] provide the parameter number to be uploaded or retrieved. [7] Load/Save bit. 1 = Load, 0 = Save. Bits [0] – [6] provide the parameter number that was uploaded or retrieved. [7] Load/Retrieve bit. 1 = Load, 0 = Retrieve. ParamAcknowledge 0x3A R/O [7:0] RetrieveParamByte0 0x3B R/O Float 8 Parameter value read from Sentral – LSB RetrieveParamByte1 0x3C R/O Float 8 Parameter value read from Sentral – LSB + 1 RetrieveParamByte2 0x3D R/O Float 8 Parameter value read from Sentral – MSB – 1 RetrieveParamByte3 0x3E R/O Float 8 Parameter value read from Sentral – MSB PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 34 The parameter transfer process is invoked and terminated by appropriately setting the ParamTransfer bit in the AlgorithmControl register. Ten (10) registers are used for the transfer and for handshaking between SENtral and the host. One set of four registers is allocated to upload a parameter value to SENtral, and another set of four registers is used to retrieve a currently saved parameter from SENtral. Values shorter than four bytes can be transferred using only some of the registers. Two registers implement the handshake mechanism between SENtral and the host. Note that data is stored in little Endian format. Parameter Load Figure A2-0-1 shows the Parameter Load process by which the host loads parameter data into SENtral. Figure A2-0-1: Parameter Load Process Initially the parameter values must be written into the LoadParamByte registers followed by sending a non-zero parameter number into the ParamRequest register. The parameter numbers are given in Table A2-0-2. The MSB of the ParamRequest register should be set to ‘1’ to indicate a Load procedure. All five bytes can be written using a single I2C PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 35 transaction. AFTER the first parameter is written, the ParamTransfer bit in the AlgorithmControl register must be set to ‘1’. Sentral acknowledges receipt of a parameter value by setting ParamAcknowledge equal to ParamRequest, and the host should check the ParamAcknowledge register after writing the first parameter. Once SENtral acknowledges successfully uploading the first parameter, the host can begin writing the remaining parameters in a loop. Reading the ParamAcknowledge register is optional for subsequent parameters. The host terminates the load procedure by setting the ParamRequest register to 0x00 and the AlgorithmControl register’s ParamTransfer bit to ‘0’. Parameter Retrieve The Parameter Retrieve flowchart is given in Figure A2-0-2. Figure A2-0-2: Parameter Retrieve Process The process is initiated by the host writing to the ParamRequest register the desired (nonzero) parameter number. The MSB of ParamRequest register should be ‘0’ to indicate a Retrieve procedure. After writing to the ParamRequest register, the ParamTransfer bit in the AlgorithmControl register must be set to ‘1’. Next, the host should perform repetitive reads of the ParamAcknowledge register until it contains the requested parameter number. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 36 Now the host can read the RetrieveParamByte registers to obtain the parameter value. Note the host can read the ParamAcknowledge and RetrieveParamByte registers using a single five-byte read transaction. Also, the RetrieveParamByte values are given in little Endian format, such that RetrieveParamByte3 contains the least significant byte of the parameter’s 4-byte float value. The host can continue reading other parameters by varying (normally incrementing) the parameter number contained in the ParamRequest registers. Reading the ParamAcknowledge register is optional for subsequent parameters. The procedure is terminated by the host writing 0x00 to the ParamRequest and AlgorithmControl registers. Interleaving Parameter Load and Retrieve The host can interleave the Parameter Load and Parameter Retrieve processes during a single process invocation. This can be done for each parameter by setting the MSB bit of the ParamRequest register appropriately. Note that SENtral can be copying a new value into a RetrieveParamByte register while a Parameter Load operation is requested. Interleaving can be utilized by the host as an additional check that the parameter value was updated correctly. Parameters The parameter numbers and associated names are given below in Table A2-0-2. discussion on the WarmStart, SensorRange, and DriverID parameters follows. A Table A2-0-2: Parameter Numbers Parameter Number Parameter Name 1 – 35 WarmStart[1] to WarmStart[35] 36 – 73 Reserved 74 ParamRequest Value Load Retrieve 0x81 to 0xA3 0x01 to 0x23 SensorRange[mag:accel] 0xCA 0x4A 75 SensorRange[gyro] 0xCB 0x4B 77 DriverID[mag:accel] -- 0x4D 78 DriverID[gyro] 80 AlgorithmID 0x4E -- 0x50 WarmStart A significant number of parameters are used in the SENtral algorithm as it executes, and these parameters are refined as the SENtral device is used. These include PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 37 parameters associated with SENtral’s continuous background calibration function and gyro bias correction. When SENtral is powered down or otherwise re-initialized, these parameters also are re-initialized and the parameter refinement process must start over. The parameter transfer process provides the ability to save these parameters to the host as they are refined, and to reload them if the parameters within SENtral are re-initialized. Thus, if the WarmStart parameters periodically are retrieved from SENtral and saved by the host, it is possible to effectively warm-start SENtral after it is re-initialized by reloading the WarmStart parameters into SENtral that previously were saved to the host. To effectively enable a warm-start process, it is necessary to periodically save all 35 WarmStart parameters, and to reload all of them after SENtral is re-initialized. SensorRange The dynamic ranges of the sensors used in conjunction with SENtral normally are set as part of the Configuration File. Typically the gyroscope will be set to 2000 dps, the accelerometer to ±2 g or ±4 g, and the magnetometer to ±1 T. However, there may be instances when it is desirable to change the dynamic range. For instance, if SENtral will be used in an application with frequent shock, such as jogging, it may be necessary to increase the accelerometer range to something greater than ±4 g. SensorRange[mag:accel] loads or retrieves the magnetometer range data in ParamByte0 and ParamByte1, while the accelerometer range data is in ParamByte2 and ParamByte3. For example, a likely readout for SensorRange[mag:accel] in the 4x RetrieveParamByte registers is 0xE8030200, corresponding to a magnetometer dynamic range of 0x03E8 (±1000 T) and an accelerometer dynamic range of 0x0002 (±2 g). SensorRange[gyro] loads or retrieves the gyroscope range in ParamByte0 and ParamByte1, while ParamByte2 and ParamByte3 are reserved and should be 0x00. DriverID and AlgorithmID Sensor driver and algorithm revision information can be retrieved using the Parameter Transfer process. Table A2-0-3 indicates how these parameters are defined. ParameterBytes 2 and 3 for Parameter Numbers 78 and 80 are 0x00 and reserved for future use. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 38 Table A2-0-3: DriverID & AlgorithmID Definition Parameter Number 77 Parameter Name Parameter Usage Byte 0 Mag Driver Revision 1 Mag Driver ID 2 Accel Driver Revision 3 Accel Driver ID 0 Gyro Driver Revision 1 Gyro Driver ID 0 Algorithm Revision, Minor 1 Algorithm Revision, Major DriverID[mag:accel] 78 80 PNI Sensor Corporation SENtral M&M Technical Datasheet DriverID[gyro] AlgorithmID Doc #1020129 revG Page 39 Appendix III – Measuring Current Consumption All SENtral M&M modules, except the White and Blue versions, have two distinct electrical supply lines. One line is for both the EEPROM and the sensors, and one is for just SENtral. The pins for these voltages are labeled DVDD and DVDD2, respectively. To measure the current on these lines, PNI recommends placing a 1 Ω resistor in series with the DVDD pin to measure combined current consumption for the EEPROM and sensors, and a 100 Ω resistor in series with the DVDD2 pin to measure current consumption by SENtral. The SENtral Blue M&M has a single DVDD pin that supplies current for SENtral, the EEPROM and the sensors. However, the current consumption of only the SENtral Motion Coprocessor can be measured by modifying the module, as given in the two options listed below. 1. Replace a zero-ohm resistor with a 100Ω resistor and measure voltage across the resistor. 2. Remove the zero-ohm resistor, then solder wires in series with a connected ammeter. The location of the zero-ohm resistor is given below, and a discussion of the two implementation methods follows. Figure A3-0-1: SENtral Blue M&M Zero-Ohm Resistor Location Method 1: Replace zero-ohm resistor with 100 Ω resistor. This method provides flexibility in terms of measuring with either a voltmeter or an oscilloscope, although it may be slightly difficult to implement as holding the probes in the proper position can be tricky. As long as the resistor is ≤100 Ω, there is no need to remove it, as it should not affect performance. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 40 To measure average current consumption, simply touch either side of the 100 Ω resistor with the voltmeter’s probe tips and measure the voltage drop. Convert to current consumption using: A = 10*mV, assuming a 100 Ω resistor. It is possible to observe the current consumption waveform using an oscilloscope. In this case, place a 100 F capacitor in parallel with the 100 Ω resistor. This reduces the measurement bandwidth so the waveform can be better observed. Note that SENtral’s bypass capacitors are electrically connected nearest the device after the sense resistor or the voltage meter’s resistor. This will bandlimit the measurement to ~1.5 kHz for a 100 Ω resistor. The onboard bypass capacitance totals 1.1 F. Method 2: Remove zero-ohm resistor and place ammeter in series. This method is relatively straight forward to implement, as the probes are physically soldered to the PCB. To help prevent damage to the PCB surface pads, PNI strongly recommends implementing a strain relief for the wires. Note that the burden voltage of a typical digital multimeter (ammeter) is ~100V/A, or 100 Ω. PNI has tested such an ammeter in the Method 2 scenario and seen that it does not affect operation. Also note that negative voltages produced by transient currents are smoothed by the local bypass capacitors. Also, it may be difficult to measure DC current using ammeters with very fast measurement times due to the periodic wake/sleep cycles of SENtral. Consequently, handheld DMMs with relatively long measurement integration times work well for making average current measurement. Precision benchtop meters with an averaging or smoothing filter also can work well. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 41 ©2013 PNI Sensor Corporation. All Rights Reserved. Reproduction, adaptation, or translation without prior written permission is prohibited, except as allowed under copyright laws. Revised April 2014: for the most recent version of this document visit our website at www.pnicorp.com PNI Sensor Corporation 2331 Circadian Way Santa Rosa, CA 95407, USA Tel: (707) 566-2260 Fax: (707) 566-2261 Warranty and Limitation of Liability. PNI Sensor Corporation ("PNI") manufactures its Products from parts and components that are new or equivalent to new in performance. PNI warrants that each Product to be delivered hereunder, if properly used, will, for ninety (90) days following the date of shipment unless a different warranty time period for such Product is specified: (i) in PNI’s Price List in effect at time of order acceptance; or (ii) on PNI’s web site (www.pnicorp.com) at time of order acceptance, be free from defects in material and workmanship and will operate in accordance with PNI’s published specifications and documentation for the Product in effect at time of order. PNI will make no changes to the specifications or manufacturing processes that affect form, fit, or function of the Product without written notice to the Customer, however, PNI may at any time, without such notice, make minor changes to specifications or manufacturing processes that do not affect the form, fit, or function of the Product. This warranty will be void if the Products’ serial number, or other identification marks have been defaced, damaged, or removed. This warranty does not cover wear and tear due to normal use, or damage to the Product as the result of improper usage, neglect of care, alteration, accident, or unauthorized repair. THE ABOVE WARRANTY IS IN LIEU OF ANY OTHER WARRANTY, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE. PNI NEITHER ASSUMES NOR AUTHORIZES ANY PERSON TO ASSUME FOR IT ANY OTHER LIABILITY. If any Product furnished hereunder fails to conform to the above warranty, Customer’s sole and exclusive remedy and PNI’s sole and exclusive liability will be, at PNI’s option, to repair, replace, or credit Customer’s account with an amount equal to the price paid for any such Product which fails during the applicable warranty period provided that (i) Customer promptly notifies PNI in writing that such Product is defective and furnishes an explanation of the deficiency; (ii) such Product is returned to PNI’s service facility at Customer’s risk and expense; and (iii) PNI is satisfied that claimed deficiencies exist and were not caused by accident, misuse, neglect, alteration, repair, improper installation, or improper testing. If a Product is defective, transportation charges for the return of the Product to Customer within the United States and Canada will be paid by PNI. For all other locations, the warranty excludes all costs of shipping, customs clearance, and other related charges. PNI will have a reasonable time to make repairs or to replace the Product or to credit Customer’s account. PNI warrants any such repaired or replacement Product to be free from defects in material and workmanship on the same terms as the Product originally purchased. Except for the breach of warranty remedies set forth herein, or for personal injury, PNI shall have no liability for any indirect or speculative damages (including, but not limited to, consequential, incidental, punitive and special damages) relating to the use of or inability to use this Product, whether arising out of contract, negligence, tort, or under any warranty theory, or for infringement of any other party’s intellectual property rights, irrespective of whether PNI had advance notice of the possibility of any such damages, including, but not limited to, loss of use, revenue or profit. In no event shall PNI’s total liability for all claims regarding a Product exceed the price paid for the Product. PNI neither assumes nor authorizes any person to assume for it any other liabilities. Some states and provinces do not allow limitations on how long an implied warranty lasts or the exclusion or limitation of incidental or consequential damages, so the above limitations or exclusions may not apply to you. This warranty gives you specific legal rights and you may have other rights that vary by state or province. PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 42 Revision Control Block Revision Description of Change Effective Date Approval A Initial Preliminary Release Dec. 4, 2013 A.Leuzinger B Renamed product to SENtral M&M. Rewrote front page. Removed Performance Characteristics table. Updated and moved pin-out table. Added White & Green mechanical drawings and pad layouts. Updated Blue, Red, & Yellow (LSM330) mechanical drawing and pad layout. Added Red electrical schematic. Added TOC, List of Figures, and List of Tables. Dec. 30, 2013 A. Leuzinger C Changed picture on front page. Added M&M Orange module. Added Blue electrical schematic. Removed castellated board from Red & Green schematics. Jan. 3, 2014 A. Leuzinger D Renamed product description to be “Motion & Measurement Module(s)”. Renamed module types by putting color prior to “M&M”. Added Sections 1, 3, and 4, and Appendix II. Added Table 2-1, Performance Characteristics. Corrected Operating Conditions and Pin Assignment tables regarding DVDD & DVDD2. Removed Test Point references from Pin Assignment Table and from Mechanical Drawings. Corrected solder pad references on Mechanical Drawings. Removed the section with specific schematics and added a note that schematics are available from PNI. (Section 1.2 has a “generic” schematic.) Jan. 30, 2014 A. Leuzinger E Pertains to both SDK1.1 (build 3285) and SDK1.2 (build 3639). Corrected Ordering Information, Yellow M&M to read LSM9DS0. Added “TM” to “M&M”. In Section 3.2.1, changed the notation in the figures so not every bit begins with “A”. Added sentence at beginning of Section 4 regarding Little Endian formatting. Added note in Section 5.2 about requirement to set [Sensor]Rate registers to non-zero values. Corrected Table 4-1 to indicate bit [2] of SentralStatus is „1‟ when the CRC is incorrect. In Section 5.6.2, added discussion of RAMVersion registers and added Table 5-13. Added Appendix II on Parameter Transfer. Apr. 16, 2014 A. Leuzinger F Corretion to DCM conversion table, cell 2,3 and 3,2 7/2/14 R Thompson D McKenzie G Addition of M&M Pink and Purple, required new section (7) to detail functionality of additional pressure sensor PNI Sensor Corporation SENtral M&M Technical Datasheet Doc #1020129 revG Page 43