Skip to content

HiPNUC GNSS/INS Command and Programming Manual ​

Rev 2.0

For HiPNUC GNSS/INS integrated navigation products

Version and Scope ​

This manual primarily covers the current HiPNUC HIxxN GNSS/INS product range. Physical interfaces and optional features vary by model; refer to the product datasheet and delivered configuration. Commands, registers and some data fields described here may not apply to legacy HI32 products; use the documentation applicable to the delivered device.

When first connecting or troubleshooting, use LOG VERSION to query the product name and firmware version.

InterfaceData and protocolsApplicability
Serial (RS-232 or RS-422)HI81, GGA, RMC, RTCM3, ASCII configuration commandsElectrical levels and port count depend on the model
EthernetHI81, GGA, RMC, ASCII configuration commandsModels equipped with Ethernet only
CANSAE J1939Configurable CAN baud rate and node address
PPS/SYNCPPS outputRefer to the model-specific datasheet for pins, levels and timing

Quick Start ​

Connect COM1 ​

  1. Check power, COM1 electrical interface, wiring and antenna connections against the product datasheet.
  2. Configure the receiver for 115200 bps, 8N1: 8 data bits, no parity, 1 stop bit.
  3. Receive COM1 data after power-up. Default output is HI81 binary data at 0.01 s intervals (100 Hz).

Verify HI81 Data ​

Search for frame header 0x5A 0xA5, extract the complete frame using the payload length, and verify its CRC. Communication is established when:

  • Frames with correct CRCs arrive continuously;
  • The payload contains HI81 data with tag 0x81;
  • The frame period is approximately 10 ms.

An ins_status that has not entered integrated navigation does not mean communication failed. After verifying communication, use the HI81 definition and status guidance below to check installation, antennas, GNSS positioning and navigation status.

Use Other Protocols ​

Configure GGA, RMC, RTCM3 and J1939 as required by the application. Commands, fields and verification methods are given in their protocol sections; the quick-start procedure does not change default output settings.

Document Revision History ​

VersionDateAuthorChanges
V2.0Sep 13, 2026HiPNUCRestructured scope, quick start, correction data and protocol guidance
V1.0Oct 1, 2023HiPNUCInitial version

Installation and Coordinate Frames ​

Body Frame ​

The device body frame (b-frame) is right-handed: Y points forward along the vehicle, X right and Z up. With the default mounting, the b-frame matches the X / Y / Z markings on the enclosure; for other horizontal mountings, declare where the enclosure arrows point on the vehicle with the mounting code below, and the device aligns its output to the vehicle accordingly.

The device, antennas and vehicle must be rigidly fixed together; relative positions and orientations must not change during operation. Measure lever arms to the antenna phase centers.

HI81 fields ins_lon, ins_lat and ins_msl give the integrated-navigation position of the IMU origin. See the individual GGA and RMC descriptions for their position sources.

In integrated-navigation operating modes the navigation frame is fixed at East-North-Up (ENU): X east, Y north, Z up. vel_enu and acc_enu use east, north, up order. Heading is zero at true north and positive clockwise. The output data axes are fixed at Right-Front-Up: CONFIG IMU COORD accepts only 0, and LOG USRCONFIG reads back COORD=0.

ENU Euler angles use the 3-1-2 (Z-X-Y) rotation order: heading, pitch, then roll. The quaternion represents body-to-navigation rotation in W, X, Y, Z order.

Horizontal Mounting Orientation (HIxxN) ​

For horizontal HIxxN installations, CONFIG IMU URFR <CODE> declares where the X and Y arrows printed on the enclosure point on the vehicle; the Z arrow stays up. Directions are the vehicle's: front is where it drives, right is the driver's right-hand side.

CodeX arrow pointsY arrow points
24Right (default)Front
304FrontLeft
214BackRight
134LeftBack

Save, reboot and read back:

text
CONFIG IMU URFR 24
SAVECONFIG
REBOOT
LOG USRCONFIG

Dual-Antenna Baseline and Lever Arms ​

A is the primary positioning antenna and B is the dual-antenna heading antenna. Do not interchange connectors or ANTA and ANTB coordinates. These are the position vectors from the IMU origin to the phase centers of antennas A and B, respectively, in the device body frame (the vehicle's right, front and up after the mounting correction: X right, Y front, Z up) and in meters. The baseline vector is ANTB - ANTA.

Set antenna A's lever arm:

SETBASELINE ANTA <X,Y,Z>

Set antenna B's lever arm:

SETBASELINE ANTB <X,Y,Z>

Separate parameters with commas, without spaces. Each antenna lever-arm length must not exceed 1000 m; baseline length must be 0.05–1000 m.

For example, A and B at (-1.5, -1.2, -0.3) and (1.5, -1.2, -0.3) relative to the IMU:

text
SETBASELINE ANTA -1.5,-1.2,-0.3
SETBASELINE ANTB 1.5,-1.2,-0.3
SAVECONFIG
REBOOT

After rebooting, send LOG INSCONFIG and check ANTA and ANTB against the actual installation. Accurate lever arms reduce errors caused by different antenna and IMU positions during vehicle rotation.

The lever arms can also be read and written as registers: ANTA X / Y / Z at 0x03D0 / 0x03D2 / 0x03D4 and ANTB at 0x03D6 / 0x03D8 / 0x03DA, each value the 32-bit pattern of an IEEE-754 single-precision float, in meters. Over J1939, write them one at a time as in Configure J1939; they take effect after saving and rebooting. A value whose magnitude exceeds 1000 m is rejected; writing one value at a time does not check the spacing between the antennas, so the host should confirm it is at least 0.05 m before writing. The "Installation" page of the CHCenter configuration dialog reads and writes the lever arms directly.

Common Operations ​

Configuration uses ASCII commands. End every command with carriage return and line feed \r\n. Success normally returns OK; ERR or text beginning with ERROR indicates failure. When communication settings change, the device reboots or a timeout occurs, use readback and valid data as final verification.

Command Overview ​

CommandPurpose
REBOOTReboot the device
LOGQuery information or control a specified serial port's output
CONFIGConfigure navigation operating parameters
UNLOGALLDisable all periodic messages on the current serial port
SAVECONFIGSave configuration that must survive power loss
FRESETRestore default user configuration
SETBASELINESet A and B antenna lever arms
SERIALCONFIGSet a specified serial port's baud rate

LOG and SERIALCONFIG accept a target port after the command, for example LOG COM2 COMCONFIG or SERIALCONFIG COM2 460800. Without COMx, they apply to the port receiving the command. Available ports depend on the model.

Reboot ​

REBOOT immediately restarts the device, equivalent to cycling power. Run SAVECONFIG first for parameters that must be retained.

Query and Control Serial Output ​

Pause or Resume Output ​

  • LOG ENABLE: resume output on the port receiving the command;
  • LOG DISABLE: pause output on the port receiving the command.

These commands only control that port's runtime output and do not change other serial-port settings.

Query Version ​

LOG VERSION queries product name and firmware version. PNAME, APP_VER and BL_VER identify the product name, application firmware version and Bootloader version. Responses may include serial number, build date and other information; do not assume a fixed field or line count.

Query Serial Configuration ​

LOG [COMx] COMCONFIG queries baud rate and message periods on the current or specified port. Returned ONTIME values are milliseconds:

text
COM=COM1
BAUD=115200
MSG=HI81, ONTIME=10

The device may also list other messages supported by that port.

Query Dual-Antenna Configuration ​

LOG INSCONFIG queries A and B antenna lever arms. Principal fields:

text
ANTA=0.000,0.000,0.200
ANTB=0.000,1.000,0.200

Additional fields may be returned; do not assume a fixed field or line count.

Configure Periodic Messages ​

Syntax: LOG [COMx] <MSG> ONTIME <PERIOD>.

ParameterDescription
MSGHI81, GGA or RMC
PERIODPeriod in seconds; common supported range 0–32.767 s; 0 disables the message

Example:

text
LOG HI81 ONTIME 0.01
SAVECONFIG

This sets the current port's HI81 period to 10 ms (100 Hz). GGA and RMC commonly use 0.1 or 1 second. Calculate the combined bandwidth required by all enabled messages, including serial framing, and leave headroom below the port's baud rate. OK means the configuration was accepted; it does not guarantee the actual output period. Periodic messages may be skipped when bandwidth is insufficient or transmission is congested.

Configure the Navigation Operating Mode ​

Syntax: CONFIG MODEL <MODEL>.

MODELDescription
CARVehicle mode with vehicle motion constraints; factory default
SHIPMarine mode
PLANEAircraft mode without vehicle motion constraints

Save and reboot:

text
CONFIG MODEL CAR
SAVECONFIG
REBOOT

Configure NTRIP ​

Only models with a supported network interface or associated DTU can use NTRIP directly. Refer to the product datasheet and delivered configuration for wiring, network access and associated equipment.

text
CONFIG NTRIP <SERVER> <PORT> <MOUNTPOINT> <USERNAME> <PASSWORD>
ParameterDescription
SERVERCORS/NTRIP service domain name or IP address
PORTService port
MOUNTPOINTMountpoint
USERNAMEAccount username
PASSWORDAccount password

Credential Security

LOG NTRIPCONFIG may return usernames and passwords. Remove credentials before saving terminal logs, taking screenshots or requesting technical support.

The address and account below illustrate syntax only:

text
CONFIG NTRIP caster.example.com 2101 MOUNT1 demo_user demo_password
SAVECONFIG
REBOOT

After rebooting, read back server, port, mountpoint and account settings with LOG NTRIPCONFIG. Check HI81 GNSS positioning status to confirm RTK. Acquisition time depends on antenna environment, correction service, network quality and base-station distance.

Disable All Periodic Messages on the Current Port ​

UNLOGALL disables all periodic messages on the port receiving the command, including default HI81 output. Other ports are unaffected. Run SAVECONFIG afterward if the change must survive power loss.

Save Configuration ​

Run SAVECONFIG after changes that must be retained. Run REBOOT afterward only for settings explicitly documented as requiring a reboot.

Restore Defaults ​

Record Settings Before Restoring

FRESET overwrites user configuration with defaults. Record required lever arms, network, output and bus settings first; redact NTRIP credentials in terminal logs.

Use FRESET only for configuration problems unresolved by ordinary troubleshooting:

  1. Record required settings, then send FRESET.
  2. Wait for restart; cycle power if communication does not return.
  3. Reconnect to COM1 at 115200 bps, 8N1 and verify continuous 100 Hz HI81 output.
  4. Read back configuration, restore application settings, and verify navigation and communication data again.

If some settings are not back at their defaults after the restart (for example, no HI81 output), do not send FRESET again: set the missing items by hand as in step 4 (for example, LOG HI81 ONTIME 0.01), then run SAVECONFIG.

Change the Serial Baud Rate ​

Supported values are 115200, 460800 and 921600:

text
SERIALCONFIG [COMx] <BAUD>
  1. Send LOG [COMx] COMCONFIG to record the target port's current settings.
  2. Send SERIALCONFIG [COMx] <BAUD>. If changing the port receiving the command, switch the host to the new rate after receiving OK.
  3. Send SAVECONFIG through a port that still communicates.
  4. Read LOG [COMx] COMCONFIG to check BAUD against the target; verify valid data on that port.

Serial and Network Protocols ​

Introduction ​

Serial ports and applicable network interfaces carry NMEA 0183 ASCII and HiPNUC binary messages. Both may share one port; identify their start markers separately as $ and 0x5A 0xA5.

Transport Interfaces ​

  • RS-232 and RS-422 use the same serial format. Device and receiver baud rates must match; the default is 115200 bps.
  • Some models have Ethernet and obtain an IP address through DHCP. The default connection uses TCP port 5944. Once connected, command and data formats match the serial interface. Network capabilities depend on the datasheet and delivered configuration.

NMEA Messages (ASCII) ​

NMEA messages start with $, end with * and a two-digit hexadecimal checksum, then carriage return and line feed 0x0D 0x0A:

text
$<Talker><Type>,<Field1>,<Field2>,...*<Checksum><CR><LF>
FieldDescription
$Start character, ASCII 0x24
TalkerTwo-character identifier; current products default to GP. Identify data by message type without restricting the satellite system based on this identifier
TypeThree-character type; this manual documents GGA and RMC
,Separator, ASCII 0x2C; retain separators for empty fields
*Separates data and checksum
ChecksumBytewise XOR of all characters between $ and *, as two uppercase hexadecimal ASCII characters
<CR><LF>Terminator, ASCII 0x0D 0x0A

NMEA Message List ​

MessageDescriptionData source
GGAPosition, UTC time, fix quality and satellites usedPosition solution
RMCTime, position, ground speed and course over groundPosition and velocity solution

GGA and RMC position sources vary by product implementation: GNSS antenna position or integrated-navigation result. For consistent integrated position, velocity and attitude referenced to the IMU origin, parse HI81.

When external time changes, time fields may temporarily be invalid. Check validity continuously and confirm the new epoch before using absolute time.

GGA ​

Receiver time, position and positioning-related data.

Treat the fix as invalid if quality is empty or 0; do not rely on fixed placeholder values in other fields. Empty time means invalid UTC. The sentence may still output at its configured period.

$GPGGA,062134.00,2813.9908005,N,11252.6285300,E,1,28,0.5,83.684,M,-17.038,M,0.0,0000*54
IDExampleFormatDescription
1$GPGGAHeader
2062134.00hhmmss.ssUTC time
32813.9908005ddmm.m…Latitude: first two digits degrees, remainder minutes; 0°–90°
4N-Latitude direction: N north, S south
511252.6285300dddmm.m…Longitude: first three digits degrees, remainder minutes; 0°–180°
6E-Longitude direction: E east, W west
71x0 invalid; 1 single-point or PPP; 2 pseudorange differential; 4 RTK fixed; 5 RTK float
828xxSatellites used for positioning
90.5x.xHDOP: horizontal dilution of precision
1083.684x.xxxAltitude above mean sea level
11MUAltitude unit: m
12-17.038x.xxxGeoid undulation: WGS84 ellipsoidal height minus altitude above mean sea level
13MUGeoid undulation unit: m
140.0x.xDifferential age in s
150000xxxxDifferential station ID
1654hhChecksum

Latitude and longitude use degrees and minutes, without a separate seconds field. Convert with decimal degrees = degrees + minutes / 60, then apply the sign from N/S/E/W. Decimal precision may vary by firmware; parse comma-separated decimal values, not fixed-width slices.

RMC ​

Recommended minimum navigation data.

Treat the fix as invalid if positioning status is empty or V; do not rely on fixed placeholder values for position, speed or course. Empty time or date means invalid UTC. The sentence may still output at its configured period.

$GPRMC,020550.00,A,2813.9891299,N,11252.6278784,E,0.03,315.70,161117,0.0,E,A,V*49
IDExampleFormatDescription
1$GPRMCHeaderStart character and message type
2020550.00hhmmss.ssUTC time
3Ax.xPositioning status: A valid, V invalid
42813.9891299ddmm.m…Latitude format as in GGA
5N-Latitude direction as in GGA
611252.6278784dddmm.m…Longitude format as in GGA
7E-Longitude direction as in GGA
80.03x.xxHorizontal ground speed in knots
9315.70x.xxCourse over ground, true-north reference, positive clockwise, 0°–360°
10161117ddmmyyDate: day, month, year
110.0x.xReserved; ignore
12E-Reserved; ignore
13A-Mode: N invalid; A autonomous; D differential; E estimated; F RTK float; R RTK fixed
14V-Extended status; do not use alone to determine fix validity
1549hhChecksum

Determine RMC fix validity primarily from field 3 (A/V), together with field 13's mode. Field 14 is not an independent indication of validity.

HiPNUC Binary Messages ​

HI81 is the common binary output for HiPNUC GNSS/INS products. Serial format is 8N1; physical interfaces depend on the datasheet.

Unless stated otherwise, integer fields' physical values equal raw values multiplied by scale factors.

Frame Format ​

COM1 defaults to 100 Hz HI81. Multi-byte integers and CRC are little-endian.

Frame orderValueLength (bytes)Description
Sync byte 10x5A1Fixed
Sync byte 20xA51Fixed
Payload length0x0068 for HI812Payload only, excluding sync, length and CRC
CRC-2Little-endian; skip this field during calculation
PayloadFirst byte 0x81104 for HI81Fields below

A complete HI81 frame is 110 bytes: CRC at frame offsets 4–5, payload from offset 6. Table offsets below start at the first payload byte, 0x81.

Payload Content ​

Integrated Navigation Data (HI81) ​

HI81 payload length is fixed at 104 bytes.

Integrated Navigation Status ​

ins_status is the common field identifying the navigation operating phase:

ValueStateMeaning
0InvalidInformation required for initialization not yet obtained
1AligningInitialization started, but integrated navigation not yet active
3Integrated navigationInitialized with valid GNSS aiding
6Inertial dead reckoningInitialized, but GNSS aiding currently unavailable; propagating inertially
OffsetNameTypeSize (bytes)UnitScaleDescription
0taguint8_t1--Packet tag: 0x81
1statusuint16_t2--Reserved; do not interpret
3ins_statusuint8_t1--Navigation status as above
4gpst_wnuint16_t2week1GPS week
6gpst_towuint32_t4s0.001GPS time of week
10reserveduint8_t[2]2--Reserved; ignore
12gyr_bint16_t[3]6rad/s0.001Body X, Y, Z angular rate; factory-calibrated IMU measurements
18acc_bint16_t[3]6m/s²0.0048828Body X, Y, Z acceleration; factory-calibrated IMU measurements
24mag_bint16_t[3]6μT0.030517Body X, Y, Z magnetic field; factory-calibrated IMU measurements
30air_pressureint16_t2Pa1Actual pressure = field value + 100000 Pa; 2000 means 102000 Pa
32reserveduint8_t[2]2--Reserved; ignore
34temperatureint8_t1°C1Temperature
35utc_yearuint8_t1year1UTC year minus 2000; 24 means 2024
36utc_monthuint8_t1month1UTC month
37utc_dayuint8_t1day1UTC day
38utc_houruint8_t1h1UTC hour
39utc_minuint8_t1min1UTC minute
40utc_msecuint16_t2s0.001UTC seconds and milliseconds
42rollint16_t2deg0.01Roll, -180°–180°
44pitchint16_t2deg0.01Pitch, -90°–90°
46yawuint16_t2deg0.01Heading, zero at true north, positive clockwise, 0°–360°
48quatint16_t[4]8-0.0001Body-to-navigation quaternion, W, X, Y, Z
56ins_lonint32_t4deg1e-7Integrated-navigation longitude
60ins_latint32_t4deg1e-7Integrated-navigation latitude
64ins_mslint32_t4m0.001Integrated-navigation altitude above mean sea level
68pdopuint8_t1-0.1GNSS position dilution of precision
69hdopuint8_t1-0.1GNSS horizontal dilution of precision
70solq_posuint8_t1--GNSS fix quality: 0 invalid; 1 single-point or PPP; 2 pseudorange differential; 4 RTK fixed; 5 RTK float
71nv_posuint8_t1--Satellites used for GNSS positioning
72solq_headinguint8_t1--Dual-antenna heading quality: 4 fixed; otherwise unavailable
73nv_headinguint8_t1--Satellites used for dual-antenna heading
74diff_ageuint8_t1s1RTK differential age
75undulationint16_t2m0.01WGS84 ellipsoidal height minus altitude above mean sea level
77reserveduint8_t1--Reserved; ignore
78vel_enuint16_t[3]6m/s0.01Navigation-frame east, north, up velocity
84acc_enuint16_t[3]6m/s²0.0048828Navigation-frame east, north, up acceleration
90reserveduint8_t[14]14--Reserved; ignore

Use gpst_wn, gpst_tow and UTC fields as absolute time only after obtaining a valid GNSS/UTC epoch. Do not rely on fixed placeholders for invalid time; HI81 may still output at the configured period.

Skip reserved fields by their fixed lengths; their values must not change parsing layout.

CRC ​

HI81 uses CRC-16/XMODEM: polynomial 0x1021, initial value 0x0000, no input/output reflection and no final XOR. It covers header, length and payload, excluding the CRC field itself.

c
static void crc16_update(uint16_t *currentCrc, const uint8_t *src,
                         uint32_t lengthInBytes)
{
    uint32_t crc = *currentCrc;
    for (uint32_t j = 0; j < lengthInBytes; ++j)
    {
        crc ^= (uint32_t)src[j] << 8;
        for (uint32_t i = 0; i < 8; ++i)
        {
            uint32_t temp = crc << 1;
            if (crc & 0x8000)
                temp ^= 0x1021;
            crc = temp;
        }
    }
    *currentCrc = (uint16_t)crc;
}

uint16_t crc = 0;
crc16_update(&crc, frame, 4);       /* 5A A5 LEN_L LEN_H */
crc16_update(&crc, frame + 6, 104); /* HI81 payload */

uint16_t receivedCrc = (uint16_t)frame[4] | ((uint16_t)frame[5] << 8);
bool crcOk = (crc == receivedCrc);

RTCM3 Correction Data ​

RTCM3 carries GNSS corrections. Keep COM1's default HI81 output and use an available COM2 for RTCM3. Base-station output and rover correction input are separate workflows.

Rover Correction Input ​

Feed the correction source's raw RTCM3 bytes directly into COM2, without ASCII commands, line terminators or other wrappers. The source and COM2 baud rates must match.

Use one correction source at a time. Continuously monitor HI81: diff_age should update with corrections; solq_pos of 4 (RTK fixed) or 5 (RTK float) indicates the position solution is using RTK.

Base-Station RTCM3 Output ​

Record the current mode and port configuration before switching to base-station mode. On COM2, run:

text
UNLOGALL
CONFIG MODEL BASE
LOG RTCM3 ONTIME 1
SAVECONFIG
REBOOT

The nonzero value in LOG RTCM3 ONTIME 1 only enables RTCM3 forwarding; it does not set the RTCM generation rate. The internal GNSS module generates these messages, which the device forwards:

RTCM3 messageRate
10051 Hz
10741 Hz
10941 Hz
11241 Hz

After reboot, verify complete RTCM3 frames with correct checksums on COM2. To return to integrated navigation, select CAR, SHIP or PLANE and restore required port outputs.

CAN Interface: SAE J1939 ​

CAN-equipped INS products use SAE J1939, default baud rate 500 kbit/s and device address 0x08. Interface capabilities depend on the model and delivered configuration.

Positions in FF10 and FF14 refer to the IMU origin, as in HI81.

J1939 uses a 29-bit extended ID: priority P (3 bits), reserved R (1 bit), data page DP (1 bit), PDU format PF (8 bits), PDU specific PS (8 bits), source address SA (8 bits). Here measurement PGNs have PF=0xFF and are PDU2 broadcasts: PS is the PGN's low 8 bits, SA the device address.

ItemConvention
Communication modePeriodic measurement PGN broadcasts
Data lengthAll measurement PGNs in this section are 8 bytes
PF0xFF
Priority3
Default source address0x08
Data formatMulti-byte values little-endian; signed integers unless explicitly unsigned or status fields

Each PGN period is independently configured; defaults may vary by product. Use readback and actual received periods, not an assumed common default.

PGN Message List ​

PGN 65296 (FF10): Latitude and Longitude ​

Default-address CAN ID: 0x0CFF1008.

SPNBytesDescription
Latitude0–3int32_t, deg, scale 1e-7
Longitude4–7int32_t, deg, scale 1e-7

PGN 65300 (FF14): Altitude and Differential Age ​

Default-address CAN ID: 0x0CFF1408.

SPNBytesDescription
Altitude above mean sea level0–3int32_t, m, scale 0.01
Geoid undulation4–5int16_t, m, scale 0.01
Differential age6–7int16_t, s, scale 0.01

PGN 65304 (FF18): Fix Status and Satellite Counts ​

Default-address CAN ID: 0x0CFF1808.

SPNBytesDescription
GNSS fix quality00 invalid; 1 single-point or PPP; 2 pseudorange differential; 4 RTK fixed; 5 RTK float
Dual-antenna heading quality14 fixed; otherwise unavailable
Positioning satellites2Satellites used for GNSS positioning
Heading satellites3Satellites used for dual-antenna heading
ins_status4Same navigation-status definition as HI81
Reserved5–7Ignore

PGN 65318 (FF26): Velocity ​

Default-address CAN ID: 0x0CFF2608.

SPNBytesDescription
East velocity0–1int16_t, m/s, scale 0.01
North velocity2–3int16_t, m/s, scale 0.01
Up velocity4–5int16_t, m/s, scale 0.01
Horizontal ground speed6–7int16_t, m/s, scale 0.01

PGN 65327 (FF2F): Time ​

Default-address CAN ID: 0x0CFF2F08.

SPNBytesDescription
UTC year0Year minus 2000; 24 means 2024
UTC month1
UTC day2
UTC hour3
UTC minute4
UTC second5
UTC milliseconds6–7uint16_t, ms, scale 1

Use FF2F as UTC only with a plausible, nonzero date. Ignore it until absolute time is valid; do not rely on invalid-time placeholder values.

PGN 65332 (FF34): Acceleration ​

Default-address CAN ID: 0x0CFF3408.

SPNBytesDescription
Acceleration X0–1int16_t, g, scale 0.00048828
Acceleration Y2–3int16_t, g, scale 0.00048828
Acceleration Z4–5int16_t, g, scale 0.00048828
Reserved6–7Ignore

PGN 65335 (FF37): Angular Rate ​

Default-address CAN ID: 0x0CFF3708.

SPNBytesDescription
Angular rate X0–1int16_t, deg/s, scale 0.061035
Angular rate Y2–3int16_t, deg/s, scale 0.061035
Angular rate Z4–5int16_t, deg/s, scale 0.061035
Reserved6–7Ignore

PGN 65341 (FF3D): Roll and Pitch ​

Default-address CAN ID: 0x0CFF3D08.

SPNBytesDescription
Roll0–3int32_t, deg, scale 0.001
Pitch4–7int32_t, deg, scale 0.001

PGN 65345 (FF41): Heading ​

Default-address CAN ID: 0x0CFF4108.

SPNBytesDescription
Heading (clockwise)0–3uint32_t, zero at true north, positive clockwise, 0°–360°, deg, scale 0.001
Reserved4–7Ignore

PGN 65347 (FF43): Temperature ​

Default-address CAN ID: 0x0CFF4308.

SPNBytesDescription
Temperature0–1int16_t, °C, scale 0.01
Reserved2–7Ignore

Configure J1939 ​

Configuration uses PDU1 PGN 0xEF00, with the host fixed at source address 0x55. At default device address 0x08:

  • Host request ID: 0x0CEF0855, destination device 0x08, source host 0x55;
  • Device response ID: 0x0CEF5508, destination host 0x55, source device 0x08.

Configuration frames are 8 bytes:

FieldBytesDescription
ADDR0–116-bit register address, little-endian
CMD20x06 write, 0x03 read
STATUS3Reserved; host sends 0x00
VAL4–732-bit value, little-endian; send 0 for reads

Successful ordinary writes echo the request; successful reads return the current VAL. Invalid addresses or parameters may receive no response. Set a timeout rather than waiting indefinitely.

Configuration Registers ​

AddressObjectValue
0x0110FF10 latitude/longitude period0 off; 10–1000 ms
0x0114FF14 altitude/differential age period0 off; 10–1000 ms
0x0118FF18 fix-status period0 off; 10–1000 ms
0x0126FF26 velocity period0 off; 10–1000 ms
0x012FFF2F time period0 off; 10–1000 ms
0x0134FF34 acceleration period0 off; 10–1000 ms
0x0137FF37 angular-rate period0 off; 10–1000 ms
0x013DFF3D roll/pitch period0 off; 10–1000 ms
0x0141FF41 heading period0 off; 10–1000 ms
0x0143FF43 temperature period0 off; 10–1000 ms
0x009ACAN baud rate0 1000 kbit/s; 1 800 kbit/s; 2 500 kbit/s; 3 250 kbit/s; 4 125 kbit/s
0x009CDevice address1–64, default 8
0x009DJ1939 periodic-output master switch0 off; 1 on
0x03D0–0x03DAAntenna lever arms ANTA, ANTBOne address per axis, float bit pattern, in m; see Dual-Antenna Baseline and Lever Arms; takes effect after saving and rebooting
0x0000Control0x00000000 save; 0x000000FF reboot

For example, set FF37 angular-rate period to 100 ms:

text
ID   = 0x0CEF0855
DATA = 37 01 06 00 64 00 00 00

Read 0x0137 to verify:

text
ID   = 0x0CEF0855
DATA = 37 01 03 00 00 00 00 00

Disable all J1939 periodic output:

text
ID   = 0x0CEF0855
DATA = 9D 00 06 00 00 00 00 00

Set VAL to 01 00 00 00 to re-enable. Read back the target register, then write 0x00000000 to 0x0000 to save and 0x000000FF to reboot. Verify actual CAN IDs and periods. After a baud-rate change, verify with the new rate after reboot. Reboot may occur before its response; valid messages received again with new parameters establish success.

Status and Troubleshooting ​

Integrated-Navigation Initialization ​

Working communication does not mean navigation is initialized. The device first establishes position from a valid GNSS fix, then initializes using fixed dual-antenna heading or velocity heading from sustained motion. Without dual-antenna heading, maintain steady motion under good satellite conditions and check ins_status.

Throughout initialization and operation, ins_status means: 0 invalid, 1 aligning, 3 integrated navigation, 6 inertial dead reckoning. State 6 continues outputting navigation data, but errors accumulate with outage duration and motion conditions. Integrated navigation resumes automatically when GNSS aiding is valid again.

Troubleshooting Order ​

SymptomCheck firstAssessment and action
No HI81 on COM1Power, levels, TX/RX, common ground, 115200 8N1Verify continuous complete 110-byte frames starting 0x5A 0xA5 with correct CRC; use LOG COMCONFIG to check settings if needed
ins_status remains 0 or 1Antenna A sky view, solq_pos, satellite count, mode, lever armsAlso check A/B connections, baseline direction and solq_heading=4 on dual-antenna models; without fixed heading, maintain steady motion for heading initialization
ins_status changes 3 to 6solq_pos, differential age, obstructions, GNSS continuityWith NTRIP, also check network, server, mountpoint and account; observe return to 3 when valid aiding resumes
Incorrect heading direction or large offsetDevice Y forward, A/B order, ANTA, ANTB, rigid mountingVerify true-north zero and clockwise-positive; dual-antenna heading requires solq_heading=4
RTK will not fixAntenna conditions, corrections, diff_age, network, NTRIPConfirm continuous correction reception, then account, base distance and obstructions; a fixed waiting time is not a success criterion
No J1939 messagesCAN availability, 500 kbit/s, 29-bit extended frames, termination, address, periodsRead target PGN period, then check ID against actual device address; do not assume identical defaults across firmware

Before Contacting Technical Support ​

Prepare product name and APP_VER, LOG COMCONFIG, LOG INSCONFIG, and a short raw HI81 or CAN capture. For heading or RTK issues, also describe antenna installation, satellite conditions, differential age and network status.

Firmware Upgrade and Technical Support ​

Firmware Upgrade ​

Contact technical support with the product model and the LOG VERSION output so that the applicable .hex file can be confirmed; do not use firmware for another model. Select the file in CHCenter under Tools > Firmware Upgrade, connect the device and start upgrading. Keep power and communication stable. Reconnect afterward and check APP_VER with LOG VERSION.

Development Resources ​

C/C++, Python, STM32, ROS and DBC resources are under SDK and Development Resources. This manual defines the protocols.

Technical Support ​

Latest documentation and support channels:

WeChat
Telegram

Last updated:

IMU · AHRS · INS · RTK Support Center