Skip to main content

Payload Format of tag XL

Configurable Parameters - Device Defaults and Parameter Limits

All listed parameters must be stored in the NVM. All adjusted values through downlinks must remain the same after a device reset or power down.

Configuration NameDefault ValueMinimumMaximumUnitDescription
MOVING_INTERVAL30012065535secondsDefault value for localization fixes if the device is in motion.
STEADY_INTERVAL90012065535secondsDefault value for localization fixes if the device is not in motion.
HEARTBEAT_INTERVAL11255hoursHeartbeat message interval.
BLE_FWU_ENABLED101-BLE firmware update over the air enabled.
ADVERTISEMENT_FWU_INTERVAL305255secondsTime period during which the device opens the BLE advertisement for firmware updates.
GNSS_ENABLE101-GNSS scanning enabled.
WIFI_ENABLE101-WiFi scanning enabled.
ACCELERATION_ENABLE101-Acceleration sensor enabled.
ACCELERATION_SENSITIVITY300016000milli-gAcceleration sensor threshold.
ACCELERATION_DELAY1500100065535millisecondsAfter a threshold detection, the device must remain in movement for at least the specified time to be considered a valid movement.

Message Types

PortNameTypeDescription
151Settings DownlinkDownlinkContains a list of setter, getter and/or runner commands.
151Settings UplinkUplinkContains a list of device and/or runner settings. Sent in different situations.
192GNSS-NG Localization MessageUplinkOne or more of these messages are sent after a successful GNSS-NG scan.
197Wi-Fi Localization MessageUplinkSent after a successful Wi-Fi scan.


A settings uplink is sent on port 151. The TLV payload format shall be used. It is defined as:

TagLengthNumber of CommandsData
0x4CVariable number (uint8_t)Variable number (uint8_t)Commands in TLV format

The settings uplink contains one or more settings in its data section. These settings are again in TLV format and are either device or runner settings:

#Device SettingTagSizeDataFormat
1Device Flags0x400x01bit 0: BLE_FWU_ENABLED
bit 1: GNSS_ENABLE
bit 2: WIFI_ENABLE
bit 3: Set ACCELERATION_ENABLE
bit 4-7: RFU
bit field
2Asset Tracking Intervals0x410x04data 0: MOVING_INTERVAL
data 1: STEADY_INTERVAL
uint16_t[2]
3Acceleration Sensor Settings0x420x04data 0: ACCELERATION_SENSITIVITY
data 1: ACCELERATION_DELAY
uint16_t[2]
4HEARTBEAT_INTERVAL0x430x01Heartbeat interval in hoursuint8_t
5ADVERTISEMENT_FWU_INTERVAL0x440x01Value in secondsuint8_t
6Battery Voltage0x450x02Battery voltage in mVuint16_t
7Firmware Hash0x460x04First 4 bytes of SHA-1 hash of git commituint8_t[4]
#Runner SettingTagSizeDataFormat
1Run Alarm0x800x02data 0: Duration of started alarm in minutes (min: 0, max: 255)
data 1: Period of alarm beeps in seconds (min: 0, max: 255)
uint8_t[2]

GNSS-NG Localization Message

A GNSS-NG localization message is sent on port 192 (see Modem Service Protocol Payloads). One or more of these messages are sent after a successful GNSS-NG scan. They are generated by the Semtech's geolocation middleware. Please read the documentation of the geolocation middleware for more information.

Wi-Fi Localization Message

A Wi-Fi localization message is sent on port 197 (see Modem Service Protocol Payloads). This message is sent after a successful Wi-Fi scan. It is generated by the Semtech's geolocation middleware. Please read the documentation of the geolocation middleware for more information.

Message Usage

Welcome Messages

A welcome message is sent every time the device successfully joined to a LoRaWAN network (unconfirmed). It corresponds to a settings uplink for the tags [0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46]. Therefore, it contains all settings of the device including the battery voltage and the firmware hash.

Heartbeat Messages

A heartbeat message is sent at a fixed interval (unconfirmed). The HEARTBEAT_INTERVAL is stored in the settings. A heartbeat message corresponds to a settings uplink for the tag 0x45. Therefore, it only contains the battery voltage. If the HEARTBEAT_INTERVAL is adjusted via a settings downlink, a heartbeat message is sent immediately and the new interval is used for the next heartbeat message.

Settings Messages

For every received setting downlink, the device takes the actions for the received commands and sends a confirmed settings uplink. The actions are summarized in the following list:

  • Setter command: Is used to change the value of a setting. First, the range of the value is checked. If the value is in the valid range, it is stored in NVM. The current value of the setting is added to the settings uplink.
  • Getter command: Is used to read the value of a setting. The current value of the setting is added to the settings uplink.
  • Runner command: Is used to execute an action with the given runner settings. The applied runner settings are added to the settings uplink.

The settings uplink uses the same order of settings as the commands of downlink that it received before. For example, if the received downlink contains the commands with tags [0x22, 0x20, 0x44, 0x80], the uplink will contain the settings with tags [0x42, 0x40, 0x44, 0x80]. The value of the settings correspond to the value of the applied settings. If one of the commands in the downlink tried to set a setting to a value out of range, the corresponding setting will not be changed. Hence, the settings uplink will contain the last value that was applied successfully instead of the value that was requested by the downlink.

Settings Messages with Alarm Command

If a setting downlink contains the alarm runner command 0x80 an alarm with the specified duration and interval is started. The parameters are stored in RAM, not in NVM. The device exits the alarm mode after the specified duration has elapsed. A running alarm is stopped if an alarm downlink is received with either duration or interval set to 0 (or both). As for other settings downlinks, the device sends a confirmed settings uplink after a downlink with alarm runner command. The uplink confirms the duration and interval that were used to start or stop the alarm.



A settings downlink is sent on port 151. The TLV payload format shall be used. It is defined as:

TagLengthNumber of CommandsData
0x4CVariable number (uint8_t)Variable number (uint8_t)Commands in TLV format

The settings downlink contains one or more commands in its data section. These commands are again in TLV format and are either setter, getter or runner commands:

#Setter CommandTagSizeDataFormat
1Set Device Flags0x200x01bit 0: BLE_FWU_ENABLED
bit 1: GNSS_ENABLE
bit 2: WIFI_ENABLE
bit 3: Set ACCELERATION_ENABLE
bit 4-7: RFU
bit field
2Set Asset Tracking Intervals0x210x04data 0: MOVING_INTERVAL
data 1: STEADY_INTERVAL
uint16_t[2]
3Set Acceleration Sensor Settings0x220x04data 0: ACCELERATION_SENSITIVITY
data 1: ACCELERATION_DELAY
uint16_t[2]
4Set HEARTBEAT_INTERVAL0x230x01Heartbeat interval in hoursuint8_t
5Set ADVERTISEMENT_FWU_INTERVAL0x240x01Value in secondsuint8_t
#Getter CommandTagSizeDataFormat
1Get Device Flags0x400x00--
2Get Asset Tracking Intervals0x410x00--
3Get Acceleration Sensor Settings0x420x00--
4Get HEARTBEAT_INTERVAL0x430x00--
5Get ADVERTISEMENT_FWU_INTERVAL0x440x00--
6Get Battery Voltage0x450x00--
7Get Firmware Hash0x460x00--
#Runner CommandTagSizeData / DescriptionFormat
1Run Alarm0x800x02data 0: Duration of alarm in minutes (min: 0, max: 255)
data 1: Period of alarm beeps in seconds (min: 0, max: 255)
uint8_t[2]
2Reset device0x810x00Triggers a system reset on the device-