Skip to main content
Version: AT3 v1.3

Application uplinks

This section defines the frame format of uplinks sent to the network. The network can be either LoRaWAN or LTE.

Most of the messages are sized to fit the maximum LoRa payload size in the worst case (DR0), which is 51 bytes for EU-868 (repeater compatible). Note that only responses to a query can exceed this limit and restrict the MTU to 63, which may trigger a datarate change if configured in tx_start paramters.

Cellular network header

On cellular network only, the following message header is added:

Bytes [0-7]Bytes [8-9]
-b15-0b7-0
DevEUIMSB Frame up counterLSB Frame up counter

Byte 0-1 description

  • DevEUI. Device unique identifier. Used on cellular networks to discriminate the device which sent the uplink. For convenience, it is identical to the LoRaWAN DevEUI.

  • Frame up counter. Uplink frame counter. Incremented for each uplink. It wraps to 0 after reaching 65535. It is an emulation of the LoRaWAN uplink frame counter and serves the same purpose: to be able to detect and quantify uplink packet loss when using UDP transport.

Message header

The uplinks are structured with a common header followed by a data section. The data section varies depending on the type of uplink.

Basic header

The basic header has 4 bytes and is present in both single-frame and multi-frame modes.

Byte 0Byte 1Bytes [2-3]
b7b6b5-3b2-0b7b6-0b15-0b7-0
MSTypeACK-TKSBattery %MSB timestampLSB timestamp

Byte 0 description

  • M. Multi-frame (0: single frame; 1: multi-frame).
    • 0 - Single frame.
    • 1 -- Multi-frame
  • S. SOS.
    • 0 --SOS mode not active
    • 1 -- SOS mode active
  • Type. Frame type.:
    • 1 -- Notification. Unsolicited message (System start, Critical/normal temperature, motion start/stop, SOS start/stop, geozoning, battery alert, etc.).
    • 2 -- Position. Unsolicited message. Geolocation positions.
    • 3 -- Query. Expects a response from the network (aiding position request, almanac request, etc.).
    • 4 -- Response: Solicited message. Response to network query (config get/set, POD, Almanac get/set, etc.).
    • Other values: Reserved for future use.
  • ACK-TK: Ack-token. Value (in [0..7]) extracted from the last downlink received. It is used to acknowledge the corresponding downlink.

Byte 1 description

  • S. Basic/Special long timestamp header selection bit. Unset for the basic header.
  • Battery: Remaining battery capacity expressed as percentage of full capacity. Special values:
    • 0: in charge
    • 127: unknown. Byte 2 -- 3 contains the timestamp indicating when the payload was generated. The value represents the number of seconds elapsed since the start of the most recent half-day period (a value of 0 corresponds to either noon or midnight). Over LoRaWAN networks, when the LoRaWAN stack is in multiple transmit mode, the retransmissions keep the same timestamp.

Special long timestamp header

this header format is used when the Basic/Special long timestamp header selection bit is set. The special long timestamp header is 6 bytes long and is used to replay the uplinks stored in the uplink buffer. It is identical to the basic header, except that the timestamp is encoded on 4 bytes.

Byte 0Byte 1Bytes [2-5]
b7b6b5-3b2-0b7b6-0b31-24......b7-0
MSTypeACK-TKSBattery %Long timestamp

Extended header

This header is used when an application message needs to be fragmented to multiple uplinks ("multi-frame" case).

It consists of a basic header (with M = 1) extended with an extra byte called m-frame.

Bytes [0-3]Byte 4
Basic header with M=1Groupm-frame
b7-5b4b3-0
Group IDLastFragment number

Byte 4 description

  • Group ID. Group identifier [0..7]. It is incremented each time a new group of uplinks are sent. It is used to uniquely identify a group. It should be used to avoid mixing uplinks belonging to two different groups.

  • Last. Set to 1 to indicate the last uplink in the group.

  • Fragment number. Fragment identifier inside a group [0..15]. It starts at 0 (first uplink) and is incremented for each subsequent uplinks belonging to the same group.

Notifications

This section describes the notification uplinks.

Overview

The notifications are categorized into classes, with each class containing different types. The class of notification allows a simple mechanism (and configuration) for requesting network acknowledgments: A user may require some classes of notifications to be acknowledged by the network.

The format of a notification is the following

Bytes [0-3]Byte 4Bytes [5-variable]
Basic header (Type =1)Notification headerData
b7-4b3-0
ClassType

Notification header

  • Class: Class of notification
  • Type: Type of notification

The classes and types are presented below

Class 0. System

TypeNamePurposeData
0StatusSystem statusVersions, temperature, reset cause (in case of crash)
1Low-batteryLow battery detectedConsumption + battery voltage
2BLEBLE securely connectedSecurely connected/disconnected
3TamperTamper detectionCasing open/closed
4HeartbeatHeartbeat messageTemperature, last reset cause and configuration CRC
5ShutdownShutdown messageShutdown cause: 0 = none; 1 = user action; 2 = low battery
6Uplink bufferUplink replayThe uplink message is replayed using the special long-timestamp header

Class 1. SOS

TypeNamePurposeData
0SOS-onSOS activatedNone
1SOS-offSOS deactivatedNone

Class 2. Temperature

TypeNamePurposeData
0Temp_highCritically high temperature reachedTemperature
1Temp_lowCritically low temperature reachedTemperature
2Temp_normalTemperature back to normalTemperature

Class 3. Accelerometer

TypeNamePurposeData
0Motion_startMotion start detectedNone
1Motion_endMotion end detectedAcceleration vector + motion percent
2ShockShock detectedAcceleration vector + GADD index + nb shock

Class 4. Network

TypeNamePurposeData
0Main_upMain network is up.Network data
1Backup_upMain network down. Backup is up.Network data

Class 5. Geozoning

TypeNamePurposeData
0EntryEntry beacon detectedBeacon ID or MAC address
1ExitExit beacon detectedBeacon ID or MAC address
2In_hazardEntry in a hazardous area detectedBeacon ID or MAC address
3Out_hazardExit from a hazardous area detectedBeacon ID or MAC address
4Meeting_pointMeeting point detectedBeacon ID or MAC address

Class 6. Uplink replay

The uplink replay notification class uses the special long-timestamp header, followed by the replayed uplink payload.

System status notification

The status is transmitted with a common section and a page section. Pages are used to publish information that does not require frequent updates, using a round robin method. Each time a status notification is sent, the page number increments until the last page is reached. Once the last page is sent, the page identifier resets to 0.

Common part

1 byte1 byte
Current temperatureReset cause and page ID
b7- 0b7-3b2-0
[-126 .. +127]Reset causePage ID

Note

  • Current temperature. Current temperature. Signed integer (2's complement) expressed in degree Celsius.

  • Reset cause:

    • AOS_ERROR_NONE (0) : No error.
    • AOS_ERROR_HW_NMI (1): Hardware non-maskable interrupt fault.
    • AOS_ERROR_HW_FAULT (2): Hardware fault.
    • AOS_ERROR_HW_MPU (3): Hardware MPU fault.
    • AOS_ERROR_HW_BUS (4): Hardware bus fault.
    • AOS_ERROR_HW_USAGE (5): Hardware usage fault.
    • AOS_ERROR_HW_IRQ (6): Unexpected interruption.
    • AOS_ERROR_HW_WDOG (7): Watchdog
    • AOS_ERROR_HW_BOR(8): Brown out reset
    • AOS_ERROR_SW_ST_HAL_ERROR(9): ST HAL error.
    • AOS_ERROR_SW_FREERTOS_ASSERT (10): FreeRTOS assertion.
    • AOS_ERROR_SW_FREERTOS_TASK_OVF (11):FreeRTOS Task stack overflow.
    • AOS_ERROR_SW_BLE_ASSERT(12). BLE core assertion
    • AOS_ERROR_SW_RTC_FAIL (13): Real Time Clock peripheral fails to start.
    • AOS_ERROR_SW_LORA_FAIL (14): LoRa unrecoverable failure
    • AOS_ERROR_SW_DEBUG (15): Used to debug
    • AOS_ERROR_SW_APP_START (16): Application assertions.
  • Page Id

    • Max page ID = 1 for LoRaWAN only trackers (2 pages).
    • Max page ID= 3 for Cellular Combo tracker (4 pages).

Page 0. General status

3 bytes4 bytes3 bytes2 bytes
AT3 versionConfiguration versionLR-HW versionHW batch ID
b23-16b15-8b7-0b31-24b23-16b15-8b7-0b23-16b15-8b7-0b15-8b7-0
MmiMmiuHWtypeFWMSBLSB
2 bytes1 byte1 byte1 byte2 bytes2 bytes
HW BOM ID

Max
temperature

Min
temperature
Motion %

Battery
voltage (mV)

Total
consumption (mAh)

b15-8b7-0b7-0b7-0b7-0b15-8b7-0b15-8b7-0
MSBLSB[-126 .. +127][-126 .. +127][0..100]MSBLSBMSBLSB
2 bytes2 bytes2 bytes2 bytes2 bytes2 bytes

Cellular
consumption (mAh)

GNSS
consumption (mAh)

WIFI
consumption (mAh)

LR GNSS
consumption (mAh)

BLE
consumption (mAh)

MCU
consumption (mAh)

b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0
MSBLSBMSBLSBMSBLSBMSBLSBMSBLSBMSBLSB
4 bytes
Config CRC
b31-24b23-16b15-8b7-0
MSBLSB

Notes

  • M: AT3 major version (for firmware version and configuration version)
  • m: AT3 minor version (for firmware version and configuration version)
  • i : AT3 iteration (for firmware version and configuration version)
  • u: AT3 configuration user byte
  • HW: Hardware version
  • Type: Type of hardware
  • FW: Firmware version
  • Max temperature. Max temperature since the beginning of the product life. Signed integer (2's complement) expressed in degree Celsius.
  • Min temperature. Min temperature since the beginning of the product life. Signed integer (2's complement) expressed in degree Celsius.
  • Battery voltage: Current battery voltage (mV)
  • Consumption fields. All consumption fields are in mAh

Page 1. Almanac status

2 bytes4 bytes1 byte2 bytes5 bytes1 byte

LR1110
GPS
date

LR1110
GPS
outdated /

LR1110
GPS
good

LR1110
BEIDOU
date

LR1110 BEIDOU
outdated

LR1110 BEIDOU
good

b15-8b7-0b31-0b7-0b15-8b7-0b39-0b7-0
MSBLSBBit field[0..31]MSBLSBBit field[0-37]
2 bytes2 bytes2 bytes2 bytes2 bytes2 bytes

GNSS
GPS
date

GNSS
GPS
outdated

GNSS
BEIDOU
date

GNSS
BEIDOU
outdated

GNSS BEIDOU
good

GNSS BEIDOU
good

b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0b15-8b7-0
MSBLSBMSBLSBMSBLSBMSBLSBMSBLSBMSBLSB

Notes

  • LR1110/GNSS GPS almanac date. Highest date ( GPS week number) over all GPS almanac entries.
  • LR1110/GNSS GPS outdated. Bitmap of outdated entries in the GPS almanac.
  • LR1110/GNSS GPS good. Number of entries matching the highest date.
  • LR1110/GNSS BEIDOU almanac date. Highest date ( GPS week number) over all BEIDOU almanac entries.
  • LR1110/GNSS BEIDOU outdated. Bitmap of outdated entries in the BEIDOU almanac.
  • LR1110/GNSS BEIDOU good. Number of entries having the highest date.

Each bit i of the bitmap represents satellite i (1 << i).

Page 2. Cellular part I

6 bytes21 bytes16 bytes
FW versionICCIDIMSI
b47-40b39-32b31-24b23-16b15-0AsciiAscii
branchmodeimagedeliveryrelease

Note that the ICCID and IMSI are available only if a cellular connection has been established. Otherwise, these values are set to 0.

Page 2. Cellular part II

33 bytes16 bytes
EUICCIDIMEISV
AsciiAscii

Notes

  • The EUICCID is available only if a cellular connection using the eSIM has been established. Otherwise, this value is set to 0 (33 null bytes).
  • The IMEISV is not yet supported. It is set to a null value (16 NULL bytes).

Low battery notification

2 bytes2 bytes
ConsumptionBattery voltage
b15-8b7-0b15-8b7-0
MSBLSBMSBLSB

Notes

  • Consumption is in mAh
  • Battery voltage is in mV

BLE notification

1 bytes
State
b7-1b0
RFUstate

Notes

  • State: 0: Disconnected, 1: Connected
  • RFU: Reserved for future use

Tamper notification

State
1 byte
b7-1b0
RFUstate
note
  • State: 0: Casing closed, 1: Casing open
  • RFU: Reserved for future use

Heartbeat notification

TemperatureInfoConfig CRC
b7-b0b7-b3b2-b0b31-b24......b7-b0
Reset causeRFUMSB......LSB
note
  • CRC is set to 0xFFFFFFFF if not available
  • RFU: Reserved for future use

Shutdown notification

Shutdown cause
1 byte
note

Shutdown causes:

  • shutdown_cause_none = 0
  • shutdown_cause_user_action = 1
  • shutdown_cause_low_battery = 2

Data buffering notification The data part of the notification is formatted as follows

StatusOldest timestampLatest timestamp
1 byte4 bytes4 bytes
b7-0b31-24......b7-0b31-24......b7-0
MSBLSBMSBLSB

Where:

  • Oldest timestamp: Timestamp of the oldest entry
  • Latest timestamp: Timestamp of the latest entry
  • Status of the uplink replay.
    • 0: Success. Dump complete
    • 1: Timeout. Timeout occurred.
    • 2: No data found.

Class SOS

No data. The SOS status is in the basic header.

Class temperature

Temperature critical-high/normal/critical-low notification

The 3 types of notification are : Critically high temperature / Critically low temperature / Return to normal temperature range

Each of these notifications includes the temperature which triggered the notification.

1 byte
Temperature
b7-0
[-126 .. +127]

The temperature is signed (2's complement coding) and is in degrees Celsius.

Class accelerometer

The data part of this notification class depends on the type.

Motion start

No data

Motion end

2 bytes2 bytes2 bytes1 byte
Acceleration XAcceleration YAcceleration ZMotion %
b15-8b7-0b15-8b7-0b15-8b7-0b7-0
MSBLSBMSBLSBMSBLSB[0..100]

The 3 axis measurement of gravity after the device has stopped allows to infer the angular position of the device. They are expressed as mg signed values (2's complement coding)

Shock

2 bytes2 bytes2 bytes1 byte1 byte
Acceleration XAcceleration YAcceleration ZGADD indexNb shocks
b15-8b7-0b15-8b7-0b15-8b7-0b7-0b7-0
MSBLSBMSBLSBMSBLSB[0..100][1-255]

The 3 axis measurement of maximum shock accelerations are expressed in mg signed values (2's complement coding), allowing to infer the direction of the shock.

Body damage is more accurately represented by the Gadd index, which integrates acceleration intensity over total shock duration.

Class network

The data part of this class of notifications does not depend on the type and is the following:

1 byte1 byte1 byte
Active networkMain networkbackup network
b7-0b7-0b7-0
[0..2][0..2][0..2]

Each byte encodes a network technology:

  • 0: No network
  • 1: LoRaWAN network
  • 2: Cellular network in low power mode
  • 3: Cellular network in high power mode

Class geozoning

Not yet supported

Positions

The position messages can be sent in either single-frame mode or multi-frames mode.

Position header

The basic position header is defined as follows:

Single frame mode

Bytes [0-3]Bytes 4-7Bytes [8-variable]
Basic header (Type = 2)Position headerData

Multi-frame mode

Bytes [0-4]Byte 5-8Bytes [9-variable]
Extended header (Type = 2)Position headerData

The position header is defined as follows:

Position header 4 bytes
InformationExtended infoTriggers (2 bytes)
b7b6-5b4-0b7-4b3-0b15-b0
MStatusPosition typeRFUM-cntTrigger bit-map

Position header

Information

  • b7: M. Motion bit. Set if a motion event has been detected since the transmission of the previous position payload.
  • b6-5: Status. Status of the position
    • 0 -- Success. Data contains the position.
    • 1 -- Timeout. Max time allowed to acquire the position. Optional data.
    • 2 -- Failure. Position acquisition failed for other reasons. Data contains failure reason or no data.
    • 3 -- Not-solvable: The acquisition has been completed but is not solvable (WIFI, BLE or AGNSS). Optional data.
  • b4-0: Position type
    • 0 -- LR1110 GNSS formatted Nav1
    • 1 -- LR1110 GNSS Semtech Nav1
    • 2 -- LR1110 GNSS Semtech Nav 2
    • 3 -- WIFI
    • 4 - BLE scan1 (report mode: MAC-address)
    • 5 -- BLE scan1 (report mode: Short IDs)
    • 6 -- BLE scan1 (report mode Long IDs)
    • 7 - BLE scan2 (report mode: MAC-address)
    • 8 -- BLE scan2 (report mode: Short IDs)
    • 9 -- BLE scan2 (report mode Long IDs)
    • 10 - MT3333 GNSS fix
    • 11 -- MT3333 LP-GNSS

Extended info

  • b7-4: RFU (Reserved For Future Use)
  • b3-0: M-cnt. 4-bit motion counter. Increments if a motion event has been detected since the transmission of the previous position payload. The counter rolls over once the max value is reached.

Note:

This 4-bit motion counter allows the geolocation back-end application to detect whether there has been motion between 2 successive
geolocation uplinks by comparing the value of the motion counter with its previously received value. This works even if we have lost up to
14 consecutive in-motion uplinks, and any number of static uplinks.
This enables the static position averaging filters to reset properly
if the location of the tracker has changed.

In order to work properly, a reliable deduplication algorithm should
be implemented in order to avoid comparing the counter value with the same value from a packet transmitted multiple times (custom
retransmit policy). In AT3, this can be based on the value of the
basic header 2-byte timestamp field.

Trigger

Bit-field providing the geolocation triggers that were active for this position. Refer to the geolocation manager section for the bit meaning.

LR1110 GNSS Formatted Nav1

This position message can carry up to 10 satellite information fields. The multi-frame format can be used if there are more than 10 satellites or the user trigerred multiple scans.

TimeSat 1 infoSat 2 info
4 bytes4 bytes4 bytes
-b31-30b29-24b23-22b21-0Same as sat 1
-CIDCNPRNSame as sat 1

Time : LR1110 SW Time (TOW) in microseconds, MSB first (big endian).

b31-20b19- 0
second in the hourmicroseconds

Sat x info Uses the same encoding as for the MT3333 GNSS

  • b31-30: C. Constellation:
    • 0 -- GPS
    • 1 -- BEIDOU
    • 2, 3 - Spare
  • b29-24: ID. Satellite identifier starting at 0 regardless of the constellation type.
  • b23-22: CN. Carrier to noise information
    • 3 -- C/N greater than 34 dB
    • 2 -- C/N in range [28-33] dB
    • 1 - C/N in range [22-27] dB
    • 0 - C/N less than 21 dB
  • b21-0: PRN. Pseudo range value. Coded for a full scale of 1ms shifted by 2 to the right.

LR1110 GNSS Semtech Nav2

The data part is the actual data payload received from the LR1110. It is encoded and only Semtech (or licensed users like Abeeway) can decode it. It should be forwarded as-is to the Semtech cloud.

The multi-frame format can be used. In this case each frame carries a single scan.

WIFI

This uplink message can carry up to 6 BSSIDs per frame. To carry more BSSIDs, the multi-frame will be used if the payload size requires it.

Payload format

7 bytes7 bytes
BSSID 1 infoBSSID 2 info
MAC address (6 bytes)1 byteSame as BSSID 1
MSBLSBRSSISame

Note

The RSSI is a negative value (2's complement) carrying the Received Signal Strength Information (in dB).

To fit the LoRa maximum payload size in the worst condition, the number of BSSI per frame is limited to 6. Above this value, the multi-frame is used.

BLE scan. MAC address

This uplink message can carry up to 6 beacon information per frame. To carry more beacons, the multi-frame can be used.

Payload format

7 bytes7 bytes
Beacon 1 infoBeacon 2 info
Identifier (6 bytes)1 byteSame as Beacon 1
MSBLSBRSSISame

Notes

  • The identifier is the MAC address if the report type is MAC address, otherwise it is 6 bytes extracted as the beacon identifier.
  • The RSSI is a negative value (2's complement) carrying the Received Signal Strength Information (in dB).
  • To fit the LoRaWAN maximum payload size in the worst condition, the number of Beacon info per frame is limited to 6. Above this value, the multi-frame is used.

BLE scan. Short ID

This uplink message can carry up to 14 beacon information fields per frame. To carry more beacons, the multi-frame can be used.

Payload format

3 bytes3 bytes3 bytes
Beacon 1 infoBeacon 2 infoBeacon 3 info
Beacon ID (2 bytes)1 byteSame as beacon 1Same as beacon 1
MSBLSBRSSISame as beacon 1Same as beacon 1

Note

The RSSI is a negative value (2's complement) carrying the Received Signal Strength Information (in dB).

To fit the LoRaWAN maximum payload size in the worst conditions, the number of Beacon info per frame is limited to 14. Above this value, the multi-frame is used.

BLE scan. Long ID

This uplink message can carry up to 2 beacon information fields per frame. To carry more beacons, the multi-frame format can be used.

Payload format

17 bytes17 bytes
Beacon 1 infoBeacon 2 info
Beacon ID (16 bytes)1 byteSame as Beacon 1
MSBLSBRSSISame

Note

The RSSI is a negative value (2's complement) carrying the Received Signal Strength Information (in dB).

To fit the LoRaWAN maximum payload size in the worst condition, the number of Beacon info per frame is limited to 2. Above this value, the multi-frame is used.

MT3333 GNSS fix

This uplink message carries a GNSS fix or the GNSS satellites tracking if the fix failed.

Payload format in case of success

4 bytes4 bytes2 bytes2 bytes2 bytes1 byte1 byte
LatitudeLongitudeAltitudeCOGSOGEHPEQuality
MSBLSBMSBLSBMSBLSBMSBLSBMSBLSB--

Notes

  • The latitude the longitude are signed value (2's complement) and expressed with a unit of 10^-7^ degree.
  • The altitude is signed and expressed in meters.
  • COG: Course Over Ground expressed in 1/100 of degrees
  • SOG: Speed Over Ground expressed cm/second
  • EHPE is encoded as follows:
Coded valueEHPE in meters
0 – 2500 – 250 meters
251250 < EHPE < 500
252500 < EHPE < 1000
2531000 < EHPE < 2000
2542000 < EHPE < 4000
255EHPE > 4000
  • Quality: Fix quality coded as follow:
    • Bits b7-5: Quality:
      • 0 -- invalid: The GNSS gave a fix but consider it as invalid
      • 1 -- valid: The GNSS gave a fix but has no idea if it is a 2D or 3D
      • 2 -- fix 2D: Fix valid for 2 dimension (latitude and longitude valid).
      • 3 -- fix 3D Fix valid for 3 dimension (latitude, longitude and altitude valid).
    • Bits b4-0: Number of satellites used for the fix. Max 12

Payload format in case of failure or timeout

1 byte2 bytes2 bytes...
StatusSat 0Sat 1...
-svIdInfosvIdInfo...

Notes

  • The Status field is coded as follow:

    • b7 -- b5: Cause

      • 0: T0 timeout

      • 1: T1 timeout

      • 2: acquisition timeout

    • b4 -- b0: Number of satellites seen.

  • The info field is coded on 1 byte and is formatted as follow:

    • b7-b6: Constellation

      • 0: GPS

      • 1: GLONASS

      • 2: BEIDOU

      • 3: GALILEO

    • b5-0: C/N0 in dBm

MT3333 LP-GNSS

This position message can carry up to 9 satellites information fields. The multi-frame format can be used. In this case each frame carries a single scan.

4 bytes4 bytes4 bytes
TimeSat 1 infoSat 2 info
-b31-30b29-24b23-22b21-0Same as sat 1
-CIDCNPRNSame

Time : MT333 SW Time (TOW) in microseconds. It is sent MSB first (big endian).

Bits31 - 2019 - 0
DescriptionNb seconds in the hourNb microseconds

Sat x info. Coded the same way than LR1110 NAV1 (with bit 21-19 used).

  • b31-30: C. Constellation:

    • 0 -- GPS
    • 1 -- BEIDOU
    • 2, 3 - Spare
  • b29-24: ID. Satellite identifier starting at 0 regardless the constellation type.

  • b23-22: CN. Carrier to noise information

    • 3 -- C/N greater than 34 dB
    • 2 -- C/N in range [28.. 33] dB
    • 1 - C/N in range [22..27] dB
    • 0 - C/N less than 21 dB
  • b21-0: PRN. Pseudo range value. Coded for a full scale of 1ms shifted by 2 to the right.

Device queries

These uplink messages expect a response. They are always sent in single-frame mode.

The device queries are formatted as follows.

Bytes [0-3]Byte 4Bytes [5-variable]
Basic header (Type = 3)Query headerData

Query header

  • b7-b5: Spare bits
  • b4-0: Query type:
    • 0 -- Aiding-position. The aiding position is needed by the tracker. No data.
    • 1 -- Update system time. The system time update is needed. No data
    • 2 -- Update GPS almanac. GPS almanac entries need to be refreshed. Data contains the list of satellites for which the update is needed.
    • 3 -- Update BEIDOU almanac. BEIDOU almanac entries need to be refreshed. Data contains the list of satellites for which the update is needed.

Echo-request

This query is used to probe the cellular network. It is only used for the cellular network (For LoRaWAN, AT3 uses the LoRaWAN link-check requests).

| Data part | | 1 byte | | Sequence number|

Note The tracker increments the sequence number for each transmission. The echo reply is expected to echo the same sequence number.

Update GPS almanac

The tracker will send this network assistance query each time the percentage of stale almanac entries exceeds the threshold configured in thecore_almanac_outdated_ratio parameter

Several SVs almanacs may be requested at a time. The data part is a list of SV identifiers defined as follows:

1 Byte1 Byte...
SV ID1 1 [0..31]SV ID 2 [0..31]...

Notes

  • SV ID means Space Vehicle identifier. The first satellite identifier is 0.
  • Due to the limited payload size on the LoRa network (EU868, DR0-2, Max: 59 bytes), only 3 entries can be updated in a downlink. So the number of almanac entries requested in a single request is limited to 3.

Update BEIDOU almanac

The tracker will send this network assistance query each time the percentage of stale almanac entries exceeds the threshold configured in thecore_almanac_outdated_ratio parameter

Several SVs almanacs may be requested at a time. The data part is a list of SV identifiers defined as follow:

1 Byte1 Byte...
SV ID1 [0..34]SV ID 2 [0..34]...

Note

  • SV ID means Space Vehicle identifier. The first satellite identifier is 0.
  • Due to the limited payload size on the LoRa network (EU868, DR0-2, Max: 59 bytes), only 3 entries can be updated in a downlink. So the number of almanac entries requested in a single request is limited to 3.

Responses

These messages carry the responses to network requests. The multi-frame format can be used to segment long responses.

Single frame mode

Bytes [0-3]Byte 4Bytes [5-variable]
Basic header (Type = 4)Response headerData

Multi-frame mode

Bytes [0-4]Byte 5Bytes [6-variable]
Extended header (Type = 4)Response headerData

Response header

Generic configuration set response.

This is the response to the Generic configuration set request.

The data part can acknowledge the modification of up to 16 parameters.

4 Bytes3 Bytes3 Bytes...
CRCC-IDL-IDStatusC-IDL-IDStatus...
  • CRC. The 4 lowest bytes of the global configuration CRC.
  • C-ID. Parameter class identifier
  • L-ID: Local parameter identifier
  • Status. Local status for the parameter.
    • 0 -- Success
    • 1 -- Not found
    • 2 -- Below lower bound. For string and byte-array, length below the minimum
    • 3 -- Above higher bound. For string and byte-array, length above the maximum
    • 4 -- Bad value. Value in acceptable range but not is not supported.
    • 5 - Type mismatch
    • 6 -- Operation error (operation failure)
    • 7 -- Read-only variable.

Parameter class configuration set response

This is the response to the Parameter class configuration set request.

The data part acknowledge the modification of up to 24 parameters.

1 byte2 Bytes2 Bytes...
C-IDL-IDStatusL-IDStatus...
  • C-ID. Parameter class identifier
  • L-ID: Local parameter identifier
  • Status. Local status for the parameter.
    • 0 -- Success
    • 1 -- Not found
    • 2 -- Below lower bound. For string and byte-array, length below the minimum
    • 3 -- Above higher bound. For string and byte-array, length above the maximum
    • 4 -- Bad value. Value in acceptable range but not is not supported.
    • 5 -- Type mismatch
    • 6 -- Operation error (operation failure)
    • 7 -- Read-only variable.

Generic configuration get response

This is the response to the Generic configuration get. The data part consists of a list of parameters belonging to any parameter classes. The multi-frame format can be used. Note that for some parameters, the size is variable. So it is advised to avoid requesting too many parameters at a time.

Parameters description:

Parameter entry
3 BytesVariable...
C-IDL-IDS/TData...
  • C-ID Parameter class identifier
  • L-ID: Local parameter identifier
  • S/T: Parameter size and type
    • Bit 7-3: Variable size
    • Bit 2-0: type
      • 0 -- Deprecated.
      • 1 -- Integer 32 bits
      • 2 -- Floating point (4 bytes)
      • 3 -- ASCII string
      • 4 -- Byte array
      • 5 - Error
  • Data: Variable data part
    • Deprecated. No data.
    • Integer 32 bits. 4 bytes in big endian (MSB first)
    • Floating point. Single precision, 4 bytes n big endian (MSB first)
    • ASCII string. Max 31 characters. It does not include the NULL char.
    • Byte array. Max 32 bytes. For 32 bytes, the parameter size will be 0.

Parameter class configuration get response

This is the response to the Parameter class configuration get request. The data part consists of a list of parameters belonging to any classes. The multi-frame format can be used. Note that for some parameters, the size is variable. The total response size is limited by the network MTU, therefore avoid requesting too many parameters at a time.

The data part starts with the parameter class identifier, followed by a list of parameter entries.

Class Parameter entry 1Parameter entry 2...
1 byte1 byte1 byteVariable1 byte1 byteVariable...
C-IDL-IDS/TDataL-IDS/TData...
  • C-ID. Parameter class identifier
  • L-ID: Local parameter identifier
  • S/T Parameter size and type.
    • Bit 7-3: Parameter size
    • Bit 2-0: type
    • 0 -- Deprecated
    • 1 -- Integer 32 bits
    • 2 -- Floating point (4 bytes)
    • 3 -- ASCII string
    • 4 -- Byte array
    • 5 - Error
  • Data: Variable data part
    • Deprecated. No data
    • Integer 32 bits. 4 bytes in big endian (MSB first)
    • Floating point. Single precision, 4 bytes n big endian (MSB first)
    • ASCII string. Max 31 characters. It does not include the NULL char.
    • Byte array. Max 32 bytes. For 32 bytes, the parameter size will be 0.

BLE connectivity status response

This is the response to the BLE connectivity status request/ The data part consists of the BLE status.

| Status | | 1 Byte |

The status can take one of the following values:

Notes

  • 0 -- Idle: No connectivity activity.
  • 1 -- Advertising.
  • 2 -- Connected: the devices is connected but not bonded.
  • 3 -- Bonded: the devices is connected and bonded.

Configuration CRC response

This is the response to the Configuration CRC request. The data part consists of a list of configuration CRC groups matching the request.

If No groups defined in the request (bitmap null) The data part consists of the requested bitmap and global configuration CRC (all groups except the internal)

| 2 bytes | 4 Bytes | | Bitmap | CRC |

If groups have been defined in the request The data part consists of the requested bitmap, followed by group configuration CRCs truncated to the 3 lower bytes.

| 2 bytes | 3 bytes | 3 bytes | ... | | Bitmap | CRC1 | CRC2 | ... |

The bitmap has the same format as in the request, i.e. sum of 2group_identifier. For example if groups 1, 3 and 7 are requested, the bitmap will be 21 + 23 + 27 = 138 = 0x8A

Get sensor value response

This is the response to the Get sensor value request. The data part is the list of the sensor values requested.

| Sensor ID 1 | Value for ID1 | Sensor ID 2 | Value for ID2 | ... | | 1 byte | variable | 1 byte | variable | ... |

  • Sensor ID is the sensor identifier:

    • 0 : Reserved, do not use.
    • 1 : Accelerometer
  • Values serialization depends on the sensor:

    • Accelerometer: accelerations along each axis, as big endian signed integrers.

    | X axis (mg) | Y axis (mg) | Z axis (mg) | | 2 bytes | 2 bytes | 2 bytes |

Get information response

This is the response to the Get information request.

Generic response

TypeData
1 byteVariable

Where type matches the request's value.

Debug diagnostics after a crash

CodeStypeInformation
1 byte1 byteVariable

Where

  • Code: crash code, refer to status uplink page 0. A null value means that the device the last reset was not caused by an error/crash.
  • Stype:
    • 0: Hardware registers
    • 1: Error string

Abeeway support will request this diagnostics information in case you face unstabilty.

System status response

This is the response to the System status command.

The response data format is identical to the status notification format, see section System status notification.