Honeywell hmr3000 TruePoint User manual

Honeywell Magnetic Sensor Products
HMR3500 TruePoint Digital
Compass User’s Guide
The enclosed technical data is export classified as 7A994. Diversion contrary to U.S. export laws and regulations is prohibited.

HMR3500 User’s Guide
2 www.honeywell.com
1.0 INTRODUCTION
The HMR3500 TruePoint compass module is a 3-axis digital compass solution with a customizable coordinate system for
mounting in any desired orientation. Three AMR sensors and three MEMS accelerometers are combined to provide
compass heading as well as pitch and roll angles.
The HMR3500 has provisions for hard and soft-iron correction algorithms to handle magnetic distortion effects. In addition
a World Magnetic Model feature is provided to add declination angle corrections for reference to true north (geographic
north) automatically.
2.0 GETTING TO KNOW THE HMR3500 PRODUCT
2.1 IDENTIFYING THE HMR3500
The HMR3500 Compass module comes with two different options:
(1) PCB Compass Module with the RS-232 electrical interface
(2) Demonstration Kit (housed module, software and RS-232 cabling)
It is strongly suggested that your first HMR3500 purchase be the demonstration kit, to get you quickly into successfully
using the compass with a personal computer and the Compass Host demonstration software. From the kit, you will have a
known good operating condition when creating your customized interface firmware.
2.2 SETTING UP THE HMR3500
The RS-232 Interface and power supply cable for the HMR3500 digital compass module should be included in the
demonstration kit.
Electrical connections are made via a 5-pin header. Mechanical mounting uses a four-point attachment with #2-56
screws. Additionally, the cable assembly can be ordered separately.
The HMR3500 requires an external DC power supply for the red (positive) and black (ground) wires of the cable
assembly. By feeding 5 volts DC at about 60 milli-amperes into the HMR3500, the compass will begin to operate.
2.3 HMR3500 SPECIFICATIONS
Characteristics Conditions Min Typ Max Units
Heading
Accuracy (Clean Magnetic Environment)
Level
Pitch 0° to ±30°
Roll 0° to ±30°
-
0.5
0.5
0.75
1.0
1.5
1.5
(1 σ)
Resolution 0.1 deg
Repeatability 3 sweeps, 0º to 360º, level 0.2 deg rms
Pitch and Roll
Roll Range Default orientation, rotation about X-axis ±180° deg
Pitch Range Default orientation, rotation about Y-axis ±80° deg
Accuracy Roll ±30º, Pitch ±30º 0.5 1.0 deg rms
Null Accuracy1Level ±0.5 deg
Resolution Level, 1-sigma, 100 readings 0.04 deg

HMR3500 User’s Guide
www.honeywell.com 3
Characteristics Conditions Min Typ Max Units
Roll Repeatability Roll ±70º
Pitch ±70º
0.2
0.2
deg rms
Pitch Repeatability Roll ±70º
Pitch ±70º
0.1
0.1
deg rms
Magnetic Field
Range Maximum Magnetic Flux Density 0.7 gauss
Resolution 1-sigma, 100 readings 0.45 milli-gauss
Dip Angle Earth’s Vertical Field Component -70 +70 deg
Linearity 0.2 %FS
Electrical
Input Voltage Standard Product 2.5 5.0 5.2 volts DC
Power Input Voltage 2.5 to 5.2V 300 mW
Digital Interface
UART ASCII 4800 9600 38,400 Baud
Update Rate Continuous Heading Updates 0.05 10 25 Hz
Format Bi-directional binary packet data protocol. RS-232 -
Physical
Dimensions Circuit Board Assembly 1.97 x 1.65
x 0.52
inches
Weight HMR3500 PCB only
HMR3500 with case, no cable
0.6
3.0
ounce
ounces
Connector 5-pin, 2mm pin spacing -
Environment
Temperature Operating
Storage (OEM only)
-40
-55
-
-
+85
+125
°C
°C
1Null zeroing prior to use of the HMR3500 and upon exposure to temperature excursions beyond the Operating
Temperature limits is required to achieve highest performance.
2.4 PIN CONFIGURATION
Pin Number Pin Number Description
1 Ground Power Supply Return and Ground Reference
2 RXD RS-232 Receive Data
3 TXD RS-232 Transmit Data
4 +Vin Positive Power Supply Voltage Input
5 Ground Ground Reference (for twisted pair routing with +Vin)
2.5 BASIC DEVICE OPERATION
The HMR3500 TruePoint Compass Module includes 3-axis Anisotropic Magneto-Resistive (AMR) sensors, 3-axis MEMS
accelerometers, a temperature sensor, and 16-bit microprocessor with onboard Analog to Digital Converter (ADC). The
HMR3500 is available as a printed circuit board assembly, or assembled in a black aluminum case with cable assembly.
Additionally, the cable assembly can be ordered separately. A demonstration kit of the HMR3500 is available with the
case, cable assembly, a CD of the CompassHost windows utility software for the user’s personal computer.

HMR3500 User’s Guide
4 www.honeywell.com
The HMR3500 requires an external DC power supply for the red (positive) and black (ground) wires of the cable
assembly. By feeding 5 volts at about 50 milli-amperes into the HMR3500, the compass will operate, and a red LED on
the printed circuit board assembly will begin blinking at a 1Hz rate. Lack of a blinking LED or at a rapid rate is an
indication of an error, and action should taken to cycle power on the compass electronics to reset the module.
As a factory default, the RS-232 interface is set at 9600 baud with one start bit, 8 data bits, one stop bit, and no parity bits.
The HMR3500 does not require any hardware or software handshaking or related features. The baud rate can be
changed by command after initial communication at the current baud rate.
The CompassHost utility software is a 32-bit Windows® application program that is provided with the HMR3500 kit, and
can be used to evaluate the HMR3500’s performance and demonstrate the compass features. With exception of the baud
rate change command, the CompassHost is capable of sending and receiving all of the commands of the
compass/computer interface. Host computers should be capable of running Windows 9x, ME, NT, 2000, XP and follow-on
operating systems. An install program loads the executable file CompassHost.exe and ActiveX components. A readme.txt
file is also included to describe the installation process.
2.6 PHYSICAL CHARACTERISTICS
The circuit board for the HMR3500 is 1.57 by 1.97 by 0.52 inches and composed of multi-layer, fiberglass-epoxy printed
boards, with the main board horizontal and a vertical board for mounting the z-axis magnetic sensor and accelerometer.
The vertical board is held orthogonal to the main board by two brass hardware blocks to ensure mechanical orthogonality.
Figure 1
Top View and Dimensions
2.6.1 Mounting Considerations
The following is the recommend printed circuit board (PCB) footprint for the HMR3500. The reference direction (forward)
is the right PCB assembly edge shown in Figure 1. Left to right, the interface connector is numbered pin 1 to pin 5 per the
pin configuration table.
UNC 4-40 fastening hardware is recommended for mounting the printed circuit board with at least 0.125 inch nylon
spacers to stand off the board from the mounting surface. Fastener hardware must be non-ferrous for full compass
performance with brass or nylon screws the usual materials of choice.
1.57
1.97
1.00
0.150
1.65
0.150 0.170
φ0.116
4 PLCS
Forward
Direction
X
Y
Pin 1
1.57
1.97
1.00
0.150
1.65
0.150 0.170
φ0.116
4 PLCS
Forward
Direction
X
Y
Pin 1

HMR3500 User’s Guide
www.honeywell.com 5
2.6.2 Case Dimensions (in inches)
Figure 2
Case Dimensions
2.7 CIRCUIT DESCRIPTION
The HMR3500 circuit design starts with a microprocessor powered by power supply sub-circuit that takes the input
voltage and creates regulated power for the various other circuits in the HMR3500. Two 2-axis MEMS accelerometers are
mounted horizontally and vertically to combine into a 3-axis tilt sensing sub-circuit. Each accelerometer outputs a Pulse-
Width-Modulated (PWM) digital signal that the microprocessor measures for pitch and roll angles.
Besides an integral temperature
sensor, a 2-axis and 1-axis
magnetic sensor devices are
mounted horizontally and vertically
to create a 3-axis measurement of
the incident magnetic field upon
the sensors. Each sensor output is
amplified and sent to a multiplexed
input ADC residing inside the
microprocessor. After digitizing,
the magnetic signals are corrected
for hard and soft-iron magnetic
errors created by the environment
to which the compass is attached.
Heading computation uses the
magnetic and tilt information inputs
after compensation for errors.
From the basic magnetic heading,
a declination value may be added
to arrive at a geographic north
referenced heading. An index
offset value may also be added to
correct for mechanical installation
misalignment on the target
platform.
Temp
Sensor
X
Y
Z
Magnetic
Sensors
Accels
X
Y
Z
Power
Supply
16 – Bit
Microcontroller
T
R
RS-232
I/O
Temp
Sensor
X
Y
Z
Magnetic
Sensors
Accels
X
Y
Z
Power
Supply
16 – Bit
Microcontroller
T
R
RS-232
I/O
Figure 3
HMR3500 Block Diagram

HMR3500 User’s Guide
6 www.honeywell.com
3.0 UART COMMUNICATION INTERFACE
The 5-pin power supply and UART interface connector on the HMR3500, mates with a Harwin latching connector (Part #
M80-8980505) per the pin configuration table earlier in this document. The interface hardware protocol is RS-232 without
any further handshaking or hardware control lines.
3.1 PACKET FORMAT
The Serial Data Interface operates both ways with messages structured as packets. Each packet starts with a header
followed by zero or more bytes of data, and ends with a checksum trailer.
Message Packet
Header Data Trailer
Number of bytes: 5 Variable 1
Header Field
Start of Packet Packet ID Count Byte
Number of bytes: 3 1 1
The first three bytes of the header field are fixed and are, in sequence, 0x0D, 0x0A, and 0x7E. These are ASCII codes for
carriage return, line feed, and the tilde (~) and are intended to permit using a terminal emulator for diagnostic purposes.
Using three fixed bytes also improves re-synchronizing if a transmission error upsets the determination of packet
boundaries.
The fourth byte is a packet type identification, different for each message type, as defined later. With one exception
(RSET), there is a corresponding message from the module for each message from the host, either to acknowledge a
command or provide the requested data. Although different mnemonics are assigned, the actual codes for these
corresponding types are the same. Almost all packet identification codes are printable ASCII, but are not themselves
mnemonic.
The count byte contains, as a binary number, the number of bytes in the data section of the message.
Data Field
The size of the data field depends upon the message. Many messages have zero bytes of data. At this time, the longest
data field is sent from the module with the DPOWER message, whose data is actually a readable ASCII string. Up to 80
bytes are currently allocated for it.
Trailer Field
The trailer field consists of one check byte, which is the sum of all other bytes in the message, that is, all five header bytes
and the data bytes, modulo 256.
3.2 NUMERIC DATA FORMAT
Each packet type description below includes a detailed description of the function and the data passed in the message.
Numeric data can be represented using specific data types described in Table 1 below.

HMR3500 User’s Guide
www.honeywell.com 7
Table 1: Numeric Data Formats
Data Type Mnemonic Size
(bytes) Description
Character Char/uchar 1 May be signed or unsigned, or defined as bit flags.
Integer Int/uint 2 May be signed or unsigned. Unsigned may be defined as bit flags.
Angle Kang 2 Used for azimuth and related angles. May be considered signed or
unsigned. If unsigned, value is 65536/360 times degrees and is in
the range of 0° to 360°. If considered as signed, the same binary
values correspond to ±180°.
Long Integer Long/ulong 4 May be signed or unsigned.
Floating
Point
Float 4 Format corresponds to IEEE 754 for single-precision. Used for
latitude and longitude.
All multibyte numbers are transmitted “little-endian,” that is, less or least significant byte first. This is common to Intel and
some other architectures. Host computers which require “big endian” will need to rearrange bytes in software.
3.3 PROTOCOL
With one exception, the compass acknowledges every message, either with requested data, results of an operation, or a
simple echo of the command. The reply messages from the compass are prefixed with a letter “D” to each corresponding
host message name. The only exception to this is the RSET command which performs a complete processor reset
immediately. However, upon startup, the module outputs a DPOWER message, and this can be considered as an
acknowledgement of a RSET.
If there is any error in the form of a packet received by the module, or if the packet ID code is not supported, the module
will ignore the message altogether. It is up to the host to re-request data for which it does not receive a response because
of an error.
The compass may send some unsolicited messages to the host. Examples are DORIENT and DMCAL. There is no
provision to resend any of these packets which may be lost.
3.4 MESSAGE DESCRIPTIONS
Most host-compass communication is a dialog—the host sends a command and the module replies. For this reason, most
of the message descriptions below describe the host command and the module response together. The reply message
names are listed with each corresponding host messages in the detail message description section.
Remember that some messages and/or replies have no data; the message type ID carries all necessary information. The
length field in the headers of these messages will contain a zero, and there will be no data bytes.
Most packet (message type) ID’s lie in the range 0x40 through 0x7d. These are all printable ASCII, and will not be
confused with the first three characters in the header. Packets from the host are usually commands or requests; those
from the compass are responses to those requests. The ID code of the response is the same as the request. However,
since the data portion of the packet is usually different, the message ID’s are named differently. The compass replies
have the letter ‘D’ prefixed to the name of the corresponding host message.
Packet ID’s that are not assigned in this document should not be used. There are a few message types reserved for
production and calibration, or for development, which are not described here. Although the module is designed to be safe
from harm from inadvertent sending of these messages, nothing helpful can come from using them.
Since the compass is closely related to Honeywell’s DRM products, many messages are common to both the compass
and Dead Reckoning Modules. A major exception is the ID codes for the VRSN/DVRSN messages which have been
changed for the compass to prevent confusion among support programs.

HMR3500 User’s Guide
8 www.honeywell.com
Table 2: Message List
Start/Stop Messages
Msg ID
Code Description
RSET 0x42 Software reset of the compass. This causes the DPOWER wake-up message to be sent.
VRSN 0xC3 Request firmware version, serial number, build options, and configured orientation.
POWER 0x44 Request the wake-up message.
BAUD 0x47 Switch to a new baud rate.
Diagnostic Messages
Msg ID
Code Description
TEST 0x48 Performs self-test.
STAT 0x49 Supplies temperature and heading.
Initialization Messages
Msg ID
Code Description
INICAL 0x50 Initialize mounting offset.
IMVAR 0x54 Initialize magnetic variation (declination).
WMM 0x55 Control calculation of declination from World Magnetic Model
ORIENT 0x70 Sets DORIENT output rate.
Compensation Message
Msg ID
Code Description
MCAL 0x72 Perform compass magnetic compensation.
Other Messages
Msg ID
Code Description
SDFLT 0x66 Set start-up defaults.
Software Reset
Name: RSET/none
ID: 0x42
Request Data: None
Reply Data: Not applicable
Software reset causes a restart from the beginning of the compass firmware. It is intended primarily for development
purposes. As soon as the compass determines that it has received the RSET command, it initiates a reset of the
microcontroller. There can be no direct acknowledgment to this command, since all resources are re-initialized. Instead,
the host should recognize the receipt of the DPOWER message, which is sent as a normal part of the power-up
sequence, as an indication that the compass has reset. Because of the full reset, all power-up defaults will be restored.

HMR3500 User’s Guide
www.honeywell.com 9
Power On
Name: POWER/DPOWER
ID: 0x44
Request Data: None
Reply Data: DPOWER Wakeup Message
The compass sends the DPOWER message upon power-up, hardware or software reset, and whenever it receives a
POWER request message from the host. The reply data is a readable string of ASCII characters, terminated with a null. In
addition to establishing copyright rights, this message also serves as a diagnostic aid since it is easily seen on a terminal
emulator. An incorrect baud rate, parity, etc., will generate garbage characters; these should be readily recognizable.
A sample wakeup message might be:
0x0d, 0x0a, “~Copyright © 2000-2002 Point Research Corp. COMPASS Vrsn. 1.00CD”
The message ends with the firmware version, both major and minor, and suffixes which indicate build options which were
in effect, information which could be helpful to Honeywell for diagnosing problems.
However, do not try to process this string with software. All information in it, and then some, is also available in the
DVRSN message described on page 13.
Set Baud Rate
Name: BAUD/DBAUD
ID: 0x47
Request Data: 1 byte:
Data Type
Byte
Offset Description
Rate Code Uchar 0 Requested baud rate. Codes are:
0 =
4,800 baud
1 =
9,600 baud
2 = 19,200 baud
3 = 38,400 baud
Reply Data: 1 byte:
Data Type
Byte
Offset Description
Rate Code Uchar 0 New baud rate. Codes are same as above.
A few milliseconds after sending the DBAUD acknowledgment, the compass will switch the baud rate for both sending
and receiving to the new rate. Any messages being received by the module during this switch will be lost. When the host
requests a baud rate change, it should send no other messages for at least 25 milliseconds after the acknowledgment has
been received.
Baud rate changing has no effect on other compass operations. Dead reckoning, etc., continue uninterrupted.
If a value other than 0 through 3 is supplied, the DBAUD reply is the code for the current rate, and there is no change.
A baud rate set with the BAUD command has no effect after a reset or power-up, both of which restore the default baud
rate for which the module is configured at the factory. This will be 9600 baud unless other arrangements have been made.

HMR3500 User’s Guide
10 www.honeywell.com
Self-Test
Name: TEST/DTEST
ID: 0x48
Request Data: None
Reply Data: 2 bytes:
Data Type
Byte
Offset Description
Results Uint 0-1 Bit flags; 0 = pass, 1 = fail:
0 (0x0001) = ROM checksum
1 (0x0002) = RAM write/read
2 (0x0004) = temperature
3 (0x0008) = X accelerometer
4 (0x0010) = Y accelerometer
5 (0x0020) = Z accelerometer
6 (0x0040) = X magnetometer
7 (0x0080) = Y magnetometer
8 (0x0100) = Z magnetometer
Unassigned bits are set to zero, so an overall value of zero indicates that all tests were passed.
Self-testing is done automatically about 150 milliseconds after power-up or a reset, and the DTEST message will be sent
shortly after the DPOWER message. Subsequently, it is done in response to a TEST command. For the most part, self
testing does not interfere with normal operation. However it will cause brief delays (up to 200 milliseconds) in some
functions, so the test should not be commanded when navigation output is critical.
Status
Name: STAT/DSTAT
ID: 0x49
Request Data: None
Reply Data: 6 bytes:
Data Type Byte Offset Description
Temperature Int 0-1 Module temperature in deci-degrees Celsius (degrees times 10).
Heading Kang 2-3 Current bearing, corrected for magnetic declination and body offset
Reserved Int 4-5 Unused.
Initialize Calibrations
Name: INICAL/DINICAL
ID: 0x50
Request Data: 7 bytes:
Data Type Byte Offset Description
Request Uchar 0 Bit flags; 1 = load corresponding value:
0 (0x01) = Azimuth offset.
1 (0x02) = Roll offset.
2 (0x04) = Pitch offset.
Azimuth offset Kang 1-2 Azimuth (mounting) offset.
Roll offset Kang 3-4 Roll offset.
Pitch offset Kang 5-6 Pitch offset.

HMR3500 User’s Guide
www.honeywell.com 11
INICAL can query or set mounting offset. Mounting offset (along with magnetic declination) are critical compass
calibrations, and they should always be loaded whenever the module is started. As an alternative, the start-up default for
mounting offset can be set. (See “Set Power-Up Defaults.”)
Azimuth offset is added to uncorrected compass bearing, as is magnetic declination. So both have the same sign sense.
Specifically, if the way the module is mounted causes north to appear east of true north, mounting offset should be
positive.
Set Power-Up Defaults
Name: SDFLT/DSDFLT
ID: 0x66
Request Data: 12 bytes:
Data Type
Byte
Offset Description
Req uint 0-1 Bit flags; 1 = change corresponding value:
0 (0x01) = magnetic declination
1 (0x02) = azimuth offset
2 (0x04) = pitch offset
3 (0x08) = roll offset
4 (0x10) = DORIENT interval
MagDecl Kang 2-3 Magnetic Declination
Azimuth Offset Kang 4-5 Azimuth (mounting) offset.
Pitch Offset Kang 6-7 Pitch offset.
Roll Offset Kang 8-9 Roll offset.
DORIENT Int int 10-11 Milliseconds between DORIENT messages
Reply Data: 12 bytes:
Data Type
Byte
Offset Description
Result uint 0-1 Bit flags; 1 = corresponding value changed.
Codes are same as above. (A request to change may not be
honored if an illegal value is supplied. In this case, the
corresponding bit will be zero.)
MagDecl Kang 2-3 Current setting.
Azimuth Offset Kang 4-5 Current setting
Pitch Offset Kang 6-7 Current setting
Roll Offset Kang 8-9 Current setting
DORIENT Int uchar 10-11 Current setting
Default values for several functions or values are stored in the compass’s flash memory for executable code. These
values are those which are in effect immediately after power-up or reset. The SDFLT command permits changing these
start-up values by rewriting a portion of the processor’s flash memory.
Do not confuse the quantities in these messages with the corresponding working variables. What are affected here are
start-up defaults, and these may be, and probably are, different from the actual current values in effect.

HMR3500 User’s Guide
12 www.honeywell.com
Every one of the corresponding working variables can be changed by commands issued from the host computer, and this
is how they should be set as much as possible. The flash memory in which the default values are written is not intended
for frequent writing, and is not intended to support a large number of writes. Use SDFLT sparingly!
The SDFLT command can also be used merely to read out start-up default values without actually writing to the flash
memory. A quantity whose bit in the REQ field is zero will not be changed. The current value, however, will be returned in
DSDFLT.
Initialize Magnetic Declination
Name: IMVAR/DIMVAR
ID: 0x54
Request Data: 3 bytes:
Data Type
Byte
Offset Description
Request char 0 0 = Return current variation
(ignore next field)
non-zero = Set current variation
Magnetic
variation/
declination
Kang 1-2 Magnetic variation (declination).
Reply Data: 3 bytes:
Data Type
Byte
Offset Description
Request char 0 Copy of field from IMVAR.
Magnetic
variation/
declination
Kang 1-2 Current variation (declination).
This command returns or sets the difference between true north and magnetic north for the user’s current location.
“Variation” is normal nautical terminology; “declination” is often used on land to mean the same thing. The value varies
with latitude, longitude, altitude, and slowly with time (years). Magnetic declination (variation) may be obtained from a
mathematical magnetic model of the earth, or from other sources such as margin information on maps.
Magnetic declination, like mounting offset, is added to the magnetic compass heading to report true azimuth.
Consequently, if magnetic north is east of true north, declination is a positive quantity. This is consistent with traditional
usage.
Correct magnetic declination is important to accurate magnetic compass headings, and the local declination should
always be loaded at start-up. As an alternative, the start-up default for declination can be set. (See Set Power-Up
Defaults, on Page 11.)
World Magnetic Model – WMM
The compass unit is supplied with a built-in World Magnetic Model (WMM) and the ability to calculate magnetic declination
from it. The WMM consists of 168 spherical-harmonic Gauss coefficients relating the earth’s magnetic field to latitude and
longitude, and an additional 168 coefficients to estimate time variations. The model is approved by both the United States
and United Kingdom Departments of Defense and is intended for use only during a five-year “epoch.” In the absence of
local magnetic anomalies, the WMM declination is estimated to be accurate to within ±½°.
The local WMM magnetic declination is a function of latitude, longitude, altitude, and date. These input values are
specified in the WMM message. When the compass receives a WMM message, it will compute the local WMM magnetic

HMR3500 User’s Guide
www.honeywell.com 13
declination and issue a DWMM message reporting the computed declination. The declination value is saved to the
compass’ non-volatile memory and is used by the compass as the current declination value when computing azimuth.
The current magnetic declination is displayed in the Initialization dialog box (see Figure 7). To perform the calculation,
issue a WMM message. Because the calculations are extensive, the compass performs them in background mode, but
the calculated declination will be posted, and reported in a DWMM message, about one-half second later.
Name: WMM/DWMM
ID: 0x55
Request Data: 15 bytes:
Data Type Byte Offset Description
Day uchar 0 Day of month [1..31]
Month uchar 1 Month of year [1.12]
Year uchar 2 Year – 2000
Lat float 3-6 Latitude (degrees)
Lon float 7-10 Longitude (degrees)
Alt float 11-14 Altitude (meters)
The Day, Month, Year and Lat, Lon, Alt fields contain the date and position information needed by the World Magnetic
Model algorithm.
Reply Data: 23 bytes:
Data Type Byte Offset Description
Status uchar 0 0 = calculation inhibited
1 = calculation completed and posted
2 = calculation in process
3 = awaiting date and/or location
4 = flash write failure
Magnetic
declination
Kang 1-2 Current variation (declination).
Source char[20] 3-22 Name of USGS file from which model was derived (null
terminated)
Version
Version Name: VRSN/DVRSN
ID: 0xC3
Request Data: None
Reply Data: 12 bytes:
Data Type Byte Offset Description
Major Int 0-1 Major firmware version number
Minor Int 2-3 Minor firmware version number
Options uint 4-5 Firmware builds options as individual bit flags. Contact Honeywell for
details.
Serial Number ulong 6-9 This unit’s serial number.

HMR3500 User’s Guide
14 www.honeywell.com
Up Orientation char 10 Specifies board direction taken as upward. Board orientations (X, Y,
and Z) are marked on the boards and encoded here as:
1 = X –1 = –X
2 = Y –2 = –Y
3 = Z –3 = –Z
Forward
Orientation
char 11 Direction taken as forward. Same codes as used for up orientation.
Note: For the most part, message type codes for the compass coincide with those for Honeywell’s Dead Reckoning
Module (DRM®), but that for VRSN/DVRSN is specifically different to prevent support software from confusing the two
products.
Compass Orientation
Name: DORIENT
ID: 0x70
There is no ORIENT command. To set the rate at which DORIENT messages are sent, see ORRATE/DORRATE on page
16.
Output Data: 18 bytes:
Data Type
Byte
Offset Description
Roll Kang 0-1 Compass Roll
Pitch Kang 2-3 Compass Pitch
Azimuth Kang 4-5 Compass Azimuth
Rightward acceleration int 6-7 Rightward acceleration
Forward acceleration int 8-9 Forward acceleration
Upward acceleration int 10-11 Upward acceleration
Rightward magnetometer int 12-13 Magnetometer reading in the local-coordinates rightward
direction
Forward magnetometer int 14-15 Magnetometer reading in the local-coordinates forward direction
Upward magnetometer int 16-17 Magnetometer reading in the local-coordinates upward direction
The DORIENT message is generated by the compass and contains orientation (roll, pitch, and azimuth) information from
the compass. All quantities are corrected for their offsets, and azimuth is also corrected for magnetic declination.
Compass Magnetic Compensation
Name: MCAL/DMCAL
ID: 0x72
Request Data: 1 byte:
Data Type Byte Offset Description
Request uchar 0 0 = No Request
1 = Start compass compensation
2 = Request compass compensation status
3 = Abort compass compensation
4 = Revert to default compensation values
Any other value = request status only

HMR3500 User’s Guide
www.honeywell.com 15
Reply Data: 13 bytes:
Data Type
Byte
Offset Description
State uchar 0 0 = Compass Compensation Off
1 = Compass Compensation Data Collection
2 = Compass Compensation Computation in
Progress
3 = Compass Compensation Procedure Abort
Status Code uchar 1 0 = No error
1 = Compass Compensation Success
2 = Compass Compensation Already Started
3 = Compass Compensation Not Started
4 = Compass Compensation Timeout
5 = Compass Compensation Computation Failure
6 = New Computed Parameters No Better
7 = Flash Write Fail
Bin 0 Data Count uchar 2 Data Collection Count for Bin 0
Bin 1 Data Count uchar 3 Data Collection Count for Bin 1
Bin 2 Data Count uchar 4 Data Collection Count for Bin 2
Bin 3 Data Count uchar 5 Data Collection Count for Bin 3
Bin 4 Data Count uchar 6 Data Collection Count for Bin 4
Bin 5 Data Count uchar 7 Data Collection Count for Bin 5
Bin 6 Data Count uchar 8 Data Collection Count for Bin 6
Bin 7 Data Count uchar 9 Data Collection Count for Bin 7
Computation
Completion Count
uchar 10 Progress of Compensation Computation.
0 – 100.
Quality int 11-12 Numeric Quality of Compass Compensation
The DMCAL message is generated by the compass in response to a MCAL message, whenever a data or computation
count changes, when compensation completes, or in response to an error during the compass magnetic compensation
procedure.
DORIENT Message Rate
Name: ORRATE/DORRATE
ID: 0x7F
Request Data: 2 bytes:
Data Type Byte Offset Description
DORIENT interval int 0-1 Milliseconds between DORIENT messages. If necessary, the
module will round this to the nearest multiple of five. A value of zero
disables DORIENT messages; a value of –1 causes the DORRATE
message to return the current value without changing it.

HMR3500 User’s Guide
16 www.honeywell.com
Reply Data: 2 bytes:
Data Type Byte Offset Description
DORIENT interval int 0-1 Current value for milliseconds between DORIENT messages. Zero
signifies none.
4.0 TEST SOFTWARE
4.1 TEST SOFTWARE DESCRIPTION
Host computer test software is provided in the Engineering Demonstration Kit that will permit a thorough evaluation and
demonstration of the compass capabilities. CompassHost is a 32-bit Windows test program. It is capable of sending and
receiving all messages described in this manual except the BAUD message. It can display all messages received from the
module in the main window with scrolling text. It has a small window summarizing the current status of the module and a
graphic display of the current compass heading, roll, and pitch.
CompassHost can be run under Windows 9x, ME, NT 4.0, 2000 or their successors. One available serial port is required
for communicating with the compass. Processor, memory, and disk space requirements are minimal.
4.2 INSTALLATION
CompassHost is supplied as a single file, CompassHost.exe and a folder of ActiveX control files. Apart from the standard
Windows services already present, it uses no DLL, and, although it will create a registry entry when running, does not
require any such entries in advance. A Setup.bat file simplifies the installation process to install the ActiveX control and
register it on the computer for future use. The ActiveX control files are necessary to data display which shows the
graphical roll, pitch, and compass heading in real time. A Readme.txt file is also included to describe this installation
process.
When the ActiveX controls have been installed, CompassHost can be run directly from the floppy disk, but you will
probably want to copy it to a suitable directory on your hard disk, and you will probably want to create a shortcut for it.
These are standard Windows operations. When creating a shortcut, you may want to pay attention to the “Start in:” text
box on the “Shortcut” tab of the properties page. This specifies the current directory when CompassHost executes, and,
when opening a log file, CompassHost displays the file dialog with the current directory as the default. You can control this
default through shortcut properties.
4.3 DISPLAY OVERVIEW
CompassHost’s main window provides a scrolling list of messages from the module. Selecting an icon in the toolbar will
cause a small window to pop up, called the Nav Console, with the graphical representation of the compass information,
including a compass rose display of heading as well as roll and pitch in terms of (positive and negative) degrees. You can
hide the small window by pushing the same button again.
The start-up display is the message list, as shown in Figure 4. The module’s serial number appears in the window title bar
at the top. If it says “Serial number unknown” try issuing the “Serial No” command under the Compass menu. Immediately
below the title bar is the usual menu bar, and immediately below that is a row of toolbar buttons. At the bottom of the
window is a status bar with four panes. The leftmost contains context-sensitive help which describes the action of the
toolbar button or menu item positioned under the cursor. To its right is the name of the data logging file currently open (if
any). To the right of that is the module’s firmware version and other information returned in the DVRSN message. (See
message details for Version, page 13.) Finally, the serial COM port currently active is shown at the lower right corner.
Both the toolbar and the status bar can be hidden if desired.

HMR3500 User’s Guide
www.honeywell.com 17
The column on the left is the message type and corresponds to the mnemonics used in section 3.4, Message
Descriptions, starting on page 7. Following the mnemonic is most or (usually) all of the data from the message, interpreted
and formatted specifically for it.
4.4 STARTING UP
If a serial COM port was open the last time CompassHost terminated, it will attempt to reopen the same port upon startup.
If this isn’t possible, the “open COM port” dialog will come up automatically. This dialog can be brought up at any time to
close the port or change to another one.
CompassHost adjusts its behavior based on the module’s firmware version and build options, so it will send a VRSN
request automatically whenever a COM port is opened or whenever a DPOWER message is received, implying module
reset or power up. Depending on when the compass is powered on or connected to the corresponding serial port, the
automatic requests may fail. If so, the window title bar will state “Serial number unknown,” and the status bar will show
“No version information available.” Or perhaps you have connected a different module, and the old module’s information
persists. In either case, you should issue a “Serial No” request from the “Compass” menu. This sends a VRSN command,
enforcing the module’s reply with a timeout.
4.5 REQUESTS AND COMMANDS
This section describes the actions available from the menu bar. In some cases, they are also available through a button
on the toolbar, and that button is shown with the description.
Figure 4: CompassHost Main Window Display

HMR3500 User’s Guide
18 www.honeywell.com
4.5.1 File Menu
COM Port
An open COM port dialog will appear, showing the current status of the input to CompassHost and listing
all available COM ports in the range of COM1 through COM8. Select an available port and “open” (or you
can double-click the port). If a port is currently open, you can choose “close” if needed. Exit with “quit.” If
no port is open, most of CompassHost’s services are unavailable.
Log File
The dating logging facility can be used to store test data for later analysis and plotting. If a log file is open,
CompassHost gathers information from several messages to create a set of data in the form of an ASCII file readily
imported into spreadsheet programs, such as Excel. For more information, see Data Logging, on page 23.
Open
Opens a log file. By default, the directory is the current directory. The shortcut used to launch
CompassHost can set the directory, and only existing files with the name Compass*.dta are shown. A
default file name is created of the format Compass<module’s serial number>.dta. The “Files of type:”
dropdown can be used to show all existing files. If you attempt to open an existing, non-empty file, you will be asked
whether you want to overwrite it or append to it.
Close
Closes an open logging file.
Bump
If a log file is open, this command will close it and attempt to open a new file with an incremented name
but with the same extension in the same directory. If a file with the new name already exists, a file open
dialog box will come up. Otherwise, the new file is opened, and logging proceeds.
Exit
Terminates CompassHost.
4.5.2View Menu
Toolbar
Toggles the visibility of the toolbar.
Status Bar
Toggles the visibility of the status bar.
Status View
Toggles a special child window on top of the main display. This view maintains a summary of current
information taken from DORIENT and DRMC messages as illustrated in Figure 5.

HMR3500 User’s Guide
www.honeywell.com 19
Nav Console
Figure 6: Nav Console Window
Toggles the Nav Console display window on and off. The display shows the data output from the
compass in real time, as shown in Figure 6. By default, this window is displayed in the upper right corner
of the track display, but it may be moved as well as hidden.
Font
By default, text in displays is shown with the system font, but you can specify any font installed on your machine with
this command, in sizes from 8 through 20 points. Changing to a smaller size can fit more information on the screen.
In particular, the main display (Figure 4) saves and can display up to the 50 most recent messages from the module.
You cannot change the size of the default system font since it is not scalable.
4.5.3 Compass Menu
Serial Number
Issues a VRSN command to the module, with a timeout. You will be notified if there is no response. This menu item
is checked if a version has been received, but it can be issued at any time if, for example, a different module is
connected.
It is important that CompassHost have the serial number and related data for the module currently connected.
Several of the program’s features are enabled or disabled based on this information. If the automatic inquiry fails,
you should issue this command explicitly when the compass has been powered up and connected.
Initialize
Several quantities should be supplied to the compass upon startup, and these are gathered together into
this multi-purpose dialog, shown in Figure 7. The quantities are controlled by three messages, and this
command solicits current values from the module for all of them before the dialog is displayed.
Initializations will be overwritten by the startup defaults for these parameters that are stored in non-
volatile memory.
Figure 5: Status View Window

HMR3500 User’s Guide
20 www.honeywell.com
Figure 7: Initialization Dialog Box
4.6 MAGNETIC DECLINATION AND AZIMUTH OFFSET
Magnetic declination (also known as magnetic variation), is the angle between true north and magnetic north and is a
function of location and, to lesser extents, date and altitude. Azimuth offset is defined as the horizontal angle between the
forward axis of the module and the reference axis of the platform on which it is mounted. Azimuth offset is a constant that
is a function of the mechanical mounting and installation of the compass. Both declination and offset angles directly affect
azimuth accuracy, and the compass applies both corrections by adding them to the raw magnetic azimuth measurement.
Both angles are provided as separate quantities to permit keeping track of them individually, even though their effect is
simply additive. The sign convention used for both angles is positive for east. For example, if magnetic north is east of
true north, the declination is positive.
If you don’t know the magnetic declination for your current location, you can ask the compass to calculate it using the
World Magnetic Model. See 4.12 Magnetic Declination, on page 21.
4.7 ROLL AND PITCH OFFSET
Roll and pitch offsets are defined as the angle between the horizontal plane of the module and the reference plane that is
nominally “level” when the platform is stationary. It is a function of how the module is mounted with respect to the platform.
For both angles, they can be either positive or negative. A positive roll offset means the left side of the module is lower
than the reference plan. A positive pitch offset means the front side of the module is lower than the reference plan. The
numbers in the boxes will be added to the final roll and pitch values calculated from the compass.
4.8 ORIENTATION RATE
The output rate of the orientation data provided by the compass may be set by the user from less than 0.1 Hz to 50 Hz.
The specified frequency must have a period that is a multiple of five milliseconds. For this reason, the frequency you enter
may be adjusted to the nearest integer value and will be shown.
4.9 RESET MODULE
The Reset command is equivalent to cycling the compass power, and will cause the power-up message to be displayed.
The RSET command sent to the module is described on page 8). Also, serial number and version information stored in
the CompassHost program will be reset. The module should respond with a DPOWER, which will cause CompassHost to
solicit version information again.
Other manuals for hmr3000 TruePoint
2
Table of contents
Other Honeywell Compass manuals