7430-3810-04 - B User Manual, DMUX80ZA
7430-3810-04 - B User Manual, DMUX80ZA
7430-3810-04 - B User Manual, DMUX80ZA
ACEINNA, Inc.
email: [email protected], website: www.aceinna.com
Revision History
Table of Contents
1 Introduction ................................................................................................................. 1
Manual Overview ................................................................................................. 1
Overview of the DMUX80ZA Series Inertial Systems ........................................ 2
2 Interface ....................................................................................................................... 4
Electrical Interface ............................................................................................... 4
2.1.1 Connector and Mating Connector ................................................................. 4
2.1.2 Power Input and Power Input Ground........................................................... 5
2.1.3 Serial Data Interface ...................................................................................... 5
2.1.4 External GPS Aiding (VGX80ZA, AHRSX80ZA and INSX80ZA) ............ 5
2.1.5 Reserved – Factory Use Only........................................................................ 6
Mechanical Interface ............................................................................................ 6
3 Theory of Operation .................................................................................................... 8
DMUX80ZA Series Default Coordinate System ............................................... 11
3.1.1 Advanced Settings ....................................................................................... 12
IMUX80ZA Theory of Operation ...................................................................... 13
3.2.1 IMUX80ZA Advanced Settings .................................................................. 13
3.2.2 IMUX80ZA Built-In Test ........................................................................... 14
VGX80ZA Theory of Operation ........................................................................ 15
3.3.1 VGX80ZA Advanced Settings .................................................................... 16
3.3.2 VGX80ZA Built-In Test ............................................................................. 17
AHRSX80ZA Theory of Operation ................................................................... 18
3.4.1 AHRSX80ZA Magnetometer Calibration and Alignment .......................... 20
3.4.2 AHRSX80ZA Advanced Settings ............................................................... 21
3.4.3 AHRSX80ZA Built-In Test ........................................................................ 23
INSX80ZA Theory of Operation........................................................................ 24
3.5.1 INSX80ZA Magnetometer Calibration and Alignment .............................. 25
3.5.2 INSX80ZA Advanced Settings ................................................................... 25
3.5.3 INSX80ZA Built-In Test............................................................................. 27
4 Application Guide...................................................................................................... 29
Introduction ........................................................................................................ 29
Fixed Wing Aircraft ........................................................................................... 29
Rotorcraft............................................................................................................ 30
Land Vehicle ...................................................................................................... 31
Page ii
Doc# 7430-3810 Rev. 04
DMU380ZA Series User’s Manual
Page iv
Doc# 7430-3810 Rev. 04
DMU380ZA Series User’s Manual
NOTE
Note provides additional information about the topic.
EXAMPLE
Examples are given throughout the manual to help the reader understand the terminology.
IMPORTANT
This symbol defines items that have significant meaning to the user
WARNING
The user should pay particular attention to this symbol. It means there is a chance that physical
harm could happen to either the person or the equipment.
1 Heading 1
1.1 Heading 2
1.1.1 Heading 3
Normal
Page vi
Doc# 7430-3810 Rev. 04
DMU380ZA Series User’s Manual
________________________________________________________________________
1 Introduction
Manual Overview
This manual provides a comprehensive introduction to ACEINNA’s DMU280ZA, DMU380ZA,
and DMU480ZA Series Inertial System products (Dynamic Measurement Unit 280ZA, 380ZA,
or 480ZA). As the functionality of the different series are identical (only the performance specs
are different), for simplicity all references will be to the DMUX80ZA, where X is 2, 3, or 4. For
users wishing to get started quickly, please refer to the two-page quick start guide included with
each evaluation kit shipment. Table 1 highlights the content in each section and suggests how to
use this manual.
Section 2: Customers designing the electrical and mechanical interface to the DMUX80ZA
series products should read Section 2.
Interface
Section 4: Customers who want product configuration tips for operating the DMUX80ZA
Series Inertial Systems in a wide range of applications – fixed wing, rotary wing,
Application Guide unmanned vehicles, land vehicles, marine vessels, and more, should review the
part of Section 4 that is relevant to your application. Note: INS and AHRS
DMUX80ZA Series units are preconfigured for airborne applications with
“normal” dynamics. VGX80ZA Series units are preconfigured for land
applications with “automotive testing” dynamics. All DMUX80ZA Series products
allow for complete flexibility in configuration by the user.
Section 5: Customers designing the software interface to the DMUX80ZA series products
SPI Port should review Section 5.
SPI Port Interface
Section 6-9: Customers designing the software interface to the DMUX80ZA series products
UART Port should review Sections 6-9.
UART Port Interface
________________________________________________________________________
Overview of the DMUX80ZA Series Inertial Systems
This manual provides a comprehensive introduction to the use of ACEINNA’s DMUX80ZA
Series Inertial System products listed in Table 2. This manual is intended to be used as a detailed
technical reference and operating guide. ACEINNA’s DMUX80ZA Series products combine the
latest in high-performance commercial MEMS (Micro-electromechanical Systems) sensors and
digital signal processing techniques to provide a small, cost-effective alternative to existing IMU
systems.
________________________________________________________________________
by grounding the appropriate pin on the connector. The DMUX80 low level UART output data
port is supported by ACEINNA’s NAV-VIEW 3.X, a powerful PC-based operating tool that
provides complete field configuration, diagnostics, charting of sensor performance, and data
logging with playback.
________________________________________________________________________
2 Interface
Electrical Interface
________________________________________________________________________
15 Power GND
16 Reserved – factory use only
17 External GPS UART TX
18 Reserved – factory use only
19 External GPS UART RX
20 Reserved – factory use only
WARNING
Do not reverse the power leads or damage may occur. Do not add greater than 5.5 volts on the
power pins or damage may occur. This system has no reverse voltage or over-voltage protection.
________________________________________________________________________
The external GPS UART port should be configured to 8 data bits, 1 start bit, 1 stop bit, no parity
bit, and no flow control.
IMPORTANT
Place the antenna with optimal sky visibility and use a ground plane. Route the GPS Antenna RF
cable away from sources of radiated energy (i.e. switching power supplies).
Mechanical Interface
The DMUX80ZA mechanical interface is defined by the outline drawing in Figure 2.
________________________________________________________________________
________________________________________________________________________
3 Theory of Operation
This section of the manual covers detailed theory of operation for each member of the
DMUX80ZA Series starting with the basic IMUX80ZA and then reviewing each major variant
(VG, AHRS and INS) with their associated additional features, outputs, and performance. Table
5 shows the basic features of each member of the DMUX80ZA Series with cross references to
important sections for review.
Table 5 DMUX80ZA Series Overview
Product Features Learning More
IMUX80ZA 6-DOF IMU, 9-DOF IMU Read 3.1 and 3.2
VGX80ZA 6-DOF IMU Read 3.1, 3.2, and 3.3
Roll, Pitch
AHRSX80ZA 9-DOF IMU (3-Axis Internal Magnetometer) Read 3.1, 3.2, 3.3, and 3.4
Roll, Pitch, and Heading
INSX80ZA 9-DOF IMU (3-Axis Internal Magnetometer and external Read 3.1, 3.2, 3.3, 3.4, and 3.5
GPS Receiver)
Position, Dynamic Velocity, Roll, Pitch, and Heading
Figure 3 shows the DMUX80ZA Series hardware block diagram. At the core of the DMUX80ZA
Series is a rugged 6-DOF (Degrees of Freedom) MEMS inertial sensor cluster that is common
across all members of the DMUX80ZA Series. The 6-DOF MEMS inertial sensor cluster includes
three axes of MEMS angular rate sensing and three axes of MEMS linear acceleration sensing.
These sensors are based on rugged, field proven silicon bulk micromachining technology. Each
sensor within the cluster is individually factory calibrated using ACEINNA’s automated
manufacturing process. Sensor errors are compensated for temperature bias, scale factor, non-
linearity and misalignment effects using a proprietary algorithm from data collected during
manufacturing. Accelerometer and rate gyro sensor bias shifts over temperature (-40 0C to +71
0
C) are compensated and verified using calibrated thermal chambers and rate tables.
The 6-DOF inertial sensor cluster data is fed into a high speed signal processing chain, which
provides the sensor compensation and digital filtering. The processor also calculates attitude and
navigation data for the appropriate models (VG, AHRS and INS). Measurement data packets are
available at fixed continuous output rates or on a polled basis from the SPI port or the UART
port. The SPI port outputs data via registers, and the user can perform polled reads of each
register, or a block burst read of a set of predefined registers. Output data over the SPI port can
be synchronized to an external 1 KHz pulse. Alternatively, users can input a 1 PPS signal from
an external GPS receiver when providing external GPS data over the secondary UART2 port.
The complete SPI interface is defined in Section 4. The UART port outputs data packets are
asynchronous and defined in Sections 5-7. As shown in the block diagram (Figure 3), the
INSX80ZA and AHRSX80ZA include an internal 3-axis magnetometer.
________________________________________________________________________
Magnetometers
Figure 4 shows the software block diagram. The 6-DOF inertial sensor cluster data is fed into a
high speed 200Hz signal processing chain. These 6-DOF signals pass through one or more of the
processing blocks and these signals are converted into output measurement data as shown.
Measurement data packets are available at fixed continuous output rates or on a polled basis. The
type of measurement data packets available depends on the unit type according to the software
block diagram and Table 5. Aiding sensor data is used by an Extended Kalman Filter (EKF) for
drift correction in the INS, AHRS and VG Series products. Built-In-Test and Status data is
available in the measurement packet or via the special Status Packet T0.
As shown in the software block diagram, the DMUX80ZA Series has a unit setting and profile
block which configures the algorithm to user and application specific needs. This feature is one of
the more powerful features in the DMUX80ZA Series architecture as it allows the DMUX80ZA
Series to work in a wide range of commercial applications by settings different modes of
operation for the DMUX80ZA Series.
________________________________________________________________________
X / Y / Z Body
Rates
200Hz
Sensor Integration to 100 Hz
Signal Integration to
Calibration Velocity, GPS
Proc. Attitude
X / Y / Z Body Axes Rotation Position Output
Chain
Accelerometers
Status
Packet
(T0)
Aiding Sensors
Simplified functional block diagrams for INS, AHRS and VG series products derived from Figure
4 are shown in Figure 5 to highlight key features of each product. The DMUX80ZA Series
products are mainly differentiated by types of aiding sensors used in the EKF for the drift
correction of the 6-DOF inertial sensor cluster.
For the AHRS product, a 3-axis magnetometer is used for correcting the drift on yaw/heading
angle. For the INS product, a 3-axis magnetometer and a GPS receiver are used for correcting the
drift on yaw/heading angle, increasing the accuracy of the attitude estimation by incorporating
these sensor signals into the EKF, and providing a navigation solution. The common aiding
sensor for the drift correction for the attitude (i.e., roll and pitch only) is a 3-axis accelerometer.
This is the default configuration for the VG product.
________________________________________________________________________
Figure 5 Functional Block Diagram of INS, AHRS and VG Default Operating Mode
+Z
Yaw
Roll
Pitch
+X +Y
+X
+Y
Roll
Pitch
Yaw
+Z
________________________________________________________________________
Figure 7 IMU380ZA
The axes(-209, -409)
form an VG/AHRS/INS380ZA
orthogonal SAE right-handed (-200, -400) Default
coordinate system.Coordinate
AccelerationFrame
is positive when
it is oriented towards the positive side of the coordinate axis. For example, with a DMUX80ZA
Series product sitting on a level table, it will measure zero g along the x- and y-axes and -1 g
along the z-axis. Normal Force acceleration is directed upward, and thus will be defined as
negative for the DMUX80ZA Series z-axis.
The angular rate sensors are aligned with these same axes. The rate sensors measure angular
rotation rate around a given axis. The rate measurements are labeled by the appropriate axis. The
direction of a positive rotation is defined by the right-hand rule. With the thumb of your right
hand pointing along the axis in a positive direction, your fingers curl around in the positive
rotation direction. For example, if the DMUX80ZA Series product is sitting on a level surface
and you rotate it clockwise on that surface, this will be a positive rotation around the z-axis. The
x- and y-axis rate sensors would measure zero angular rates, and the z-axis sensor would measure
a positive angular rate.
The magnetic sensors are aligned with the same axes definitions and sign as the linear
accelerometers. For example, when oriented towards magnetic North, you will read
approximately +0.25 Gauss along X, 0.0 Gauss along Y, and +0.35 Gauss along Z direction
(North America). Magnetic values at other geographic locations can be found at
http://www.ngdc.noaa.gov/seg/WMM/DoDWMM.shtml.
Pitch is defined positive for a positive rotation around the y-axis (pitch up). Roll is defined as
positive for a positive rotation around the x-axis (roll right). Yaw is defined as positive for a
positive rotation around the z-axis (turn right).
The angles are defined as standard Euler angles using a 3-2-1 system. To rotate from the body
frame to an earth-level frame, roll first, then pitch, and then yaw.
The position output from GPS is represented in Latitude, Longitude, and Altitude (LLA)
convention on the WGS84 Ellipsoid. This is the most commonly used spherical coordinate
system. The GPS velocity is defined in North, East and Down reference frame. The users can
convert this into Cartesian coordinate system, called Earth-Centered, Earth-Fixed (ECEF). ECEF
uses three-dimensional XYZ coordinates (in meters) to describe the location of a GPS user or
satellite. Several online resources are available to help users with this transformation. For
example, refer to the application note on ACEINNA website,
http://www.aceinna.com/support/documentation/inertial-systems/category/3-application-
notes.html
1
Note: certain combinations of baud-rate, packet-type, and output data rate are invalid because the time to transmit the data exceeds a
limit on the permissible message length. The DMU380 limits the output packet width to 80% of the time between data packets. For
instance, if the packet is output every 10 milliseconds (100 Hz) then the packet width must be less than 8 milliseconds or the
combination is not allowed. This prevents messages from overlapping and causing communication problems. For this reason, 57.6
kbps and higher baud-rates are suggested.
________________________________________________________________________
custom axes configuration. The units can be configured using NAV-VIEW, as described in
Appendix A, and also directly with serial commands as described in Sections 6-9.
IMPORTANT
The Delta-Theta, Delta-V packet is only recommended for use in continuous output mode at 5Hz
or greater. Polled requests for this packet will produce values accumulated since the last poll
request, and thus, are subject to overflow (data type wrap around).
________________________________________________________________________
BIT See 9.1
________________________________________________________________________
The IMUX80ZA also allows a user to configure the Status byte within the BIT message. To
configure the word, select the BIT Configuration tab from the Unit Configuration menu. The
dialog box allows selection of which status types to enable (hardware, software, sensor, and
comm). In the case of the IMUX80ZA which has fewer features and options than other
DMUX80ZA Series products, the only meaningful parameter is sensor over-range. It is
recommended that users leave the default configuration, which is sensorStatus enabled and flag
on sensor over-range. The over-range only applies to the rotational rate sensors. Because
instantaneous acceleration levels due to vibration can exceed the accelerometer sensor range in
many applications, none of the DMUX80ZA Series products trigger over-range on accelerometer
readings.
________________________________________________________________________
situations, but care must be taken to ensure that the duty cycle of the turn switch generally stays
below 10% during the vehicle mission. A high turn switch duty cycle does not allow the system
to apply enough rate sensor bias correction and could allow the attitude estimate to become
unstable.
The VGX80ZA algorithm has two major phases of operation. The first phase of operation is the
initialization phase. During the initialization phase, the VGX80ZA is expected to be stationary or
quasi-static so the EKF weights the accelerometer gravity reference heavily in order to rapidly
estimate the roll and pitch angles, and X, Y rate sensor bias. The initialization phase lasts
approximately 60 seconds, and the initialization phase can be monitored in the softwareStatus
BIT transmitted by default in each measurement packet. After the initialization phase, the
VGX80ZA operates with lower levels of feedback (also referred to as EKF gain) from the
accelerometers to continuously estimate and correct for roll and pitch errors, as well as to
estimate X and Y rate sensor bias.
If a user wants to reset the algorithm or re-enter the initialization phase, sending the algorithm
reset command, ‘AR’, will force the algorithm into the reset phase.
The VGX80ZA outputs digital measurement data over the UART port at a selectable fixed rate
(100, 50, 25, 20, 10, 5 or 2 Hz) or on as requested basis using the GP, ‘Get Packet’ command. In
addition to the scaled sensor packets described in the IMUX80ZA section, the VGX80ZA has
additional measurement output packets including the default ‘A2’ Angle Packet which outputs the
roll angle, pitch angle, and digital IMU data. ‘N0’ and ‘N1’ packets are also available for use with
an external GPS receiver. See Section 6 and 7 of the manual for full packet descriptions. All data
is also available on the SPI output port registers. Please refer to section 5 for a complete
description of the SPI port functionality.
________________________________________________________________________
to filter the Z-axis at a lower cutoff than the X and Y axes. Setting either to zero disables
the low-pass filter.
Freely OFF The Freely Integrate setting allows a user to turn the VGX80ZA into a ‘free gyro’. In free
Integrate gyro mode, the roll, pitch and yaw are computed exclusively from angular rate with no
Kalman filter based corrections of roll, pitch, or yaw. When turned on, there is no coupling
of acceleration based signals into the roll and pitch. As a result, the roll, pitch, and yaw
outputs will drift roughly linearly with time due to sensor bias. For best performance, the
Freely Integrate mode should be used after the algorithm has initialized. This allows the
Kalman Filter to estimate the roll and pitch rate sensor bias prior to entering the free gyro
mode. Upon exiting the ‘free gyro’ mode (OFF), one of two behaviors will occur
(1) If the VGX80ZA has been in freely integrate mode for less than sixty seconds,
the algorithm will resume operation at normal gain settings
(2) If the VGX80ZA has been in freely integrate mode for greater than sixty
seconds, the algorithm will force a reset and reinitialize with high gains
automatically.
Restart On OFF This setting forces an algorithm reset when a sensor over range occurs i.e., a rotational
Over Range rate on any of the three axes exceeds the maximum range. The default setting is OFF for
the VGX80ZA. Algorithm reset returns the VGX80ZA to a high gain state, where the
VGX80ZA rapidly estimates the gyro bias and uses the accelerometer feedback heavily.
This setting is recommended when the source of over-range is likely to be sustained and
potentially much greater than the rate sensor operating limit. Large and sustained angular
rate over-ranges result in unrecoverable errors in roll and pitch outputs. An unrecoverable
error is one where the EKF can not stabilize the resulting roll and pitch reading. If the
over-ranges are expected to be of short duration (<1 sec) and a modest percentage over
the maximum operating range, it is recommended that the restart on over range setting
be turned off. Handling of an inertial rate sensor over-range is controlled using the
restartOnOverRange switch. If this switch is off, the system will flag the overRange status
flag and continue to operate through it. If this switch is on, the system will flag a
masterFail error during an over-range condition and continue to operate with this flag until
a quasi-static condition is met to allow for an algorithm restart. The quasi-static condition
required is that the absolute value of each low-passed rate sensor fall below 3 deg/sec to
begin initialization. The system will then attempt a normal algorithm start.
Dynamic ON The default setting is ON for the VGX80ZA. Turning off the dynamic motion setting results
Motion in a higher gain state that uses the accelerometer feedback heavily. During periods of
time when there is known low dynamic acceleration, this switch can be turned off to allow
the attitude estimate to quickly stabilize.
Turn Switch 10.0 With respect to centripetal or false gravity forces from turning dynamics (or coordinated
threshold deg/sec turn), the VGX80ZA monitors the yaw-rate. If the yaw rate exceeds a given Turnswitch
threshold, the feedback gains from the accelerometer signals for attitude correction are
reduced because they are likely corrupted.
BIT See 4.3.2
________________________________________________________________________
The masterStatus flag is a configurable indication that can be modified by the user. This flag is
asserted as a result of any asserted alert signals which have been enabled. See Advanced BIT
(Section 9) for details on configuring the masterStatus flags. Table 9 shows the BIT definition
and default settings for BIT programmable alerts in the VGX80ZA.
Table 9 VGX80ZA Default BIT Status Definition
The VGX80ZA also allows a user to configure the Status byte within the BIT message. To
configure the word, select the BIT Configuration tab from the Unit Configuration menu. The
dialog box allows selection of which status types to enable (hardware, software, sensor, and
comm). Like the IMUX80ZA, ACEINNA recommends for the vast majority of users, that the
default Status byte for the VGX80ZA is sufficient. For users, who wish to have additional
visibility to when the VGX80ZA EFK algorithm estimates that the VGX80ZA is turning about its
Z or Yaw axis, the softwareStatus bit can be configured to go high during a turn. In other words,
the turnSwitch will turn on the softwareStatus bit. In the VGX80ZA, the turnSwitch is by default
set at 10.0 deg/sec about the z-axis.
________________________________________________________________________
addition, the AHRSX80ZA can accept external GPS data (refer to the INSX80ZA section for
details) for improved performance.
At a fixed 200Hz rate, the AHRSX80ZA continuously maintains the digital IMU data as well as
the dynamic roll, pitch, and heading. As shown in Figure 4, after the Sensor Calibration Block,
the IMU data is passed to the Integration to Orientation block. The Integration to Orientation
block integrates body frame sensed angular rate to orientation at a fixed 200 times per second
within all of the DMUX80ZA Series products. For improved accuracy and to avoid singularities
when dealing with the cosine rotation matrix, a quaternion formulation is used in the algorithm to
provide attitude propagation.
As also shown in the software block diagram, the Integration to Orientation block receives drift
corrections from the Extended Kalman Filter or Drift Correction Module. In general, rate sensors
and accelerometers suffer from bias drift, misalignment errors, acceleration errors (g-sensitivity),
nonlinearity (square terms), and scale factor errors. The largest error in the orientation
propagation is associated with the rate sensor bias terms. The Extended Kalman Filter (EKF)
module provides an on-the-fly calibration for drift errors, including the rate sensor bias, by
providing corrections to the Integration to Orientation block and a characterization of the gyro
bias state. In the AHRSX80ZA, the internally computed gravity reference vector and the
distortion corrected magnetic field vector provide an attitude and a heading reference
measurement for the EKF when the AHRSX80ZA is in quasi-static motion to correct roll, pitch,
and heading angle drift and to estimate the X, Y and Z gyro rate bias. The AHRSX80ZA
adaptively tunes the EKF feedback gains in order to best balance the bias estimation and attitude
correction with distortion free performance during dynamics when the object is accelerating
either linearly (speed changes) or centripetally (false gravity forces from turns). Because
centripetal and other dynamic accelerations are often associated with yaw rate, the AHRSX80ZA
maintains a low-passed filtered yaw rate signal and compares it to the turnSwitch threshold field
(user adjustable). When the user platform (with the AHRSX80ZA attached) exceeds the
turnSwitch threshold yaw rate, the AHRSX80ZA lowers the feedback gains from the
accelerometers to allow the attitude estimate to coast through the dynamic situation with primary
reliance on angular rate sensors. This situation is indicated by the softwareStatusturnSwitch
status flag. Using the turn switch maintains better attitude accuracy during short-term dynamic
situations, but care must be taken to ensure that the duty cycle of the turn switch generally stays
below 10% during the vehicle mission. A high turn switch duty cycle does not allow the system
to apply enough rate sensor bias correction and could allow the attitude estimate to become
unstable.
As described in 3.3 VGX80ZA theory of operation, the AHRSX80ZA algorithm also has two
major phases of operation. The first phase of operation is the high-gain initialization phase.
During the initialization phase, the AHRSX80ZA is expected to be stationary or quasi-static so
the EKF weights the accelerometer gravity reference and Earth’s magnetic field reference heavily
in order to rapidly estimate the X, Y, and Z rate sensor bias, and the initial attitude and heading of
the AHRSX80ZA. The initialization phase lasts approximately 60 seconds, and the initialization
phase can be monitored in the softwareStatus BIT transmitted by default in each measurement
packet. After the initialization phase, the AHRSX80ZA operates with lower levels of feedback
(also referred to as EKF gain) from the accelerometers and magnetometers to continuously
estimate and correct for roll, pitch, and heading (yaw) errors, as well as to estimate X, Y, and Z
rate sensor bias.
The AHRSX80ZA digital data is output over the UART port at a selectable fixed rate (100, 50,
25, 20, 10, 5 or 2 Hz) or on as requested basis using the GP, ‘Get Packet’ command. The
AHRS400 supports the same scaled sensor and angle mode packet format of the VGX80ZA. The
________________________________________________________________________
AHRSX80ZA defaults to the ‘A1’ Angle Packet which outputs the roll angle, pitch angle, yaw
angle, and digital IMU data. In the AHRSX80ZA, the ‘A1’ packet contains accurate
magnetometer readings. See Sections 6 and 7 of the manual for full packet descriptions. All data
is also available on the SPI output port registers. Please refer to section 5 for a complete
description of the SPI port functionality.
IMPORTANT
For proper operation, the AHRSX80ZA relies on magnetic field readings from its internal 3-axis
magnetometer. The AHRSX80ZA must be installed correctly and calibrated for hard-iron and
soft iron effects to avoid any system performance degradation. See section 3.4.1 for information
and tips regarding installation and calibration.
________________________________________________________________________
arising from the magnetism of the vehicle. The AHRSX80ZA must be calibrated after installation
and prior to use of the system
The AHRSX80ZA also provides a command interface for initiating the hard iron / soft iron
calibration without the using NAV-VIEW. The user can send a ‘WC’ command to initiate the
calibration, and then rotate the user system through 360 degrees. The ‘WC’ command has two
options – auto-termination and manual termination. With, auto-termination, the AHRSX80ZA
tracks the yaw movement and after X80 degrees of rotation returns the calibration complete
response, ‘CD’. The auto-termination sequence can falsely terminate if the 360 degree rotation is
not completed within 2 minutes of the ‘WC’ command initiation. Manual termination requires the
user to send a second ‘WC’ command with the termination code in the payload. Manual
termination is a good option when the user system moves very slowly (e.g., large marine vessel)
and completing the 360 degree rotation may require more than two minutes.
The calibration complete, ‘CD’, command response message contains the X and Y hard iron bias,
as well as the soft iron ratio and soft iron phase angle. This information can be interpreted to give
an indication of the quality of the calibration. See the section Hard Iron/Soft Iron Overview in
Appendix A: Installation and Operation of NAV-VIEW for more information on the hard iron
bias, soft iron ratio and soft iron phase angle. Section 7 has programming details for the ‘WC’
and ‘CD’ commands, as well as the “GF” commands that allow the user to request the parameters
committed to EEPROM memory.
WARNING
The AHRSX80ZA and INSX80ZA units must be mounted at least 24” away from large ferrous
objects and fluctuating magnetic fields. Failure to locate the unit in a clean magnetic environment
will affect the attitude solution.
Baud Rate 38,400 9600, 19200, 57600, 115200, and 230400 also available
baud
Packet 25 Hz This setting sets the rate at which selected Packet Type, packets are output. If polled
Rate mode is desired, then select Quiet. If Quiet is selected, the VGX80ZA will only send
measurement packets in response to GP commands.
Orientation See To configure the axis orientation, select the desired measurement for each axes: NAV-
Figure 6 VIEW will show the corresponding image of the AHRSX80ZA, so it easy to visualize the
and mode of operation. See section 8.4 Orientation Field settings for the twenty four possible
Figure 7. orientation settings. The default setting points the connector AFT.
________________________________________________________________________
Filter 20 Hz The low pass filters are set to a default of 20Hz for the accelerometers, and 20Hz for the
Settings accels angular rate sensors. There is one filter setting for all three angular rate sensors. There
(unfiltered, is one filter setting for all three accelerometer sensors. The reason for filtering the
20 Hz
2, 5, 10, 20, accelerometers is that in many installations, the vibration level can be high, and it can
rates
25, 40, 50 prove helpful to filter accelerometers. Setting either to zero disables the low-pass filter.
Hz)
Freely OFF The Freely Integrate setting allows a user to turn the AHRSX80ZA into a ‘free gyro’. In
Integrate free gyro mode, the roll, pitch and yaw are computed exclusively from angular rate with
no kalman filter based corrections of roll, pitch, or yaw. When turned on, there is no
coupling of acceleration based signals into the roll and pitch or magnetometer based
signals to the yaw. As a result, the roll, pitch, and yaw outputs will drift roughly linearly
with time due to sensor bias. For best performance, the Freely Integrate mode should be
used after the algorithm has initialized. This allows the Kalman Filter to estimate the roll
and pitch rate sensor bias prior to entering the free gyro mode. Upon exiting the ‘free
gyro’ mode (OFF), one of two behaviors will occur
(1) If the AHRSX80ZA has been in freely integrate mode for less than sixty
seconds, the algorithm will resume operation at normal gain settings
(2) If the AHRSX80ZA has been in freely integrate mode for greater than sixty
seconds, the algorithm will force a reset and reinitialize with high gains
automatically.
Use Mags ON The Use Mags setting allows users to turn on and off the magnetometer feedback
for yaw/heading stabilization. The default setting is ON for the AHRSX80ZA. When
Use Mags is turned ON, the AHRSX80ZA uses the magnetic field sensor readings
to stabilize the drift in yaw, and it slaves the yaw to the compass reading provided
from the magnetic field sensor readings. When Use Mags is turned OFF, the
heading (yaw) angle measurement of the AHRSX80ZA will drift and freely
integrate. In effect, this setting converts an AHRSX80ZA into the functionality of the
VGX80ZA. However, unlike a VGX80ZA this can be done on a selectable basis and
changed in real time during a mission. The reason for this setting is to give the user
an ability to turn off the magnetometer stabilization when severe magnetic distortion
may be occurring. This setting is desirable when the user system temporarily
moves in close proximity to a large ferrous object. When the Use Mags switch is
turned from OFF to ON, the AHRSX80ZA will reinitialize the yaw/heading angle
with the compass reading provided from the magnetic field sensor readings.
Restart On OFF This setting forces an algorithm reset when a sensor over range occurs i.e., a rotational
Over rate on any of the three axes exceeds the maximum range. The default setting is OFF for
Range the AHRSX80ZA. Algorithm reset returns the AHRSX80ZA to a high gain state, where
the AHRSX80ZA rapidly estimates the gyro bias and uses the accelerometer feedback
heavily. This setting is recommended when the source of over-range is likely to be
sustained and potentially much greater than the rate sensor operating limit. Large and
sustained angular rate over-ranges result in unrecoverable errors in roll and pitch
outputs. An unrecoverable error is one where the EKF can not stabilize the resulting roll
and pitch reading. If the over-ranges are expected to be of short duration (<1 sec) and a
modest percentage over the maximum operating range, it is recommended that the
restart on over range setting be turned off. Handling of an inertial rate sensor over-range
is controlled using the restartOnOverRange switch. If this switch is off, the system will
flag the overRange status flag and continue to operate through it. If this switch is on, the
system will flag a masterFail error during an over-range condition and continue to
operate with this flag until a quasi-static condition is met to allow for an algorithm restart.
The quasi-static condition required is that the absolute value of each low-passed rate
sensor fall below 3 deg/sec to begin initialization. The system will then attempt a normal
algorithm start.
Dynamic ON The default setting is ON for the AHRSX80ZA. Turning off the dynamic motion setting
Motion results in a higher gain state that uses the accelerometer feedback heavily. During
periods of time when there is known low dynamic acceleration, this switch can be turned
off to allow the attitude estimate to quickly stabilize.
________________________________________________________________________
Turn 0.5 With respect to centripetal or false gravity forces from turning dynamics (or coordinated
Switch deg/sec turn), the AHRSX80ZA monitors the yaw-rate. If the yaw rate exceeds a given
threshold Turnswitch threshold, the feedback gains from the accelerometer signals for attitude
correction are reduced because they are likely corrupted.
________________________________________________________________________
The AHRSX80ZA also allows a user to configure the Status byte within the BIT message. To
configure the word, select the BIT Configuration tab from the Unit Configuration menu. The
dialog box allows selection of which status types to enable (hardware, software, sensor, and
comm). Like the VGX80ZA and IMUX80ZA, ACEINNA recommends for the vast majority of
users, that the default Status byte for the AHRSX80ZA is sufficient. For users, who wish to have
additional visibility to when the AHRSX80ZA EFK algorithm estimates that the AHRSX80ZA is
turning about its Z or Yaw axis, the softwareStatus bit can be configured to go high during a turn.
In other words, the turnSwitch will turn on the softwareStatus bit. In the AHRSX80ZA, the
turnSwitch is by default set at 0.5 deg/sec about the Z-axis.
________________________________________________________________________
The status of GPS signal acquisition can be monitored from the hardwareStatus BIT as discussed
in Section 3.5.3 INSX80ZA Built in Test. From a cold start, it typically takes 40 seconds for GPS
to lock. The actual lock time depends on the antenna’s view of the sky and the number of
satellites in view.
The processor performs time-triggered trajectory propagation at 100Hz and will synchronize the
sensor sampling with the GPS UTC (Universal Coordinated Time) second boundary when
available.
As with the AHRSX80ZA and VGX80ZA, the algorithm has two major phases of operation.
Immediately after power-up, the INSX80ZA uses the accelerometers and magnetometers to
compute the initial roll, pitch and yaw angles. The roll and pitch attitude will be initialized using
the accelerometer’s reference of gravity, and yaw will be initialized using the leveled
magnetometers X and Y axis reference of the earth’s magnetic field. During the first 60 seconds
of startup, the INSX80ZA should remain approximately motionless in order to properly initialize
the rate sensor bias. The initialization phase lasts approximately 60 seconds, and the initialization
phase can be monitored in the softwareStatus BIT transmitted by default in each measurement
packet. After the initialization phase, the INSX80ZA operates with lower levels of feedback (also
referred to as EKF gain) from the GPS, accelerometers, and magnetometers.
Digital data is output over the UART port at a selectable fixed rate (100, 50, 25, 20, 10, 5 or 2
Hz) or on as requested basis using the GP, ‘Get Packet’ command. In addition to the angle mode
packets of the AHRSX80ZA and scaled sensor packets of the IMUX80ZA, the INSX80ZA has
additional output measurement packets including the default ‘N1’ Navigation Packet which
outputs the Latitude, Longitude, Altitude, X,Y,Z velocities, accelerations, and roll angle, pitch
angle, yaw angle, and digital IMU data. See Sections 6 and 7 of the manual for full packet
descriptions. All data is also available on the SPI output port registers. Please refer to section 5
for a complete description of the SPI port functionality.
IMPORTANT
For proper operation, the INSX80ZA relies on magnetic field readings from its internal 3-axis
magnetometer. The INSX80ZA must be installed correctly and calibrated for hard-iron and soft
iron effects to avoid any system performance degradation. See section 3.4.1 for information and
tips regarding installation and calibration and why magnetic calibration is necessary. Please
review this section of the manual before proceeding to use the INSX80ZA.
IMPORTANT
For optimal performance the INSX80ZA utilizes GPS readings from an external GPS receiver.
The GPS receiver requires proper antennae installation for operation. See section 2.1.4 for
information and tips regarding antenna installation.
________________________________________________________________________
the INSX80ZA to a specific application requirements. The INSX80ZA advanced settings are
shown in Table 12 below:
Baud Rate 38,400 9600, 19200, 57600, 115200, and 230400 also available
baud
Packet Rate 25 Hz This setting sets the rate at which selected Packet Type, packets are output. If polled
mode is desired, then select Quiet. If Quiet is selected, the INSX80ZA will only send
measurement packets in response to GP commands.
Orientation See To configure the axis orientation, select the desired measurement for each axes; NAV-
Figure VIEW will show the corresponding image of the INSX80ZA, so it easy to visualize the
6 and mode of operation. See section 8.4 Orientation Field settings for the twenty four possible
Figure orientation settings. The default setting points the connector AFT.
7.
Filter Settings 20 Hz The low pass filters are set to a default of 20Hz for the accelerometers, and 20Hz for the
(unfiltered, 2, 5, accels angular rate sensors. There is one filter setting for all three angular rate sensors. There is
10, 20, 25, 40, one filter setting for all three accelerometer sensors. The reason for filtering the
20 Hz
50 Hz) accelerometers is that in many installations, the vibration level can be high, and it can
rates
prove helpful to filter accelerometers. Setting either to zero disables the low-pass filter.
Freely Integrate OFF The Freely Integrate setting allows a user to turn the INSX80ZA into a ‘free gyro’. In free
gyro mode, the roll, pitch and yaw are computed exclusively from angular rate with no
kalman filter based corrections of roll, pitch, and yaw. When turned on, there is no
coupling of acceleration based signals into the roll and pitch or magnetometer based
signal to the yaw. As a result, the roll, pitch, and yaw outputs will drift roughly linearly with
time due to sensor bias. For best performance, the Freely Integrate mode should be
used after the algorithm has initialized. This allows the Kalman Filter to estimate the roll
and pitch rate sensor bias prior to entering the free gyro mode. Upon exiting the ‘free
gyro’ mode (OFF), one of two behaviors will occur
(1) If the INSX80ZA has been in freely integrate mode for less than sixty seconds,
the algorithm will resume operation at normal gain settings
(2) If the INSX80ZA has been in freely integrate mode for greater than sixty
seconds, the algorithm will force a reset and reinitialize with high gains
automatically.
Use GPS ON The Use GPS setting allows users to turn on and off the GPS feedback. The default
setting is ON for the INSX80ZA. When Use GPS is turned OFF, the INSX80ZA’s
behavior will revert to that of an AHRSX80ZA. See the AHRSX80ZA Theory of Operation
for detailed description.
Stationary Yaw OFF This setting defaults to OFF on the INSX80ZA, and it is recommended to be OFF for the
Lock INSX80ZA. The stationary yaw lock setting is only recommended for consideration when
the INSX80ZA is operating with GPS (Use GPS = ON) and WITHOUT magnetometer
feedback (Use Mags = OFF). Stationary yaw lock may be appropriate if the user platform
is a wheeled land vehicle.
Use Mags ON The Use Mags setting allows users to turn on and off the magnetometer feedback for
yaw/heading stabilization. The default setting is ON for the INSX80ZA. When Use Mags
is turned ON, the INSX80ZA uses the magnetic field sensor readings to stabilize the drift
in yaw, and it slaves the yaw to the compass reading provided from the magnetic field
sensor readings. When UseMags is turned OFF, the heading (yaw) angle measurement
________________________________________________________________________
of the INSX80ZA will be slaved to the GPS heading if GPS is available, otherwise the
heading will drift feely. The reason for this setting is to give the user an ability to turn off
the magnetometer stabilization when severe magnetic distortion may be occurring. This
setting is desirable when the user vehicle temporarily moves in close proximity to a large
ferrous object. When the Use Mags switch is turned from OFF to ON, the INSX80ZA will
reinitialize the yaw/heading angle with the compass reading provided from the magnetic
field sensor readings.
Restart On Over OFF This setting forces an algorithm reset when a sensor over range occurs i.e., a rotational
Range rate on any of the three axes exceeds the maximum range. The default setting is OFF for
the INSX80ZA. Algorithm reset returns the INSX80ZA to a high gain state, where the
INSX80ZA rapidly estimates the gyro bias and uses the accelerometer feedback heavily.
This setting is recommended when the source of over-range is likely to be sustained and
potentially much greater than the rate sensor operating limit. Large and sustained
angular rate over-ranges result in unrecoverable errors in roll and pitch outputs. An
unrecoverable error is one where the EKF can not stabilize the resulting roll and pitch
reading. If the over-ranges are expected to be of short duration (<1 sec) and a modest
percentage over the maximum operating range, it is recommended that the restart on
over range setting be turned off. Handling of an inertial rate sensor over-range is
controlled using the restartOnOverRange switch. If this switch is off, the system will flag
the overRange status flag and continue to operate through it. If this switch is on, the
system will flag a masterFail error during an over-range condition and continue to operate
with this flag until a quasi-static condition is met to allow for an algorithm restart. The
quasi-static condition required is that the absolute value of each low-passed rate sensor
fall below 3 deg/sec to begin initialization. The system will then attempt a normal
algorithm start.
Dynamic ON The default setting is ON for the INSX80ZA. Turning off the dynamic motion setting
Motion results in a higher gain state that uses the accelerometer feedback heavily. During
periods of time when there is known low dynamic acceleration, this switch can be turned
off to allow the attitude estimate to quickly stabilize.
Turn Switch 0.5 With respect to centripetal or false gravity forces from turning dynamics (or coordinated
threshold deg/sec turn), the INSX80ZA monitors the yaw-rate. If the yaw rate exceeds a given Turnswitch
threshold, the feedback gains from the accelerometer signals for attitude correction are
reduced because they are likely corrupted.
________________________________________________________________________
for details for configuring the masterStatus flags. Table 13 shows the BIT definition and default
settings for BIT programmable alerts in the INSX80ZA.
The INSX80ZA also allows a user to configure the Status byte within the BIT message. To
configure the word, select the BIT Configuration tab from the Unit Configuration menu. The
dialog box allows selection of which status types to enable (hardware, software, sensor, and
comm). Like the IMU, VG and AHRSX80ZA, ACEINNA recommends for the vast majority of
users, that the default Status byte for the INSX80ZA is sufficient. For users, who wish to have
additional visibility or alerts relative to the GPS sensor status or algorithm status, they can
configure additional triggers for both the softwareStatus and hardwareStatus (See Section 9 of the
user’s manual for a description of all the BIT fields).
________________________________________________________________________
4 Application Guide
Introduction
This section provides recommended advanced settings for tailoring the DMUX80ZA Series of
inertial systems to different types of application and platform requirements.
Recommended
AHRSX80ZA or INSX80ZA
Product
Dynamic Condition
Recommended
Pre-launch or known Launch Normal
Settings
straight and level un- Dynamics High Dynamics
accelerated flight (Default)
UseMags ON ON ON ON
Turn Switch Threshold 0.5 deg/s 0.5 deg/s 0.5 deg/s 0.5 deg/s
*A cutoff frequency of filters may be varied depending on the fastest dynamic mode of the aircraft. For
example, the conventional aircraft has five dynamic modes, short-period, phugoid, spiral, dutch-roll, and
roll, and the fastest one is the roll mode. The natural frequency of this mode is around 6~8 radian/sec or
(about 2 Hz) in most cases. Therefore, the recommended filter setting would not reject desired frequency
components (or dynamic modes) that one wants to capture. However, the larger the bandwidth (or cutoff
frequency) is, the noisier the corresponding signal is, which may result in the performance degradation. If
________________________________________________________________________
the aircraft is operated under severe vibrations, also, the recommended filter setting may need to be further
reduced in order to reject the frequency components caused by the vibration.
**FreelyIntegrate should only be set to “ON” for severe launch conditions. Normal takeoff dynamics that
a standard aircraft would experience will see the best performance with this setting in the “OFF” position.
Rotorcraft
Rotorcraft is a category of heavier-than-air flying machines that use lift generated by rotors. They
may also include the use of static lifting surfaces, but the primary distinguishing feature being lift
provided by rotating lift structures. Rotorcraft includes helicopters, autogyros, gyrodynes and
tiltrotors.
The rotor blade dynamics itself is much faster than that of the fixed wing aircraft and contains
high frequency components. At the same time, however, it may cause severe vibrations on the
airframe. Also, the overall dynamics (translational and rotational motion) of the rotor craft is
much slower than the fixed wing aircraft due to a mechanical mechanism of rotors generating the
aerodynamic forces and moments. Table 15 provides the recommended advanced settings for two
different dynamic conditions.
Table 15 Recommended Advanced Settings for Rotorcraft
Recommended Product AHRSX80ZA or INSX80ZA
Dynamic Condition
Recommended Settings High Dynamics
Normal Dynamics
(with uncoordinated tail motion)
UseMags ON ON
Dynamic Motion ON ON
**The helicopter can change its heading angle rapidly unlike the aircraft which
requires banking. A turn switch threshold that is too low may cause turn switch
activation with high duty cycle causing random walk in roll and pitch angles due to
low feedback gains.
*A cutoff frequency must be far away from major frequency components caused by
the rotor vibration.
________________________________________________________________________
Land Vehicle
Some examples of land vehicles are: Automobiles, trucks, heavy equipment, trains, snowmobiles,
and other tracked vehicles. Table 16 provides the recommended advanced settings for two
different types of application.
Dynamic Condition
Recommended Settings
Heavy Equipment
Automotive Testing (IMU and VG default)
Application
Dynamic Motion ON ON
XY Filter Accel 5 Hz 5 Hz
Z Filter Accel 5 Hz 5 Hz
Water Vehicle
Water vehicle is a craft or vessel designed to float on or submerge and provide transport over and
under water. Table 17 provides the recommended advanced settings for two different types of
application.
Application
Recommended Settings
Surfaced Submerged
UseGPS ON OFF
________________________________________________________________________
Dynamic Motion ON ON
XY Filter Accel 5 Hz 2 Hz
Z Filter Accel 5 Hz 2 Hz
EXAMPLE
Figure 8 shows a typical flight profile of the fixed wing aircraft and the corresponding advanced
settings that one can configure adaptively depending on a flight phase:
Prelaunch is the phase of flight in which an aircraft goes through a series of checkups
(hardware and software) on the ground before takeoff. The aircraft is a static condition,
Takeoff is the phase of flight in which an aircraft goes through a transition from moving
along the ground (taxiing) to flying in the air, usually along a runway. The aircraft is
under horizontal acceleration and may suffer from vibrations coming from an engine and
ground contact forces transmitted from its landing gear.
Climb is the phase of a flight, after take-off, consisting of getting the aircraft to the
desired flight level altitude. More generally, the term 'climb' means increasing the
altitude. The aircraft is under vertical acceleration until it reaches the steady-state climb
rate.
Straight and level flight is the phase of flight in which an aircraft reaches its nominal
flight altitude and maintains its speed and altitude. The aircraft is under equilibrium (See
Figure 8).
Maneuver is the phase of flight in which an aircraft accelerates, decelerates, and turns.
The aircraft is under non-gravitational acceleration and/or deceleration (See Figure 8).
Descent is the phase of flight in which an aircraft decreases altitude for an approach to
landing. The aircraft is under vertical deceleration until it captures a glide slope (See
Figure 8).
Landing is the last part of a flight, where the aircraft returns to the ground (See Figure
8).
________________________________________________________________________
Figure 8 Typical flight profiles of fixed wing aircraft and the corresponding advanced
settings
________________________________________________________________________
5 DMUX80ZA SPI Port Interface Definition
The DMUX80ZA provides a SPI interface for data communications. This section of the user’s
manual defines the DMUX80ZA register map, register control capabilities, and the data register
reading and writing methodologies.
The DMUX80ZA operates as a slave device. The master device must be configured to
communicate with the DMUX80ZA using the following settings:
Data transferred in 16-bit word-length and MSB-first
fCLK ≤ 2.0 MHz
CPOL = 1 (clock polarity) and CPHA = 1 (clock phase)
Additional operational requirements are described in Section 5.8.
2
Register and data-packet availability is based on the features of the DMU380ZA (see Table 2).
3
Register reads are performed 2-bytes at a time while writes are a single byte in length. In operation, the
SELF_TEST/DATA_READY register should be read together starting at register 0x34. This applies to other shared registers as well.
________________________________________________________________________
4
This command only applies to AHRS and INS variants and will not work with IMU or VG units
________________________________________________________________________
5
A SPI cycle consists of 16 clock cycles.
________________________________________________________________________
In this example, the SPI-master initiates a register read by clocking in the address followed by
0x00, i.e. 0x0400, via MOSI; this combination is referred to as a read-command6. This is
followed by 16 zero-bits to complete the SPI data-transfer cycle.
As the master transmits the read command over MOSI, the DMUX80ZA transmits information
back over MISO. In this transmission, the first data-word sent by the DMUX80ZA (as the read-
command is sent) consists of 16-bits of non-applicable data. The subsequent 16-bit message
contains the x-axis rate-sensor information (most significant byte followed by least-significant
byte).
nSS
CLK
Multiple-Register Polled-Read
Figure 10 illustrates a polled-mode read of multiple registers. In this case, the SPI-master
transmits an initial read-command (the desired register-address appended by 0x00) across MOSI
followed by any number of additional read-commands (one for each register of interest). The
DMUX80ZA transfers the requested information concurrently across MISO to the master. To
complete the data transfer, the final read-command must be followed by an additional 16 clock
cycles to transfer the last 16-bits of data.
In this example, the master requests data from four separate registers: x-axis rate (0x0400), y-axis
rate (0x0600), z-axis acceleration (0x0E00), and system status (0x3C00). The transfer of 0x0000
across MOSI completes the read by returning the status data via the MISO line.
6
A read-command consists of an 8-bit register address and a zero byte (0x00).
________________________________________________________________________
nSS
CLK
________________________________________________________________________
Table 19 DMUX80ZA Burst-Mode Data-Packets
Data-Packet Register Number of Pertinent Availability
Address 16-bit Words Section
Standard 0x3E 8 5.2.2 All systems
Scaled Sensor 0 0x41 15 7.4.1 All systems except IMUX80ZA-200 and
VGX80ZA
Scaled Sensor 1 0x42 12 7.4.2 All systems
Angle Data 1 0x43 16 7.4.3 All systems except IMUX80ZA and VGX80ZA
Angle Data 2 0x44 15 7.4.4 All systems except IMUX80ZA
Nav 0 0x45 16 7.4.5 INSX80ZA
Burst-mode begins when the master requests a read from a burst-mode data-packet (i.e. 0x3E).
Eight additional SPI cycles complete the read (one for each word in the standard data-packet).
Figure 11 illustrates the burst-mode sequence. Note: if the incorrect number of SPI cycles follow
the burst-mode command, the SPI transfer will either complete early or remain in burst-mode;
subsequent reads/writes will be out of sync with the SPI transfer cycle of the DMUX80ZA.
________________________________________________________________________
nSS
CLK
BOARD_
MISO N/A STATUS X_RATE
TEMP
Operational notes:
1. When combining polled and burst reads, use only single-register polled-reads.
2. Burst-mode reads for other data-packets are performed in a manner similar to the standard
packet. The only deviation from the method described above is the register address and the
subsequent number of data words, listed in Table 20.
3. Care must be taken when switching between data-packets as values returned during the first
burst-read of a new packet are invalid. A single read-cycle is needed to populate the internal
burst-mode register; subsequent reads from the same packet contain valid information.
4. During a burst read, the chip-select line (nSS) can be controlled in one of two ways:
Toggle nSS in between each of the 16-bit words (as shown in Figure 11).
Set and hold nSS low during the entire read. After the transfer is complete, set chip-
select high.
________________________________________________________________________
Table 21 DMUX80ZA Data Output Registers
Name Read Address Function
X_RATE 0x04 X, Y, Z-axis rate-sensor information, twos complement format,
Y_RATE 0x06 conversion factor: 200 LSB/[ ° /sec ] (default); changes with selected
Z_RATE 0x08 dynamic range (Table 28)
X_ ACCEL 0x0A X, Y, Z-axis accelerometer information, twos complement format,
Y_ ACCEL 0x0C conversion factor: 4000 LSB/g (default) ; changes with selected dynamic
Z_ACCEL 0x0E range (Table 31)
X_MAG 0x10 X, Y, Z-axis magnetometer information, twos complement format,
Y_MAG 0x12 conversion factor: 16000 LSB/G (default) ; changes with selected
dynamic range (Table 33)
Z_MAG 0x14
RATE_TEMP 0x16 Rate-sensor temperature information, twos complement format,
conversion:
Tout [° C ] = Vout · 0.07311 [° C/LSB ]
BOARD_TEMP 0x18 System temperature information, twos complement format, conversion:
Tout [° C ] = Vout · 0.07311 [° C/LSB ] + 31.0 [° C ]
System Registers
In addition to the output data registers, there are further read-only registers that provide
DMUX80ZA system information to the SPI master. Table 22 provides a description of each
along with their read-addresses.
________________________________________________________________________
Table 22 DMUX80ZA System Registers
Name Read Address Function
DIAGNOSTIC_STATUS 0x3C Sensor self-test and over-range information (See Section 5.5)
X_HARD_IRON 0x48
Y_HARD_IRON 0x4A
Results of the magnetic-alignment procedure (see Section 5.7.7)
SF_SOFT_IRON 0x4C
ANG_SOFT_IRON 0x4E
MANUF_CODE 0x52 Product manufacturing code
UNIT_CODE 0x54 Additional product manufacturing information
PRODUCT_ID 0x56 Product ID (0x3810)
SERIAL_NUMBER 0x58 Unique product identification number
MASTER_STATUS 0x5A See Section 9.2: Master BIT and Status Field
HW_STATUS 0x5C See Section 9.3: Hardware BIT Field
SW_MASTER 0x5E See Section 9.9: Software BIT Field
SW_STATUS 0x60 See Section 9.14: Software Status Field
SW_ALGO 0x62 See Section 9.10: Software Algorithm BIT Field
SW_DATA 0x64 See Section 9.11: Software Data BIT Field
COMM_MASTER 0x66 See Section 9.6: Com BIT Field
COMM_DATA_STATUS 0x68 See Section 9.13: Com Status Field
COMM_BUS_A 0x6A See Section 9.7: Com Serial A BIT Field
COMM_BUS_B 0x6C See Section 9.8: Com Serial B BIT Field
SENSOR_STATUS 0x6E See Section 9.15: Sensor Status Field
HW_SW_VERSION 0x7E Hardware and Software Versions (See Section 5.7.8)
________________________________________________________________________
[ 9:6 ] Unused
5 Self-Test Success/Failure bit
0: Success, 1: Failure
The following example highlights how write-commands are formed in order to initiate a sensor
self-test:
Select the write address of the desired register, e.g. 0x35 for self-test
Change the most-significant bit of the address to 1 (the write-bit), e.g. 0x35 becomes
0xB5
Create the write command by appending the write-bit/address combination with the value
to be written to the register, e.g. 0xB504 (see Table 25 for a description of the self-test
register)
________________________________________________________________________
nSS
CLK
MOSI 0xB504
MISO N/A
As described in Section 5.7.1, the self-test command bit remains set until the test completes. The
master must read from register 0x34 to assess if the test is complete (Figure 13). Note: as
described in the Register Reads section, a register read returns two bytes, in this case a read from
register 0x34 returns data from registers 0x34 (self-test information) and 0x35 (data-ready
settings). The value read from the DMUX80ZA must be parsed according to Table 25 to
determine self-test completion status.
nSS
CLK
Configuration Registers
5.7.1 Self-Test/Data-Ready
Self-test and data-ready registers are combined into a single 16-bit register at memory location
0x34; individual bits are assigned according to Table 25.
Table 25 Self-Test/Data-Ready Register
(Base Address: 0x34), Read/Write
Bits Description (Default: 0x0004)
[ 15:11 ] Unused
10 Unit self-test bit (bit reset upon completion of self-test)
0: Disabled (default)
1: Enabled
[ 9:8 ] Unused
[ 7:3 ] Unused
________________________________________________________________________
2 Data-ready enable bit
0: Disabled
1: Enabled (default)
1 Data-ready line polarity
0: Low upon data-ready (default)
1: High upon data-ready
0 Unused
The self-test enables the system to test individual sensors by applying a temporary bias to
determine if they are responding correctly. Once self-test completes, the self-test bit (bit 10) is
reset to indicate that the test is finished. Results of the self-test are store in the status register,
0x3C. To initiate self-test, the master sends 0xB504 across the SPI bus.
The data-ready bits enable the master to enable or disable the data-ready signal provided on pin 7
of the DMUX80ZA and to set the data-ready signal polarity (high or low). To enable data-ready
with a high signal, the master sends 0xB406.
The ODR enables the master to specify the output rate of data provided by the DMUX80ZA.
Setting this register directly affects the data-ready signal. The default ODR is 200 Hz; to change
the ODR to 100 Hz, the master sends 0xB702.
________________________________________________________________________
5.7.3 Rate-Sensor Scaling/Low-Pass Filter
The rate-sensor scaling and digital low-pass filter configuration are combined into a single 16-bit
register at memory location 0x38; individual bits are assigned according to Table 27. Note: these
settings apply only to data output via the DMUX80ZA SPI port and do not affect the low-level
UART output port.
The rate-sensor scaling selector adjusts the output scaling applied to the rate-sensor values7 in
registers 0x04 through 0x08 as well as the values in the standard data-packet (scaling in the other
data-packets are not affected). Additionally, this setting affects the limits that control the sensor
over-range bit in the diagnostic status register (Table 23); if the system undergoes motion that
exceeds this limit, the over-range bit is set. The default scaling is 125.0°/sec; to change the
scaling to 62.5°/sec, the master sends 0xB901.
The rate sensor dynamic range selection maps to a bit-weight scale factor as defined in Table 28.
7
Limits will affect the signal output only if the system is capable of generating a signal of that level. For instance, for an IMU380ZA-
200, a 220 °/sec limit will apply however the 440 °/sec limit will not, as the sensor is incapable of outputting signals greater than
220 °/sec.
________________________________________________________________________
The digital low-pass filter register sets the type and cutoff frequency of the filter applied to the
scaled sensor data. The default setting is a 5 Hz Bartlett filter; to switch to a 20 Hz Butterworth
filter, the master sends 0xB840. Figure 14 describes the output response of the different Bartlett
filter settings.
________________________________________________________________________
Table 29 Rate-Sensor and Accelerometer Output Scaling
(Base Address: 0x70), Read/Write
Bits Description (Default: 0x1F3F)
[ 15:12 ] Rate-Sensor Scaling/Dynamic Range Selector
0x0: +/-62.5° /sec
0x1: +/-125.0° /sec (default)
0x2: +/-250.0° /sec
0x3: +/-500.0° /sec
0x4: +/-1000.0° /sec
[ 11:8 ] Reserved for future use
[ 7:4 ] Accelerometer Scaling/Dynamic Range Selector
0x0: +/-1.0 [g]
0x1: +/-2.0 [g]
0x2: +/-4.0 [g]
0x3: +/-5.0 [g] (default)
0x4: +/-8.0 [g]
[ 3:0 ] Reserved for future use
As described in the previous section, the rate-sensor scaling selector adjusts the output scaling
applied to the rate-sensor values as well as the limits that control the sensor over-range bit in the
diagnostic status register (Table 23). The accelerometer scaling and limits work in the same
fashion.
The rate sensor dynamic range selection maps to a bit-weight scale factor as defined in Table 30.
The accelerometer dynamic range mapping is defined in Table 31.
________________________________________________________________________
Magnetometer scaling and limits are in the register at memory location 0x72; individual bits are
assigned according to Table 32.
Just like the rate-sensor and accelerometer scaling, the magnetometer scaling selector adjusts the
output scaling applied to the magnetometer values. However, the limit only affects the sensor
output, it does not affect the over-range bit.
The magnetometer dynamic range selection maps to a bit-weight scale factor as defined in Table
33.
________________________________________________________________________
5.7.7 Magnetic-Alignment
On models with magnetometers and AHRS or INS algorithms (INSX80ZA and AHRSX80ZA),
the system is capable of compensating for the hard-iron bias and soft-iron scaling of the mounting
environment. Once found, the values are used by the Kalman filter algorithm to compensate the
heading for the magnetic environment. A complete discussion of the process is discussed in the
section Mag Alignment Procedure found in Appendix A: Installation and Operation of NAV-
VIEW.
To initiate a magnetic alignment over the SPI bus, perform a write to register 0x50 by appending
the write-bit/address combination with 0x01, e.g. 0xD001. Table 34 provides a description of the
mag-alignment register.
Once the mag-align procedure has begun, the Mag-Align Status byte will be set to 0x0C. The
master must monitor the least-significant byte of register 0x50 to assess test status. Once the byte
changes to 0x0B the alignment procedure is complete. At this point, the hard-iron and soft-iron
estimates are written to registers 0x48 through 0x4F and saved to the EEPROM. The Kalman
filter algorithm is reset to stabilization mode. It remains in this state for five seconds to allow the
user to bring the system to rest while the initialization process completes.
Conversion factors from values in the hard and soft-iron registers (0x48 through 0x4E) to decimal
equivalents are provided in Table 35.
Register
Name Format Scaling Range Units
Address
X-Axis Hard-Iron Bias 0x48 Signed-Integer 20/2^16 [ -10,10 ] Gauss
Y-Axis Hard-Iron Bias 0x4A Signed-Integer 20/2^16 [ -10,10 ] Gauss
Soft Iron Scale Ratio 0x4C Unsigned-Integer 2/2^16 [ 0,2 ] N.D.
________________________________________________________________________
Soft-Iron Angle 0x4E Signed-Integer 2*pi/(2^15 – 1) [ -pi,pi ] Radians
Suggested Operation
The following operational procedure and timing specifications should be adhered to while
communicating with the DMUX80 via SPI to ensure proper system operation. These points are
further highlighted later in this section.
Startup Timing
The following timing applies at system startup (Figure 15):
During system setup, the DMUX80 should be held in reset (nRST line held low) until the
SPI master is configured and the system is ready to begin communications with the
DMUX80
After releasing the reset line, the DMUX80 requires 550 msec (tSystem Delay) before the
system is ready for use
Data should be read from the DMUX80ZA when the data-ready line is set (see Section
5.7.1)
________________________________________________________________________
Power-on
of master
nRST pulled low SPI
following power-on
Timing
Vcc The
nRST released after timing
system configured
nRST held low during
master boot-up sequence
nRST
tReset Delay
DR
nSS
nSS
CLK
tDELAY
________________________________________________________________________
nSS
tSU,NSS th,NSS
CLK
tV,MISO
tSU,MOSI th,MOSI
Signal Synchronization
The IMUX80 is capable of synchronizing its output with a 1 kHz external clock signal, in the
form of a square wave, applied to Pin 2. When detected, the DMUX80 ignores its internal timer,
replacing it with the external clock. Care must be taken to ensure the signal is a true 1 kHz clock,
as the firmware will assume all signals on the line have a 1 kHz frequency. Also, once an
external sync pulse is applied, the signal must remain or the unit will cease its sampling and
processing functions; the system cannot return to internal timing without resetting the system and
removing the sync signal.
While providing a 1 kHz clock locks the system’s output to the external signal, there still remains
ambiguity as to which clock-edge corresponds to the sampling and data-processing task. This is
due to the decimation by five of the input clock to the maximum output data rate (200 Hz). The
following method will enable the user to create a deterministic lock between the clock and the
sampling task of the DMUX80.
________________________________________________________________________
6. An additional 5 clock cycles are required before data, synchronized to the external clock,
is available. This occurs on the 71st rising edge of the 1 kHz signal (70 milliseconds
after the first rising edge).
The lock forces the data-processing task in the firmware to begin on the rising edge of the clock
signal. Data-ready (pin 7) is set approximately 400 micro-seconds after the task begins (the time
it takes to process the data), indicating that the latest data has been placed into the SPI register.
Subsequent data, locked to the external clock signal, is placed into the SPI register depending
upon the ODR (set via SPI register 0x37). For instance, if the ODR is set to 100 Hz
(corresponding to a value 0x02 in register 0x36), then the process is repeated at every tenth rising
edge of the external clock. For a 200 Hz ODR, the process repeats at every fifth rising edge.
________________________________________________________________________
6 DMUX80 UART Port Interface Definition
The DMUX80ZA Series contains a number of different products which have different
measurement capabilities. Depending on the model you purchased, various commands and output
modes are supported. However, all models support a common packet structure that includes both
command or input data packets (data sent to the DMUX80ZA Series) and measurement output or
response packet formats (data sent from the DMUX80ZA Series). This section of the manual
explains these packet formats as well as the supported commands. NAV-VIEW also features a
number of tools that can help a user understand the packet types available and the information
contained within the packets. This section of the manual assumes that the user is familiar with
ANSI C programming language and data type conventions.
For an example of the code required to parse input data packets, please see refer to Appendix C.
For qualified commercial OEM users, a source code license of NAV-VIEW can be made
available under certain conditions. Please contact your ACEINNA representative for more
information.
General Settings
The serial port settings are RS232 with 1 start bit, 8 data bits, no parity bit, 1 stop bit, and no flow
control. Standard baud rates supported are: 9600, 19200, 38400, 57600, 115200, and 230400.
Common definitions include:
A word is defined to be 2 bytes or 16 bits.
All communications to and from the unit are packets that start with a single word
alternating bit preamble 0x5555. This is the ASCII string “UU”.
All multiple byte values are transmitted Big Endian (Most Significant Byte First).
All communication packets end with a single word CRC (2 bytes). CRC’s are calculated
on all packet bytes excluding the preamble and CRC itself. Input packets with incorrect
CRC’s will be ignored.
Each complete communication packet must be transmitted to the DMUX80ZA Series
inertial system within a 4 second period.
Number Formats
Number Format Conventions include:
0x as a prefix to hexadecimal values
single quotes (‘’) to delimit ASCII characters
no prefix or delimiters to specify decimal values.
________________________________________________________________________
U4 Unsigned Int 4 0 to 2^32-1
I2 Signed Short 2 2’s Complement -2^15 to 2^15-1
I2* Signed Short 2 Shifted 2’s Complement Shifted to specified
range
I4 Signed Int 4 2’s Complement -2^31 to 2^31-1
F4 Floating Point 4 IEEE754 Single -1*2^127 to 2^127
Precision
SN String N ASCII
Packet Format
All of the Input and Output packets, except the Ping command, conform to the following
structure:
0x5555 <2-byte packet type <payload byte-length <variable length <2-byte CRC (U2)>
(U2)> (U1)> payload>
The Ping Command does not require a CRC, so a DMUX80ZA Series unit can be pinged from a
terminal emulator. To Ping a DMUX80ZA Series unit, type the ASCII string ‘UUPK’. If properly
connected, the DMUX80ZA Series unit will respond with ‘PK’. All other communications with
the DMUX80ZA Series unit require the 2-byte CRC. {Note: A DMUX80ZA Series unit will also
respond to a ping command using the full packet formation with payload 0 and correctly
calculated CRC. Example: 0x5555504B009ef4 }.
P = packet
F = fields
Refers to Fields which are settings or data contained in the unit
E = EEPROM
Refers to factory data stored in EEPROM
R = read
Reads default non-volatile fields
G = get
Gets current volatile fields or settings
W = write
________________________________________________________________________
Writes default non-volatile fields. These fields are stored in non-volatile memory and
determine the unit’s behavior on power up. Modifying default fields take effect on the
next power up and thereafter.
S = set
Sets current volatile fields or settings. Modifying current fields will take effect
immediately by modifying internal RAM and are lost on a power cycle.
6.3.4 Payload
The payload is of variable length based on the packet type.
________________________________________________________________________
Link Test
PK 0x504B 0 Ping Command Input/Reply ALL
and Response Message
CH 0x4348 N Echo Command Input/Reply ALL
and Response Message
Interactive Commands
GP 0x4750 2 Get Packet Input ALL
Request Message
AR 0x4152 0 Algorithm Reset Input/Reply VG,AHRS, INS
Message
NAK 0x1515 2 Error Response Reply ALL
Message
WC 0x5743 2 Calibrate Input/Reply AHRS, INS
Command and Message
Response
CD 0x4344 10 Calibration Reply AHRS, INS
Completed Message
Output Messages: Status
& Other, (Polled Only)
ID 0x4944 5+N Identification Data Output ALL
Message
VR 0x5652 5 Version Data Output ALL
Message
T0 0x5430 28 Test 0 (Detailed Output ALL
BIT and Status) Message
Output Messages:
Measurement Data
(Continuous or Polled)
S0 0x5330 30 Scaled Sensor 0 Output IMUX80ZA (-
Data Message 209, -409),
AHRS, INS
S1 0x5331 24 Scaled Sensor 1 Output ALL
Data Message
A1 0x4131 32 Angle 1 Data Output AHRS, INS
Message
A2 0x4132 30 Angle 2 Data Output VG, AHRS,
Message INS
N0 0x4E30 32 Nav 0 Data Output VG, AHRS,
Message INS
N1 0x4E31 42 Nav 1 Data Output VG, AHRS,
Message INS
Advanced Commands
WF 0x5746 numFields*4+ Write Fields Input ALL
1 Request Message
WF 0x5746 numFields*2+ Write Fields Reply ALL
1 Response Message
SF 0x5346 numFields*4+ Set Fields Input ALL
1 Request Message
________________________________________________________________________
SF 0x5346 numFields*2+ Set Fields Reply ALL
1 Response Message
RF 0x5246 numFields*2+ Read Fields Input ALL
1 Request Message
RF 0x5246 numFields*4+ Read Fields Reply ALL
1 Response Message
GF 0x4746 numFields*2+ Get Fields Input ALL
1 Request Message
GF 0x4746 numFields*4+ Get Fields Reply ALL
1 Response Message
________________________________________________________________________
7 DMUX80 Standard UART Port Commands and Messages
Link Test.
The ping command has no payload. Sending the ping command will cause the unit to send a ping
response. To facilitate human input from a terminal, the length and CRC fields are not required.
(Example: 0x5555504B009ef4 or 0x5555504B))
The echo command allows testing and verification of the communication link. The unit will
respond with an echo response containing the echo data. The echo data is N bytes long.
Interactive Commands
Interactive commands are used to interactively request data from the DMUX80ZA Series, and to
calibrate or reset the DMUX80ZA Series.
________________________________________________________________________
0x5555 0x4750 0x02 <GP payload> <CRC (U2)>
This command allows the user to poll for both measurement packets and special purpose output
packets including ‘T0’, ‘VR’, and ‘ID’.
GP Payload Contents
Byte Offset Name Format Scaling Units Description
0 requestedPacketType U2 - - The requested packet
type
Refer to the sections below for Packet Definitions sent in response to the ‘GP’ command
This command resets the state estimation algorithm without reloading fields from EEPROM. All
current field values will remain in affect. The unit will respond with an algorithm reset response.
The unit will send this packet in response to an algorithm reset command.
This command allows the user to perform various calibration tasks with the DMUX80ZA Series.
See the calibration command table below for details. The unit will respond immediately with a
calibrate response containing the calibrationRequest received or an error response if the
command cannot be performed.
WC Payload Contents
Byte Offset Name Format Scaling Units Description
0 calibrationRequest U2 - - The requested calibration
task
Currently, magnetic alignment is the only function supported by the calibrate command. There
are two magnetic alignment procedures supported; (1) magnetic alignment with automatic yaw
tracking termination, and magnetic alignment without automatic termination.
________________________________________________________________________
calibrationRequest Description
Begin magnetic alignment without automatic termination. Rotate vehicle
through >360 degrees yaw and then send 0x000B calibration request to
0x0009 terminate.
Terminate magnetic alignment. The unit will send a CC response containing
the hard-iron and soft-iron values. To accept the parameters, store them
0x000B using the write magnetic calibration command.
Begin magnetic calibration with automatic termination. Rotate the unit
through X80 degrees in yaw. The unit will send a CC response containing
the hard-iron and soft-iron values upon completion of the turn. To accept the
0x000C parameters, store them using the write magnetic calibration command.
Write magnetic calibration. The unit will write the parameters to EEPROM
0x000E and then send a calibration response.
The unit will send this packet in response to a calibrate request if the procedure can be performed
or initiated.
WC Payload Contents
Byte Offset Name Format Scaling Units Description
0 calibrationRequest U2 - - The requested calibration
task
The unit will send this packet after a calibration has been completed. Currently, there is only one
message of this type sent after a magnetic calibration has been completed (with or without
automatic termination) and the parameters have been calculated. Thus, the calibrationRequest
field will be 0x000B or 0x000C.
CD Payload Contents
Byte Offset Name Format Scaling Units Description
0 calibrationRequest U2 - - The requested calibration
task
2 xHardIron I2 20/2^16 G The x hard iron bias
4 yHardIron I2 20/2^16 G The y hard iron bias
________________________________________________________________________
6 softIronScaleRatio U2 2/2^16 - The scaling ratio between
the x and y axis
8 softIronAngle I2 2*pi/2^16 Rad The soft iron phase angle
(360/2^16) Deg between x and y axis
The unit will send this packet in place of a normal response to a faiiledInputPacketType request
if it could not be completed successfully.
This packet contains the unit serialNumber and modelString. The model string is terminated with
0x00. The model string contains the programmed versionString (8-bit Ascii values) followed by
the firmware part number string delimited by a whitespace.
ID Payload Contents
Byte Offset Name Format Scaling Units Description
0 serialNumber U4 - - Unit serial number
4 modelString SN - - Unit Version String
4+N 0x00 U1 - - Zero Delimiter
This packet contains firmware version information. majorVersion changes may introduce serious
incompatibilities. minorVersion changes may add or modify functionality, but maintain backward
________________________________________________________________________
compatibility with previous minor versions. patch level changes reflect bug fixes and internal
modifications with little effect on the user. The build stage is one of the following: 0=release
candidate, 1=development, 2=alpha, 3=beta. The buildNumber is incremented with each
engineering firmware build. The buildNumber and stage for released firmware are both zero. The
final beta candidate is v.w.x.3.y, which is then changed to v.w.x.0.1 to create the first release
candidate. The last release candidate is v.w.x.0.z, which is then changed to v.w.x.0.0 for release.
VR Payload Contents
Byte Offset Name Format Scaling Units Description
0 majorVersion U1 - - Major firmware version
1 minorVersion U1 - - Minor firmware version
2 patch U1 - - Patch level
3 stage - - - Development Stage (0=release
candidate, 1=development,
2=alpha, 3=beta)
4 buildNumber U1 - - Build number
This packet contains detailed BIT and status information. The full BIT Status details are
described in Section 9 of this manual.
T0 Payload Contents
Byte Offset Name Format Scaling Units Description
0 BITstatus U2 - - Master BIT and Status Field
2 hardwareBIT U2 - - Hardware BIT Field
4 hardwarePowerBIT U2 - - Hardware Power BIT Field
6 hardwareEnvironmentalBIT U2 - - Hardware Environmental BIT
Field
8 comBIT U2 - - communication BIT Field
10 comSerialABIT U2 - - Communication Serial A BIT
Field
12 comSerialBBIT U2 - - Communication Serial B BIT
Field
14 softwareBIT U2 - - Software BIT Field
16 softwareAlgorithmBIT U2 - - Software Algorithm BIT Field
18 softwareDataBIT U2 - - Software Data BIT Field
20 hardwareStatus U2 - - Hardware Status Field
22 comStatus U2 - - Communication Status Field
24 softwareStatus U2 - - Software Status Field
26 sensorStatus U2 - - Sensor Status Field
________________________________________________________________________
Output Packets (Polled or Continuous)
This packet contains scaled sensor data. The scaled sensor data is fixed point, 2 bytes per sensor,
MSB first, for 13 sensors in the following order: accels(x,y,z); gyros(x,y,z); mags(x,y,z);
temps(x,y,z,board). Data involving angular measurements include the factor pi in the scaling and
can be interpreted in either radians or degrees.
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10) g
Magnetometers: scaled to a range of [-1,+1) Gauss
Temperature: scaled to a range of [-100, +100)°C
S0 Payload Contents
Byte Offset Name Format Scaling Units Description
0 xAccel I2 20/2^16 g X accelerometer
2 yAccel I2 20/2^16 g Y accelerometer
4 zAccel I2 20/2^16 g Z accelerometer
6 xRate I2 7*pi/2^16 rad/s X angular rate
[1260° /2^16] [° /sec]
8 yRate I2 7*pi/2^16 rad/s Y angular rate
[1260° /2^16] [° /sec]
10 zRate I2 7*pi/2^16 rad/s Z angular rate
[1260° /2^16] [° /sec]
12 xMag I2 20/2^16 Gauss X magnetometer
14 yMag I2 20/2^16 Gauss Y magnetometer
16 zMag I2 20/2^16 Gauss Z magnetometer
18 xRateTemp I2 200/2^16 deg. C X rate temperature
20 yRateTemp I2 200/2^16 deg. C Y rate temperature
22 zRateTemp I2 200/2^16 deg. C Z rate temperature
24 boardTemp I2 200/2^16 deg. C CPU board temperature
26 GPSITOW U2 truncated ms GPS ITOW (lower 2 bytes)
Not Implemented
28 BITstatus U2 - - Master BIT and Status
________________________________________________________________________
This packet contains scaled sensor data. Data involving angular measurements include the factor
pi in the scaling and can be interpreted in either radians or degrees.
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10)g
Temperature: scaled to a range of [-100, +100)°C
S1 Payload Contents
Byte Offset Name Format Scaling Units Description
0 xAccel I2 20/2^16 g X accelerometer
2 yAccel I2 20/2^16 g Y accelerometer
4 zAccel I2 20/2^16 g Z accelerometer
6 xRate I2 7*pi/2^16 rad/s X angular rate
[1260° /2^16] [° /sec]
8 yRate I2 7*pi/2^16 rad/s Y angular rate
[1260° /2^16] [° /sec]
10 zRate I2 7*pi/2^16 rad/s Z angular rate
[1260° /2^16] [° /sec]
12 xRateTemp I2 200/2^16 deg. C X rate temperature
14 yRateTemp I2 200/2^16 deg. C Y rate temperature
16 zRateTemp I2 200/2^16 deg. C Z rate temperature
18 boardTemp I2 200/2^16 deg. C CPU board
temperature
20 Counter U2 - packets Output packet counter
22 BITstatus U2 - - Master BIT and Status
This packet contains angle data and selected sensor data scaled in most cases to a signed 2^16 2’s
complement number. Data involving angular measurements include the factor pi in the scaling
and can be interpreted in either radians or degrees.
Angles: scaled to a range of [-pi,+pi) or [-180 deg to +180 deg).
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10) g
Magnetometers: scaled to a range of [-10,+10) Gauss
Temperature: scaled to a range of [-100, +100) °C
________________________________________________________________________
A1 Payload Contents
Byte Offset Name Format Scaling Units Description
0 rollAngle I2 2*pi/2^16 Radians Roll angle
[360° /2^16] [° ]
2 pitchAngle I2 2*pi/2^16 Radians Pitch angle
[360° /2^16] [° ]
4 yawAngleMag I2 2*pi/2^16 Radians Yaw angle (magnetic north)
[360° /2^16] [° ]
6 xRateCorrected I2 7*pi/2^16 rad/s X angular rate Corrected
[1260° /2^16] [° /sec]
8 yRateCorrected I2 7*pi/2^16 rad/s Y angular rate Corrected
[1260° /2^16] [° /sec]
10 zRateCorrected I2 7*pi/2^16 rad/s Z angular rate Corrected
[1260° /2^16] [° /sec]
12 xAccel I2 20/2^16 g X accelerometer
14 yAccel I2 20/2^16 g Y accelerometer
16 zAccel I2 20/2^16 g Z accelerometer
18 xMag I2 20/2^16 Gauss X magnetometer
20 yMag I2 20/2^16 Gauss Y magnetometer
22 zMag I2 20/2^16 Gauss Z magnetometer
24 xRateTemp I2 200/2^16 Deg C X rate temperature
26 timeITOW U4 1 ms DMU ITOW (sync to GPS)
Not Implemented
30 BITstatus U2 - - Master BIT and Status
This packet contains angle data and selected sensor data scaled in most cases to a signed 2^16 2’s
complement number. Data involving angular measurements include the factor pi in the scaling
and can be interpreted in either radians or degrees.
Angles: scaled to a range of [-pi,+pi) or [-180 deg to +180 deg).
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10) g
Temperature: scaled to a range of [-100, +100) °C
________________________________________________________________________
A2 Payload Contents
Byte Offset Name Format Scaling Units Description
0 rollAngle I2 2*pi/2^16 Radians Roll angle
[360° /2^16] [° ]
2 pitchAngle I2 2*pi/2^16 Radians Pitch angle
[360° /2^16] [° ]
4 yawAngleTrue I2 2*pi/2^16 Radians Yaw angle (free)
[360° /2^16] [° ]
6 xRateCorrected I2 7*pi/2^16 rad/s X angular rate corrected
[1260° /2^16] [° /sec]
8 yRateCorrected I2 7*pi/2^16 rad/s Y angular rate corrected
[1260° /2^16] [° /sec]
10 zRateCorrected I2 7*pi/2^16 rad/s Z angular rate corrected
[1260° /2^16] [° /sec]
12 xAccel I2 20/2^16 g X accelerometer
14 yAccel I2 20/2^16 g Y accelerometer
16 zAccel I2 20/2^16 g Z accelerometer
18 xRateTemp I2 200/2^16 deg. C X rate temperature
20 yRateTemp I2 200/2^16 deg. C Y rate temperature
22 zRateTemp I2 200/2^16 deg. C Z rate temperature
24 timeITOW U4 1 ms DMU ITOW (sync to GPS)
Not Implemented
28 BITstatus U2 - - Master BIT and Status
This packet contains navigation data and selected sensor data scaled in most cases to a signed
2^16 2’s complement number. Data involving angular measurements include the factor pi in the
scaling and can be interpreted in either radians or degrees.
Angles: scaled to a range of [-pi,+pi) or [-180 deg to +180 deg).
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10) g
Temperature: scaled to a range of [-100, +100) °C
Velocities are scaled to a range of [-256,256) m/s
Altitude is scaled to a range of [-100,16284) m using a shifted 2’s complement
representation.
Longitude and latitude are scaled to a range of [-pi,pi) or [-180 deg to +180 deg).
________________________________________________________________________
N0 Payload Contents
Byte Offset Name Format Scaling Units Description
0 rollAngle I2 2*pi/2^16 Radians Roll angle
[360° /2^16] [° ]
2 pitchAngle I2 2*pi/2^16 Radians Pitch angle
[360° /2^16] [° ]
4 yawAngleTrue I2 2*pi/2^16 Radians Yaw angle (true north)
[360° /2^16] [° ]
6 xRateCorrected I2 7*pi/2^16 rad/s X angular rate corrected
[1260° /2^16] [° /sec]
8 yRateCorrected I2 7*pi/2^16 rad/s Y angular rate corrected
[1260° /2^16] [° /sec]
10 zRateCorrected I2 7*pi/2^16 rad/s Z angular rate corrected
[1260° /2^16] [° /sec]
12 nVel I2 512/2^16 m/s North velocity
14 eVel I2 512/2^16 m/s East velocity
16 dVel I2 512/2^16 m/s Down velocity
18 longitude I4 2*pi/2^32 Radians Longitude
[360° /2^32] [° ]
22 latitude I4 2*pi/2^32 Radians Latitude
[360° /2^32] [° ]
26 altitude I2* 2^14/2^16 m GPS altitude [-100,16284)
28 ITOW U2 truncated ms ITOW (lower 2 bytes)
This packet contains navigation data and selected sensor data scaled in most cases to a signed
2^16 2’s complement number. Data involving angular measurements include the factor pi in the
scaling and can be interpreted in either radians or degrees.
Angles: scaled to a range of [-pi,+pi) or [-180 deg to +180 deg).
Angular rates: scaled to range of 3.5* [-pi,+pi) or [-630 deg/sec to +630 deg/sec)
Accelerometers: scaled to a range of [-10,+10) g
Temperature: scaled to a range of [-100, +100) °C
Velocities are scaled to a range of [-256,256) m/s
Altitude is scaled to a range of [-100,16284) m using a shifted 2’s complement
representation.
Longitude and latitude are scaled to a range of [-pi,pi) or [-180 deg to +180 deg).
________________________________________________________________________
N1 Payload Contents
Byte Offset Name Format Scaling Units Description
0 rollAngle I2 2*pi/2^16 Radians Roll angle
[360° /2^16] [° ]
2 pitchAngle I2 2*pi/2^16 Radians Pitch angle
[360° /2^16] [° ]
4 yawAngleTrue I2 2*pi/2^16 Radians Yaw angle (true north)
[360° /2^16] [° ]
6 xRateCorrected I2 7*pi/2^16 rad/s X angular rate corrected
[1260° /2^16] [° /sec]
8 yRateCorrected I2 7*pi/2^16 rad/s Y angular rate corrected
[1260° /2^16] [° /sec]
10 zRateCorrected I2 7*pi/2^16 rad/s Z angular rate corrected
[1260° /2^16] [° /sec]
12 xAccel I2 20/2^16 g X accelerometer
14 yAccel I2 20/2^16 g Y accelerometer
16 zAccel I2 20/2^16 g Z accelerometer
18 nVel I2 512/2^16 m/s North velocity
20 eVel I2 512/2^16 m/s East velocity
22 dVel I2 512/2^16 m/s Down velocity
24 longitude I4 2*pi/2^32 Radians Longitude
[360° /2^32] [° ]
28 latitude I4 2*pi/2^32 Radians Latitude
[360° /2^32] [° ]
32 altitude I2* 2^14/2^16 m Altitude [-100,16284)
34 xRateTemp I2 200/2^16 deg C X rate sensor temperature
36 ITOW U4 1 ms ITOW (sync to GPS)
________________________________________________________________________
8 DMUX80ZA Advanced UART Port Commands
The advanced commands allow users to programmatically change the DMUX80ZA Series
settings. This section of the manual documents all of the settings and options contained under the
Unit Configuration tab within NAV-VIEW. Using these advanced commands, a user’s system
can change or modify the settings without the need for NAV-VIEW.
Configuration Fields
Configuration fields determine various behaviors of the unit that can be modified by the user.
These include settings like baud rate, packet output rate and type, algorithm type, etc. These
fields are stored in EEPROM and loaded on power up. These fields can be read from the
EEPROM using the ‘RF’ command. These fields can be written to the EEPROM affecting the
default power up behavior using the ‘WF’ command. The current value of these fields (which
may be different from the value stored in the EEPROM) can also be accessed using the ‘GF’
command. All of these fields can also be modified immediately for the duration of the current
power cycle using the ‘SF’ command. The unit will always power up in the configuration stored
in the EEPROM. Configuration fields can only be set or written with valid data from Table 40
below.
Table 40 Configuration Fields
________________________________________________________________________
Soft Iron Phase Angle 0x000E Any I2 scaled from [-pi,pi]
Note: BAUD rate SF has immediate effect. Some output data may be lost. Response will be
received at new BAUD rate.
Orientation Field
This field defines the rotation from the factory to user axis sets. This rotation is relative to the
default factory orientation for the appropriate DMUX80 family model. The default factory axis
setting for the IMUX80ZA-200 orientation field is (-Uy, -Ux, -Uz) which defines the connector
pointing in the +Z direction and the +X direction going from the connector through the serial
number label at the end of the DMUX80. The user axis set (X, Y, Z) as defined by this field
setting is depicted in Figure 18 below:
+Z (-Uz)
Yaw
Roll
Pitch
+X (-Uy) +Y (-Ux)
________________________________________________________________________
Z Axis Sign 6 0 = positive, 1 = negative
Z Axis 7:8 0 = Uz, 1 = Ux, 2 = Uy, 3 = N/A
Reserved 9:15 N/A
There are 24 possible orientation configurations (See Table 43). Setting/Writing the field to
anything else generates a NAK and has no effect.
The default factory axis setting for all other DMUX80 family model’s orientation field is (+Ux,
+Uy, +Uz) which defines the base of the DMUX80 pointing in the +Z direction and the +Y
direction going from the serial number label at the end through the connector of the DMUX80.
The user axis set (X, Y, Z) as defined by this field setting is depicted in Figure 19 below:
________________________________________________________________________
+X (Ux)
+Y (Uy)
Roll
Pitch
Yaw
+Z (Uz)
Figure 19 IMU380ZA (-209, -409) VG/AHRS/INS380ZA (-200, -400) Default Orientation Field (0x0000)
________________________________________________________________________
User Behavior Switches
This field allows on the fly user interaction with behavioral aspects of the algorithm (See Table
44).
Table 44 DMUX80 Behavior Switches
The hard iron bias values are scaled from [-1,1] Gauss. These values are subtracted from the
tangent plane magnetometer vector before the heading reference is calculated for the filter. The
soft iron scale ratio is scaled from [0,2] and is multiplied by the tangent plane x magnetometer
value before the heading reference is calculated for the filter. The soft iron phase angle is scaled
from [-pi,pi] and is applied to the tangent plane x magnetometer value before the heading
reference is calculated for the filter. This compensates for elliptical soft iron errors that generate
an ellipse at an angle away from the major or minor axis following the full rotation of a
magnetometer alignment. Note that none of these parameters are applied to the output
magnetometer vector data in message A1. They are only applied internally to the data for use in
the heading reference for the Kalman filter.
________________________________________________________________________
Table 46 DMUX80 Heading Track Offset
________________________________________________________________________
Commands to Program Configuration
This command allows the user to write default power-up configuration fields to the EEPROM.
Writing the default configuration will not take affect until the unit is power cycled. NumFields is
the number of words to be written. The field0, field1, etc. are the field
IDs that will be written with the field0Data, field1Data, etc., respectively. The unit will not write
to calibration or algorithm fields. If at least one field is successfully written, the unit will respond
with a write fields response containing the field IDs of the successfully written fields. If any field
is unable to be written, the unit will respond with an error response. Note that both a write fields
and an error response may be received as a result of a write fields command. Attempts to write a
field with an invalid value is one way to generate an error response. A table of field IDs and valid
field values is available in Section 8.1.
WF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields to write
1 field0 U2 - - The first field ID to write
3 field0Data U2 - - The first field ID’s data to write
5 field1 U2 - - The second field ID to write
7 field1Data U2 - - The second field ID’s data
… … U2 - - …
numFields*4 -3 field… U2 - - The last field ID to write
numFields*4 -1 field…Data U2 - - The last field ID’s data to write
The unit will send this packet in response to a write fields command if the command has
completed without errors.
WF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields written
1 field0 U2 - - The first field ID written
3 field1 U2 - - The second field ID written
________________________________________________________________________
… … U2 - - More field IDs written
numFields*2 – 1 Field… U2 - - The last field ID written
This command allows the user to set the unit’s current configuration (SF) fields immediately
which will then be lost on power down. NumFields is the number of words to be set. The field0,
field1, etc. are the field IDs that will be written with the field0Data, field1Data, etc., respectively.
This command can be used to set configuration fields. The unit will not set calibration or
algorithm fields. If at least one field is successfully set, the unit will respond with a set fields
response containing the field IDs of the successfully set fields. If any field is unable to be set, the
unit will respond with an error response. Note that both a set fields and an error response may be
received as a result of one set fields command. Attempts to set a field with an invalid value is one
way to generate an error response. A table of field IDs and valid field values is available in
Section 8.1.
SF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields to set
1 field0 U2 - - The first field ID to set
3 field0Data U2 - - The first field ID’s data to set
5 field1 U2 - - The second field ID to set
7 field1Data U2 - - The second field ID’s data to set
… … U2 - - …
numFields*4 -3 field… U2 - - The last field ID to set
numFields*4 -1 field…Data U2 - - The last field ID’s data to set
The unit will send this packet in response to a set fields command if the command has completed
without errors.
SF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields set
1 field0 U2 - - The first field ID set
3 field1 U2 - - The second field ID set
… … U2 - - More field IDs set
________________________________________________________________________
numFields*2 - 1 Field… U2 - - The last field ID set
This command allows the user to read the default power-up configuration fields from the
EEPROM. NumFields is the number of fields to read. The field0, field1, etc. are the field IDs to
read. RF may be used to read configuration and calibration fields from the EEPROM. If at least
one field is successfully read, the unit will respond with a read fields response containing the field
IDs and data from the successfully read fields. If any field is unable to be read, the unit will
respond with an error response. Note that both a read fields and an error response may be
received as a result of a read fields command.
RF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields to read
1 field0 U2 - - The first field ID to read
3 field1 U2 - - The second field ID to read
… … U2 - - More field IDs to read
numFields*2 - 1 Field… U2 - - The last field ID to read
The unit will send this packet in response to a read fields request if the command has completed
without errors.
RF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields read
1 field0 U2 - - The first field ID read
3 field0Data U2 - - The first field ID’s data read
5 field1 U2 - - The second field ID read
7 field1Data U2 - - The second field ID’s data read
… … U2 - - …
numFields*4 -3 field… U2 - - The last field ID read
numFields*4 -1 field…Data U2 - - The last field ID’s data read
________________________________________________________________________
Get Fields Command
Get Fields (‘GF’ = 0x4746)
Preamble Packet Type Length Payload Termination
0x5555 0x4746 1+numFields*2 <GF Data> <CRC (U2)>
This command allows the user to get the unit’s current configuration fields. NumFields is the
number of fields to get. The field0, field1, etc. are the field IDs to get. GF may be used to get
configuration, calibration, and algorithm fields from RAM. Multiple algorithm fields will not
necessarily be from the same algorithm iteration. If at least one field is successfully collected, the
unit will respond with a get fields response with data containing the field IDs of the successfully
received fields. If any field is unable to be received, the unit will respond with an error response.
Note that both a get fields and an error response may be received as the result of a get fields
command.
GF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields to get
1 field0 U2 - - The first field ID to get
3 field1 U2 - - The second field ID to get
… … U2 - - More field IDs to get
numFields*2 – 1 Field… U2 - - The last field ID to get
The unit will send this packet in response to a get fields request if the command has completed
without errors.
GF Payload Contents
Byte Offset Name Format Scaling Units Description
0 numFields U1 - - The number of fields retrieved
1 field0 U2 - - The first field ID retrieved
3 field0Data U2 - - The first field ID’s data retrieved
5 field1 U2 - - The second field ID retrieved
7 field1Data U2 - - The second field ID’s data
… … U2 - - …
numFields*4 -3 field… U2 - - The last field ID retrieved
numFields*4 -1 field…Data U2 - - The last field ID’s data retrieved
________________________________________________________________________
9 DMUX80ZA Advanced UART Port BIT
Built In Test (BIT) and Status Fields
Internal health and status are monitored and communicated in both hardware and software. The
ultimate indication of a fatal problem is a hardware BIT signal on the user connector which is
mirrored in the software BIT field as the masterFail flag. This flag is thrown as a result of a
number of instantly fatal conditions (known as a “hard” failure) or a persistent serious problem
(known as a “soft” failure). Soft errors are those which must be triggered multiple times within a
specified time window to be considered fatal. Soft errors are managed using a digital high-pass
error counter with a trigger threshold.
The masterStatus flag is a configurable indication as determined by the user. This flag is asserted
as a result of any asserted alert signals which the user has enabled.
The hierarchy of BIT and Status fields and signals is depicted here:
BITstatus Field
masterFail
hardwareError
hardwareBIT Field
powerError
hardwarePowerBIT Field
inpPower
inpCurrent
inpVoltage
fiveVolt
threeVolt
twoVolt
twoFiveRef
sixVolt
grdRef
environmentalError
hardwareEnvironmentalBIT Field
pcbTemp
comError
comBIT Field
serialAError
comSerialABIT Field
transmitBufferOverflow
receiveBufferOverflow
________________________________________________________________________
framingError
breakDetect
parityError
serialBError
comSerialBBIT Field
transmitBufferOverflow
receiveBufferOverflow
framingError
breakDetect
parityError
softwareError
softwareBIT Field
algorithmError
softwareAlgorithmBIT Field
initialization
overRange
missedIntegrationStep
dataError
softwareDataBIT Field
calibrationCRCError
magAlignOutOfBounds
masterStatus
hardwareStatus
hardwareStatus Field
unlocked1PPS (enabled by default on INS)
unlockedInternalGPS (enabled by default on INS)
noDGPS
unlockedEEPROM
comStatus
comStatus Field
noExternalGPS (enabled by default on VG and AHRS)
softwareStatus
softwareStatus Field
algorithmInitialization (enabled by default)
________________________________________________________________________
highGain (enabled by default)
attitudeOnlyAlgorithm
turnSwitch
sensorStatus
sensorStatus Field
overRange (enabled by default)
________________________________________________________________________
hardwareBIT Field
The hardwareBIT field contains flags that indicate various types of internal hardware errors (See
Table 48). Each of these types has an associated message with low level error signals. The
hardwareError flag in the BITstatus field is the bit-wise OR of this hardwareBIT field.
hardwarePowerBIT Field
The hardwarePowerBIT field contains flags that indicate low level power system errors (See
Table 49). The powerError flag in the hardwareBIT field is the bit-wise OR of this
hardwarePowerBIT field.
hardwareEnvironmentalBIT Field
The hardwareEnvironmentalBIT field contains flags that indicate low level hardware
environmental errors (See Table 50). The environmentalError flag in the hardwareBIT field is the
bit-wise OR of this hardwareEnvironmentalBIT field.
________________________________________________________________________
comBIT Field
The comBIT field contains flags that indicate communication errors with external devices (See
Table 51). Each external device has an associated message with low level error signals. The
comError flag in the BITstatus field is the bit-wise OR of this comBIT field.
comSerialABIT Field
The comSerialABIT field (See Table 52) contains flags that indicate low level errors with
external serial port A (the user serial port). The serialAError flag in the comBIT field is the bit-
wise OR of this comSerialABIT field.
comSerialBBIT Field
The comSerialBBIT field (See Table 53) contains flags that indicate low level errors with
external serial port B (the aiding serial port). The serialBError flag in the comBIT field is the bit-
wise OR of this comSerialBBIT field.
________________________________________________________________________
softwareBIT Field
The softwareBIT field contains flags that indicate various types of software errors (See Table 54).
Each type has an associated message with low level error signals. The softwareError flag in the
BITstatus field is the bit-wise OR of this softwareBIT field.
softwareAlgorithmBIT Field
The softwareAlgorithmBIT field contains flags that indicate low level software algorithm errors
(See Table 55). The algorithmError flag in the softwareBIT field is the bit-wise OR of this
softwareAlgorithmBIT field.
softwareDataBIT Field
The softwareDataBIT field contains flags that indicate low level software data errors (See Table
56). The dataError flag in the softwareBIT field is the bit-wise OR of this softwareDataBIT field.
hardwareStatus Field
The hardwareStatus field contains flags that indicate various internal hardware conditions and
alerts that are not errors or problems (See Table 57). The hardwareStatus flag in the BITstatus
field is the bit-wise OR of the logical AND of the hardwareStatus field and the
hardwareStatusEnable field. The hardwareStatusEnable field is a bit mask that allows the user to
select items of interest that will logically flow up to the masterStatus flag.
________________________________________________________________________
comStatus Field
The comStatus field contains flags that indicate various external communication conditions and
alerts that are not errors or problems (See Table 58). The comStatus flag in the BITstatus field is
the bit-wise OR of the logical AND of the comStatus field and the comStatusEnable field. The
comStatusEnable field is a bit mask that allows the user to select items of interest that will
logically flow up to the masterStatus flag.
softwareStatus Field
The softwareStatus field contains flags that indicate various software conditions and alerts that
are not errors or problems (See Table 59). The softwareStatus flag in the BITstatus field is the bit-
wise OR of the logical AND of the softwareStatus field and the softwareStatusEnable field. The
softwareStatusEnable field is a bit mask that allows the user to select items of interest that will
logically flow up to the masterStatus flag.
sensorStatus Field
The sensorStatus field contains flags that indicate various internal sensor conditions and alerts
that are not errors or problems (See Table 60). The sensorStatus flag in the BITstatus field is the
bit-wise OR of the logical AND of the sensorStatus field and the sensorStatusEnable field. The
sensorStatusEnable field is a bit mask that allows the user to select items of interest that will
logically flow up to the masterStatus flag.
________________________________________________________________________
________________________________________________________________________
corresponding sensorStatus field signal, if asserted, will cause the sensorStatus and masterStatus
flags to be asserted in the BITstatus field.
________________________________________________________________________
10 Warranty and Support Information
Customer Service
As a ACEINNA customer you have access to product support services, which include:
Single-point return service
Web-based support service
Same day troubleshooting assistance
Worldwide ACEINNA representation
Onsite and factory training available
Preventative maintenance and repair programs
Installation assistance available
Contact Directory
United States: Email: [email protected]
Non-U.S.: Refer to website www.aceinna.com
Return Procedure
10.3.1 Authorization
Before returning any equipment, please contact ACEINNA to obtain a Returned Material
Authorization number (RMA).
Be ready to provide the following information when requesting a RMA:
Name
Address
Telephone, Fax, Email
Equipment Model Number
Equipment Serial Number
Installation Date
Failure Date
Fault Description
Will it connect to NAV-VIEW 3.X?
________________________________________________________________________
10.3.3 Sealing the Container
Seal the shipping container(s) with heavy tape or metal bands strong enough to handle the weight
of the equipment and the container.
10.3.4 Marking
Please write the words, “FRAGILE, DELICATE INSTRUMENT” in several places on the
outside of the shipping container(s). In all correspondence, please refer to the equipment by the
model number, the serial number, and the RMA number.
Warranty
The ACEINNA product warranty is one year from date of shipment.
________________________________________________________________________
Appendix A: Installation and Operation of NAV-VIEW
NAV-VIEW has been designed to allow users to control all aspects of the DMUX80ZA Series
operation including data recording, configuration and data transfer. For the first time, you will be
able to control the orientation of the unit, sampling rate, packet type, hard iron calibration and
filter settings through NAV-VIEW. For proper use with the DMUX80ZA family version 3.5.2 or
higher of NAV-VIEW is required.
Install NAV-VIEW
To install NAV-VIEW onto your computer:
1. Insert the CD “Inertial Systems Product Support” (Part No. 8160-0063) in the CD-ROM
drive.
2. Locate the “NAV-VIEW” folder. Double click on the “setup.exe” file.
3. Follow the setup wizard instructions. You will install NAV-VIEW and .NET 2.0
framework.
Connections
The DMUX80ZA Series Inertial Systems products are shipped with a cable to connect the
DMUX80ZA Series to a PC Serial port.
1. Connect the 9-pin micro-DB connector end of the digital signal cable to the port on the
DMUX80ZA Series product.
2. Connect the 9-pin sub-DB end of the cable marked to the serial port of your computer.
3. The additional black and red wires on the cable connect power to the DMUX80ZA Series
product. Match red to (+) power and black to (-) ground. The input voltage can range
from 9-32 VDC with a maximum current draw of 350 mA.
4. Allow at least 60 seconds after power up for the DMUX80ZA Series product to initialize.
The DMUX80ZA Series needs to be held motionless during this period.
WARNING
Do not reverse the power leads! Reversing the power leads to the DMUX80ZA Series can
damage the unit; although there is reverse power protection, ACEINNA is not responsible for
resulting damage to the unit should the reverse voltage protection electronics fail.
________________________________________________________________________
Setting up NAV-VIEW
With the DMUX80ZA Series product powered up and connected to your PC serial port, open the
NAV-VIEW software application.
1. NAV-VIEW should automatically detect the DMUX80ZA Series product and display the
serial number and firmware version if it is connected.
2. If NAV-VIEW does not connect, check that you have the correct COM port selected. You
will find this under the “Setup” menu. Select the appropriate COM port and allow the
unit to automatically match the baud rate by leaving the “Auto: match baud rate”
selection marked.
3. If the status indicator at the bottom is green and states, , you’re ready to go. If
the status indicator doesn’t say connected and is red, check the connections between the
DMUX80ZA Series product and the computer, check the power supply, and verify that
the COM port is not occupied by another device.
4. Under the “View” menu you have several choices of data presentation. Graph display is the
default setting and will provide a real time graph of all the DMUX80ZA Series data. The
remaining choices will be discussed in the following pages.
Data Recording
NAV-VIEW allows the user to log data to a text file (.txt) using the simple interface at the top of
the screen. Customers can now tailor the type of data, rate of logging and can even establish
predetermined recording lengths.
To begin logging data follow the steps below (See Figure 20):
1. Locate the icon at the top of the page or select “Log to File” from the “File” drop
down menu.
2. The following menu will appear.
________________________________________________________________________
4. Select the type of data you wish to record. “Engineering Data” records the converted
values provided from the system in engineering units, “Hex Data” provides the raw hex
values separated into columns displaying the value, and the “Raw Packets” will simply
record the raw hex strings as they are sent from the unit.
5. Users can also select a predetermined “Test Duration” from the menu. Using the arrows,
simply select the duration of your data recording.
6. Logging Rate can also be adjusted using the features on the right side of the menu.
7. Once you have completed the customization of your data recording, you will be returned
to the main screen where you can start the recording process using the button at the
top of the page or select “Start Logging” from the “File” menu. Stopping the data
recording can be accomplished using the button and the recording can also be paused
using the button.
Data Playback
In addition to data recording, NAV-VIEW allows the user to replay saved data that has been
stored in a log file.
1. To playback data, select “Playback Mode” from the “Data Source” drop down menu at
the top.
2. Selecting Playback mode will open a text prompt which will allow users to specify the
location of the file they wish to play back. All three file formats are supported
(Engineering, Hex, and Raw) for playback. In addition, each time recording is
stopped/started a new section is created. These sections can be individually played back
by using the drop down menu and associated VCR controls.
3. Once the file is selected, users can utilize the VCR style controls at the top of the page to
start, stop, and pause the playback of the data.
4. NAV-VIEW also provides users with the ability to alter the start time for data playback.
Using the slide bar at the top of the page users can adjust the starting
time.
________________________________________________________________________
________________________________________________________________________
Unit Configuration
The Unit Configuration window (See Figure 24) gives the user the ability to view and alter the
system settings. This window is accessed through the “Unit Configuration” menu item under the
configuration menu. Under the “General” tab, users have the ability to verify the current
configuration by selecting the “Get All Values” button. This button simply provides users with
the currently set configuration of the unit and displays the values in the left column of boxes.
There are three tabs within the “Unit Configuration” menu; General, Advanced and BIT
Configuration. The General tab displays some of the most commonly used settings. The
Advanced and BIT Configuration menus provide users with more detailed setting information
that they can tailor to meet their specific needs.
To alter a setting, simply select the check box on the left of the value that you wish to modify and
then select the value using the drop down menu on the right side. Once you have selected the
appropriate value, these settings can be set temporarily or permanently (a software reset or power
cycle is required for the changes to take affect) by selecting from the choices at the bottom of the
dialog box. Once the settings have been altered a “Success” box will appear at the bottom of the
page.
IMPORTANT
________________________________________________________________________
Caution must be taken to ensure that the settings selected are compatible with the system that is
being configured. In most cases a “FAIL” message will appear if incompatible selections are
made by the user, however it is the users responsibility to ensure proper configuration of the unit.
IMPORTANT
Unit orientation selections must conform to the right hand coordinate system as noted in Section
3.1 of this user manual. Selecting orientations that do not conform to this criteria are not allowed.
Advanced Configuration
Users who wish to access some of the more advanced features of NAV-VIEW and the
DMUX80ZA Series products can do so by selecting the “Advanced” tab at the top of the “Unit
Configuration” window.
WARNING
Users are strongly encouraged to read and thoroughly understand the consequences of altering the
settings in the “Advanced” tab before making changes to the unit configuration. These settings
are discussed in detail in Chapter 4 below.
________________________________________________________________________
Behavior switches are identified at the top of the page with marked boxes. A blue box will appear
if a switch has been enabled similar to Figure 25 below. The values can be set in the same manner
as noted in the previous section. To set a value, users select the appropriate “Modify” checkbox
on the left side of the menu and select or enable the appropriate value they wish to set. At the
bottom of the page, users have the option of temporarily or permanently setting values. When all
selections have been finalized, simply press the “Set Values” button to change the selected
settings.
Bit Configuration
The third and final tab of the unit configuration window is “Bit Configuration” (See Figure 26).
This tab allows the users to alter the logic of individual status flags that affect the masterStatus
flag in the master BITstatus field (available in most output packets). By enabling individual status
flags users can determine which flags are logically OR’ed to generate the masterStatus flag. This
gives the user the flexibility to listen to certain indications that affect their specific application.
The masterFail and all error flags are not configurable. These flags represent serious errors and
should never be ignored.
________________________________________________________________________
IMPORTANT
The following section only applies to DMUX80ZA Series products with magnetometers (AHRS
and INSX80ZA). If your particular model does not utilize magnetometers for heading or
performance you can disregard the following section.
________________________________________________________________________
The AHRS and INSX80ZA products can actually measure the constant magnetic field that is
associated with your system and correct for it. The AHRS and INSX80ZA products can also
make a correction for some soft iron effects. The process of measuring these non-ideal effects and
correcting for them is called the “Mag Alignment Procedure”. Performing a “Mag Alignment
Procedure” will help correct for magnetic fields that are fixed with respect to the DMUX80ZA
Series product. It cannot correct for time varying fields, or fields created by ferrous material that
moves with respect to the DMUX80ZA Series product.
The AHRS and INSX80ZA products account for the extra magnetic field by making a series of
measurements, and using these measurements to model the hard iron and soft iron environment in
your system using a two-dimensional algorithm. The AHRS and INSX80ZA products will
calculate the hard iron magnetic fields and soft iron corrections and store these as calibration
constants in the EEPROM.
The “Mag Alignment Procedure” should always be performed with the AHRS or INSX80ZA
product installed in the user system. If you perform the calibration process with the DMUX80ZA
Series product by itself, you will not be correcting for the magnetism in the user system. If you
then install the DMUX80ZA Series product in the system (i.e. a vehicle), and the vehicle is
magnetic, you will still see errors arising from the magnetism of the vehicle.
________________________________________________________________________
4. Rotate the AHRS or INSX80ZA product through X80 degrees of rotation or until you
receive a message to stop.
5. Once you have completed your rotation, you will be given data concerning the
calibration accuracy. The X and Y offset values indicate how far the magnetic field
has been offset due to hard iron affects from components surrounding the unit. In
addition, you will see a soft iron ratio indicating the effect of soft iron on the AHRS
of INSX80ZA product.
6. Save this data to the AHRS or INSX80ZA product by selecting the “Apply” button
(See Figure 28).
________________________________________________________________________
7. Upon completion of the “Mag Alignment Procedure”, the heading accuracy should
be verified with all third party systems active using a known reference such as a
compass rose, GPS track or a calibrated compass. Heading inaccuracies greater than
the values specified on the data sheet or fluctuating heading performance may be an
indication of magnetic field disturbances near the unit.
IMPORTANT
An acceptable calibration will provide X and Y Hard Iron Offset Values of < 2.5 and a Soft Iron
Ratio >0.95. If this procedure generates any values larger than stated above, the system will assert
the softwareErrordataErrormagAlignOutOfBounds error flag. See section 9 for details on
error flag handling. Note that the current release of the software does not have this functionality.
Future releases of software will restore this functionality. The magnetometer ranges is +/- 4
gauss, thus 2.5 gauss is the recommended maximum hardiron that should be tolerated for the
installation and still provide ample resolution and headroom to properly determine the earth’s
magnetic field (strength < 0.5 gauss). If the hard iron estimates are larger than 2.5 gauss, then a
different installation location should be investigated. The hard iron and softiron data, while used
internally to achieve a heading reference, do not get applied to the magnetometer data output in
message A1 (see Section 7.4.3 and Section 8.3).
________________________________________________________________________
________________________________________________________________________
Appendix B: NMEA Message Format
The GPS receiver outputs data in NMEA-0183 format at 9600 Baud, 8 bits, no parity bit, and 1
stop bit. The GGA and RMC message packet formats are explained in this section.
ASCII String
Name Description
Format Example
Message ID:
$GPGGA string $GPGGA
GGA protocol header
N/S Indicator:
N character N
N=north or S=south
Longitude:
Longitude dddmm.mmmm 00833.91590
Degrees + minutes
E/W indicator:
E character E
E=east or W=west
Satellites Used:
NoSV numeric 8
Range 0 to 12
________________________________________________________________________
0 No fix / Invalid
2 Differential GPS
________________________________________________________________________
Appendix C: Sample Packet-Parser Code
Overview
This appendix includes sample code written in ANSI C for parsing packets from data sent by the
DMUX80ZA Series Inertial Systems. This code can be used by a user application reading data
directly from the DMUX80ZA Series product, or perhaps from a log file.
The sample code contains the actual parser, but also several support functions for CRC
calculation and circular queue access.:
process_xbow_packet – for parsing out packets from a queue. Returns these fields in
structure XBOW_PACKET (see below). Checks for CRC errors
calcCRC – for calculating CRC on packets.
Initialize - initialize the queue
AddQueue - add item in front of queue
DeleteQueue - return an item from the queue
peekWord - for retrieving 2-bytes from the queue, without popping
peekByte – for retrieving a byte from the queue without popping
Pop - discard item(s) from queue
Size – returns number of items in queue
Empty – return 1 if queue is empty, 0 if not
Full - return 1 if full, 0 if not full
The parser will parse the queue looking for packets. Once a packet is found and the CRC checks
out, the packet’s fields are placed in the XBOW_PACKET structure. The parser will then return
to the caller. When no packets are found the parser will simply return to the caller with return
value 0.
The XBOW_PACKET stucture is defined as follows:
typedef struct xbow_packet
{
unsigned short packet_type;
char length;
unsigned short crc;
char data[256];
} XBOW_PACKET;
Typically, the parser would be called within a loop in a separate process, or in some time
triggered environment, reading the queue looking for packets. A separate process might add data
to this queue when it arrives. It is up to the user to ensure circular-queue integrity by using some
sort of mutual exclusion mechanism withing the queue access funtions.
________________________________________________________________________
Code listing
#include <stdio.h>
/* buffer size */
#define MAXQUEUE 500
/*
* circular queue
*/
typedef struct queue_tag
{
int count;
int front;
int rear;
char entry[MAXQUEUE];
} QUEUE_TYPE;
/*
* ACEINNA packet
*/
typedef struct xbow_packet
{
unsigned short packet_type;
char length;
unsigned short crc;
char data[256];
} XBOW_PACKET;
QUEUE_TYPE circ_buf;
/*******************************************************************************
* FUNCTION: process_xbow_packet looks for packets in a queue
* ARGUMENTS: queue_ptr: is pointer to queue to process
* result: will contain the parsed info when return value is 1
* RETURNS: 0 when failed.
* 1 when successful
*******************************************************************************/
int process_xbow_packet(QUEUE_TYPE *queue_ptr, XBOW_PACKET *result)
{
unsigned short myCRC = 0, packetCRC = 0, packet_type = 0, numToPop=0, counter=0;
char packet[100], tempchar, dataLength;
if(Empty(queue_ptr))
{
________________________________________________________________________
return 0; /* empty buffer */
}
/* find header */
for(numToPop=0; numToPop+1<Size(queue_ptr) ;numToPop+=1)
{
if(0x5555==peekWord(queue_ptr, numToPop)) break;
}
Pop(queue_ptr, numToPop);
if(Size(queue_ptr) <= 0)
{
/* header was not found */
return 0;
}
/* check CRC */
myCRC = calcCRC(queue_ptr, 2,dataLength+3);
packetCRC = peekWord(queue_ptr, dataLength+5);
if(myCRC != packetCRC)
{
/* bad CRC on packet – remove the bad packet from the queue and return */
Pop(queue_ptr, dataLength+7);
return 0;
________________________________________________________________________
}
Pop(queue_ptr, dataLength+7);
return 1;
}
/*******************************************************************************
* FUNCTION: calcCRC calculates a 2-byte CRC on serial data using
* CRC-CCITT 16-bit standard maintained by the ITU
* (International Telecommunications Union).
* ARGUMENTS: queue_ptr is pointer to queue holding area to be CRCed
* startIndex is offset into buffer where to begin CRC calculation
* num is offset into buffer where to stop CRC calculation
* RETURNS: 2-byte CRC
*******************************************************************************/
unsigned short calcCRC(QUEUE_TYPE *queue_ptr, unsigned int startIndex, unsigned int num)
{
unsigned int i=0, j=0;
unsigned short crc=0x1D0F; //non-augmented inital value equivalent to augmented
initial value 0xFFFF
for(j=0;j<8;j+=1) {
if(crc & 0x8000) crc = (crc << 1) ^ 0x1021;
else crc = crc << 1;
}
}
return crc;
}
/*******************************************************************************
________________________________________________________________________
* FUNCTION: Initialize - initialize the queue
* ARGUMENTS: queue_ptr is pointer to the queue
*******************************************************************************/
void Initialize(QUEUE_TYPE *queue_ptr)
{
queue_ptr->count = 0;
queue_ptr->front = 0;
queue_ptr->rear = -1;
}
/*******************************************************************************
* FUNCTION: AddQueue - add item in front of queue
* ARGUMENTS: item holds item to be added to queue
* queue_ptr is pointer to the queue
* RETURNS: returns 0 if queue is full. 1 if successful
*******************************************************************************/
int AddQueue(char item, QUEUE_TYPE *queue_ptr)
{
int retval = 0;
if(queue_ptr->count >= MAXQUEUE)
{
retval = 0; /* queue is full */
}
else
{
queue_ptr->count++;
queue_ptr->rear = (queue_ptr->rear + 1) % MAXQUEUE;
queue_ptr->entry[queue_ptr->rear] = item;
retval = 1;
}
return retval;
}
/*******************************************************************************
* FUNCTION: DeleteQeue - return an item from the queue
* ARGUMENTS: item will hold item popped from queue
* queue_ptr is pointer to the queue
* RETURNS: returns 0 if queue is empty. 1 if successful
*******************************************************************************/
int DeleteQueue(char *item, QUEUE_TYPE *queue_ptr)
{
int retval = 0;
________________________________________________________________________
if(queue_ptr->count <= 0)
{
retval = 0; /* queue is empty */
}
else
{
queue_ptr -> count--;
*item = queue_ptr->entry[queue_ptr->front];
queue_ptr->front = (queue_ptr->front+1) % MAXQUEUE;
retval=1;
}
return retval;
}
/*******************************************************************************
* FUNCTION: peekByte returns 1 byte from buffer without popping
* ARGUMENTS: queue_ptr is pointer to the queue to return byte from
* index is offset into buffer to which byte to return
* RETURNS: 1 byte
* REMARKS: does not do boundary checking. please do this first
*******************************************************************************/
char peekByte(QUEUE_TYPE *queue_ptr, unsigned int index) {
char byte;
int firstIndex;
byte = queue_ptr->entry[firstIndex];
return byte;
}
/*******************************************************************************
* FUNCTION: peekWord returns 2-byte word from buffer without popping
* ARGUMENTS: queue_ptr is pointer to the queue to return word from
* index is offset into buffer to which word to return
* RETURNS: 2-byte word
* REMARKS: does not do boundary checking. please do this first
*******************************************************************************/
unsigned short peekWord(QUEUE_TYPE *queue_ptr, unsigned int index) {
unsigned short word, firstIndex, secondIndex;
________________________________________________________________________
firstIndex = (queue_ptr->front + index) % MAXQUEUE;
secondIndex = (queue_ptr->front + index + 1) % MAXQUEUE;
/*******************************************************************************
* FUNCTION: Pop - discard item(s) from queue
* ARGUMENTS: queue_ptr is pointer to the queue
* numToPop is number of items to discard
* RETURNS: return the number of items discarded
*******************************************************************************/
int Pop(QUEUE_TYPE *queue_ptr, int numToPop)
{
int i=0;
char tempchar;
for(i=0; i<numToPop; i++)
{
if(!DeleteQueue(&tempchar, queue_ptr))
{
break;
}
}
return i;
}
/*******************************************************************************
* FUNCTION: Size
* ARGUMENTS: queue_ptr is pointer to the queue
* RETURNS: return the number of items in the queue
*******************************************************************************/
int Size(QUEUE_TYPE *queue_ptr)
{
return queue_ptr->count;
}
/*******************************************************************************
* FUNCTION: Empty
* ARGUMENTS: queue_ptr is pointer to the queue
* RETURNS: return 1 if empty, 0 if not
________________________________________________________________________
*******************************************************************************/
int Empty(QUEUE_TYPE *queue_ptr)
{
return queue_ptr->count <= 0;
}
/*******************************************************************************
* FUNCTION: Full
* ARGUMENTS: queue_ptr is pointer to the queue
* RETURNS: return 1 if full, 0 if not full
*******************************************************************************/
int Full(QUEUE_TYPE *queue_ptr)
{
return queue_ptr->count >= MAXQUEUE;
}
________________________________________________________________________
Appendix D: Sample Packet Decoding
________________________________________________________________________
________________________________________________________________________
FFDF
________________________________________________________________________
Website: www.aceinna.com
Email: [email protected]