Payload Format of tag L
Uplinks
BLE scan (Uplink, Port 3)
Depending on the number of detected BLE Beacon(s), the payload size varies between 11 - 46 bytes (1-6 APs). If there are more than 6 BLE Beacons the messages will be split into multiple uplinks.
The Total messages
indicate how many uplinks are expected.
and the #Message
indicates the current message out of all the uplinks.
Scan pointer
is incremented with every measurement.
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Scan PointerA 16-bit unsigned integer incremented with each measurement to uniquely identify the scan. | uint16 |
2 | 1 | Total messagesA single unsigned byte indicating the total number of uplink messages expected for this scan. | uint8 |
3 | 1 | #MessageThe current message number in the sequence of uplinks. | uint8 |
4-9 | 6 | Mac1 | 6 x uint8 |
10 | 1 | Rssi1 | int8 |
… | |||
6 | MacNMAC address of the detected BLE beacon(s), represented as six unsigned bytes. | 6 x uint8 | |
1 | RssiNSignal strength (RSSI) of the respective BLE beacon, represented as a signed byte. | int8 |
Current Config/Status Packet (Uplink, Port 4)
Byte | Size | Description | Format |
---|---|---|---|
0-3 | 4 | Localization interval while moving, IM32-bit unsigned integer for localization interval during motion (in seconds). | uint32, s |
4-7 | 4 | Localization interval while steady, IS32-bit unsigned integer for localization interval while stationary (in seconds). | uint32, s |
8-11 | 4 | Config/Status interval, IC32-bit unsigned integer for the interval between configuration updates (in seconds). | uint32, s |
12-13 | 2 | GPS timeout while waiting for fixMaximum wait time for a GNSS fix in seconds, represented as a 16-bit unsigned integer. If timeout is exceeded without a successful fix, it will stop the module and not send an uplink. | uint16, s |
14-15 | 2 | Accelerometer wakeup thresholdThe threshold for triggering the accelerometer, measured in mg. | uint16, mg |
16-17 | 2 | Accelerometer delayDelay after accelerometer trigger, in milliseconds. For a successful trigger the accelerometer must be triggered for this amount of time. Threshold break is examined between the first trigger and after delay expired. | uint16, ms |
18 | 1 | Device state (moving = 1, steady = 2)Device movement state (1 for moving, 2 for steady). | uint8 |
19-21 | 3 | Firmware version (major,;minor; patch)Three bytes representing major, minor, and patch versions. | 3 x uint8 |
22-23 | 2 | Hardware version (type; revision)Two bytes representing hardware type and revision. | 2 x uint8 |
24-27 | 4 | Battery “keep-alive” message interval, IBInterval for battery status messages in seconds. | uint32, s |
28-29 | 2 | Batch sizeNumber of messages batched together; every nth message is confirmed. If the confirmation is unsuccessful, it will deem the batch not delivered and will retry to deliver the batch later. | uint16 |
30-31 | 2 | Buffer sizeMaximum buffer size for storing data, in entries. Max 8128 entries. | uint16 |
Status[6:2]
Status is only sent after a Config Downlink as an acknowledgement in the next Uplink. 4 bit [6:3] conf_change_id plus 1 bit [2] for success (=1) or failure (=0). conf_change_id counter resets after reaching 15 (1111).
WiFi Packet (Uplink, Port 5)
Depending on the number of detected WiFi Access Points (AP), the payload size varies between 8 - 50 bytes (1-7 APs).
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Moving flag[0] (moving = 1)Status flags, including moving flag and configuration information. | uint8 |
1-6 | 6 | MAC1 | 6 x uint8 |
7 | 1 | Rssi1 | int8 |
… | |||
6 | MACNMAC address of detected WiFi Access Points. | 6 x uint8 | |
1 | RSSINSignal strength (RSSI) of respective WiFi Access Points. | int8 |
Button Alarm Packet (Uplink, Port 6)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | In case of a button-press 0x01 is sentSends 0x01 upon button press and it also triggers a location acquisition. | uint8 |
Upon button press, trigger a location acquisition process. (if it is not running already!)
WiFi with timestamp (Uplink, Port 7)
Depending on the number of detected WiFi Access Points (AP), the payload size varies between 12 - 47 bytes (1-6 APs).
Byte | Size | Description | Format |
---|---|---|---|
0-3 | 4 | Unix TS32-bit unsigned integer representing the timestamp of the scan. | uint32 |
4 | 1 | Status[6:2] + Moving flag[0] (moving = 1)Status flags and movement indicator. | uint8 |
5-10 | 6 | Mac1 | 6 x uint8 |
11 | 1 | Rssi1 | int8 |
… | … | ||
6 | MacNMAC address of detected WiFi Access Points. | 6 x uint8 | |
1 | RssiNSignal strength (RSSI) of respective WiFi Access Points. | int8 |
BLE current config (Uplink, Port 8)
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Scan intervalBLE scanning interval in seconds. | uint16, s |
2 | 1 | Scan timeDuration of BLE scan in seconds (range 0–180). | uint8, s [0..180] |
3 | 1 | Max beaconsMaximum number of beacons to report. | uint8 |
4 | 1 | Min. Rssi valueMinimum RSSI for filtering beacons. | int8 |
5-14 | 10 | Advertising name/eddystone namespace filterFilter criteria for beacon names or namespaces. | 10 x ASCII or 10 x uint8 |
15-16 | 2 | Accelerometer trigger hold timerHold time for the accelerometer trigger in seconds. | uint16, s |
17-18 | 2 | Accelerometer thresholdTrigger threshold for the accelerometer in mg. | uint16, mg |
19 | 1 | Scan mode0 for no filter, 1 for name filter, 2 for namespace filter. | 0 - no filter; 1 - advertised name filter 2 - eddystone namespace filter |
20-21 | 2 | BLE current configuration uplink intervalInterval for sending BLE configuration in seconds. | uint16, s |
GNSS (Uplink, Port 10)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Moving flag[0] (moving = 1)Status flags including moving flag. | uint8 |
1-4 | 4 | LatitudeGNSS latitude in micro-degrees. | int32, 1/1’000’000 deg |
5-8 | 4 | LongitudeGNSS longitude in micro-degrees. | int32, 1/1’000’000 deg |
9-10 | 2 | AltitudeAltitude in decimeters. | uint16, 1/10 meter |
11-14 | 4 | Unix TSTimestamp of the GNSS data. | uint32 |
15-16 | 2 | BatteryBattery voltage in millivolts. | uint16, mV |
17 | 1 | TTFTime it took to acquire a fix in seconds. | uint8, s |
18 | 1 | PDOPPosition dilution of precision (1/2 DOP). https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation) | uint8, 1/2 meter |
19 | 1 | #satellitesNumber of satellites used for the fix. | uint8 |
Battery Packet (Uplink, Port 15)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Low battery flag[0] (low = 1)Includes flags for status and a low battery indicator (1 if low). | uint8 |
1-2 | 2 | Battery voltageBattery voltage in millivolts. | uint16, mV |
Combined (Uplink, Port 51)
Combined uplink is used when there are ≤4 WiFi AP detected (7-28 extra bytes) && there is GNSS fix available && WiFi scanning is enabled.
TTF is the time it took the GNSS receiver to create a fix. We use this date to establish the timestamp for the WiFi scanning outcome. Timestamp for the WiFi scanning is TSGNSS – TTF + 10 seconds.
Depending on the number of detected WiFi Access Points (AP), the payload size varies between 27 - 48 bytes (1-4 APs).
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Low battery flag[0] (low = 1)Includes status flags and low battery flag. | uint8 |
1-4 | 4 | LatitudeGNSS latitude in micro-degrees. | int32, 1/1’000’000 deg |
5-8 | 4 | LongitudeGNSS longitude in micro-degrees. | int32, 1/1’000’000 deg |
9-10 | 2 | AltitudeAltitude in decimeters. | uint16, 1/10 meter |
11-14 | 4 | Unix TSTimestamp of GNSS data. | uint32 |
15-16 | 2 | BatteryBattery voltage in millivolts. | uint16, mV |
17 | 1 | TTFTime it took to acquire a fix in seconds. | uint8, s |
18 | 1 | PDOPPosition dilution of precision (1/2 DOP). https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation) | uint8, 1/2 meter |
19 | 1 | #satellitesNumber of satellites used for the fix. | uint8 |
20-25 | 6 | MAC1 | 6 x uint8 |
26 | 1 | RSSI1 | int8 |
… | |||
6 | MACNMAC address of detected WiFi Access Points. | 6 x uint8 | |
1 | RSSINSignal strength (RSSI) of respective WiFi Access Points. | int8 |
Buffered WiFi (Uplink, Port 105)
Depending on the number of detected WiFi Access Points (AP), the payload size varies between 14 - 49 bytes (1-6 APs).
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Buffer levelCurrent Buffer fill level indicating remaining unsent messages. | uint16 |
2-5 | 4 | Unix TSTimestamp of WiFi scan. | uint32 |
6 | 1 | Status[6:2] + Low battery flag[0] (low = 1)Includes flags for low battery and status. | uint8 |
7-12 | 6 | Mac1 | 6 x uint8 |
13 | 1 | Rssi1 | int8 |
… | |||
6 | MacNMAC address of detected WiFi Access Points. | 6 x uint8 | |
1 | RssiNSignal strength (RSSI) of respective WiFi Access Points. | int8 |
Buffered GNSS (Uplink, Port 110)
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Buffer levelCurrent Buffer fill level indicating remaining unsent messages. | uint16 |
2 | 1 | Status[6:2] + Low battery flag[0] (low = 1)Includes flags for low battery and movement. | uint8 |
3-6 | 4 | LatitudeGNSS latitude in micro-degrees. | int32, 1/1’000’000 deg |
7-10 | 4 | LongitudeGNSS longitude in micro-degrees. | int32, 1/1’000’000 deg |
11-12 | 2 | AltitudeAltitude in decimeters. | uint16, 1/10 meter |
13-16 | 4 | Unix TSTimestamp of GNSS data. | uint32 |
17-18 | 2 | BatteryBattery voltage in millivolts. | uint16, mV |
19 | 1 | TTFTime it took to acquire a fix in seconds. | uint8, s |
20 | 1 | PDOPPosition dilution of precision (1/2 DOP). https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation) | uint8, 1/2 meter |
21 | 1 | #satellitesNumber of satellites used for the fix. | uint8 |
Buffered Combined (Uplink, Port 151)
Depending on the number of detected WiFi Access Points (AP), the payload size varies between 29 - 50 bytes (1-4 APs).
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Buffer levelCurrent Buffer fill level indicating remaining unsent messages. | uint16 |
2 | 1 | Status[6:2] + Low battery flag[0] (low = 1)Includes status flags and low battery flag. | uint8 |
3-6 | 4 | LatitudeGNSS latitude in micro-degrees. | int32, 1/1’000’000 deg |
7 10 | 4 | LongitudeGNSS longitude in micro-degrees. | int32, 1/1’000’000 deg |
11-12 | 2 | AltitudeAltitude in decimeters. | uint16, 1/10 meter |
13-16 | 4 | Unix TSTimestamp of GNSS data. | uint32 |
17-18 | 2 | BatteryBattery voltage in millivolts. | uint16, mV |
19 | 1 | TTFTime it took to acquire a fix in seconds. | uint8, s |
20 | 1 | PDOPPosition dilution of precision (1/2 DOP). https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation) | uint8, 1/2 meter |
21 | 1 | #satellitesNumber of satellites used for the fix. | uint8 |
22-27 | 6 | Mac1 | 6 x uint8 |
28 | 1 | Rssi1 | int8 |
… | … | ||
6 | MacNMAC address of detected WiFi Access Points. | 6 x uint8 | |
1 | RssiNSignal strength (RSSI) of respective WiFi Access Points. | int8 |
Downlinks
Set Config Packet (Downlink, Port 128)
Default values for Batch size is 10, for the buffer size it is 8128 (maximum amount of data that can be buffered).
Maximum value for Batch size is 50. If Batch size is set to 0, buffering is disabled.
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | BLE advertisement (disable = 0, enable = 1)Enable/disable BLE advertisement (0 = disable, 1 = enable). | uint8 |
1 | 1 | GPS (disable = 0, enable = 1)Enable/disable GNSS during location acquisition (0 = disable, 1 = enable). | uint8 |
2 | 1 | WiFi (disable = 0, enable = 1)Enable/disable WiFi scanning during location acquisition (0 = disable, 1 = enable). | uint8 |
3-6 | 4 | Localization interval while moving, IMLocalization interval in motion, in seconds. This interval acts as a hold timer between accelerometer triggers, triggering motion. Operation is explained under functional description. | uint32, s |
7-10 | 4 | Localization interval while steady, ISLocalization interval when stationary, in seconds. | uint32, s |
11-14 | 4 | Heartbeat interval, IHInterval for sending heartbeat messages, in seconds. | uint32, s |
15-16 | 2 | GPS timeout while waiting for fixMaximum wait time for a GNSS fix in seconds, represented as a 16-bit unsigned integer. If timeout is exceeded without a successful fix, it will stop the module and not send an uplink. | uint16, s |
17-18 | 2 | Accelerometer wakeup thresholdThreshold in mg for accelerometer wakeup. | uint16, mg |
19-20 | 2 | Accelerometer delayDelay in milliseconds after wakeup. | uint16, ms |
21-24 | 4 | Battery “keep-alive” message interval, IBInterval for battery status updates in seconds. | uint32, s |
25-26 | 2 | Batch sizeNumber of messages batched together; every nth message is confirmed. If the confirmation is unsuccessful, it will deem the batch not delivered and will retry to deliver the batch later. | uint16 |
27-28 | 2 | Buffer sizeBuffer size (Byte 30-31, Size 2): Maximum buffer size for storing data, in entries. Max 8128 entries. | uint16 |
Buzzer Packet (Downlink, Port 129)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Time to buzz (buzzer off = 0)Duration for the buzzer to sound in seconds (0 = off). | uint8, s |
Off Packet (Downlink, Port 130)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x00 - Off; 0xDE - Erase flash and Off0x00 to turn off; 0xDE to erase flash and turn off. After that device can only be activated with a button press detailed in the getting started guide. | uint8 |
GPS Accuracy Booster (Downlink, Port 131)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Accuracy enhancementTime to run GNSS longer after the fix to enhance accuracy in seconds (0–59). | uint8, s [0..59] |
Erase flash (Downlink, Port 132)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x00 - Erase flash0x00 to erase the flash. | uint8 |
Enable/disable buzzer feedback upon magnet interaction (Downlink, Port 133)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x00 - diasble, 0x01 - enable | uint8 |
BLE config (Downlink, Port 134)
Payloads use big endian data encoding.
The Advertising name
filter string must be zero-terminated. (0x00). This condition does not apply to filtering enabled for eddystone namespace (Scan mode: 2)
Min RSSI value
is a signed integer and uses two’s complement for encoding.
If Min RSSI value
is 0, there is no filtering applied for RSSI.
If Max beacons
is 0, there will be no limit of how many beacons will be sent.
If Scan time
is 0, there is no scanning performed on the device.
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Scan intervalInterval for BLE scanning, in seconds. | uint16, s |
2 | 1 | Scan timeDuration of BLE scan in seconds (0–180). | uint8, s [0..180] |
3 | 1 | Max beaconsMaximum number of beacons reported. | uint8 |
4 | 1 | Min. Rssi valueMinimum RSSI for filtering. | int8 |
5-14 | 10 | Advertising name/eddystone namespace filterFilter for beacon names or namespaces. | 10 x ASCII or 10 x uint8 |
15-16 | 2 | Accelerometer trigger hold timerHold time for accelerometer trigger in seconds. | uint16, s |
17-18 | 2 | Accelerometer thresholdThreshold in mg for triggering the accelerometer. | uint16, mg |
19 | 1 | Scan modeMode for filtering (0 = no filter, 1 = name filter, 2 = namespace filter). | 0 - no filter; 1 - advertised name filter 2 - eddystone namespace filter |
20-21 | 2 | BLE current configuration uplink intervalInterval for sending BLE configuration data in seconds. | uint16, s |
BLE scan on-demand (Downlink, Port 135)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x01 - Trigger BLE scan0x01 to initiate a BLE scan immediately. | uint8 |
For support, please submit a ticket. We will provide support as promptly as possible.
For questions, please write an email to [email protected]