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 pointer | uint16 |
2 | 1 | Total messages | uint8 |
3 | 1 | #Message | uint8 |
4-9 | 6 | Mac1 | 6 x uint8 |
10 | 1 | Rssi1 | int8 |
… | |||
6 | MacN | 6 x uint8 | |
1 | RssiN | int8 |
Current Config/Status Packet (Uplink, Port 4)
Byte | Size | Description | Format |
---|---|---|---|
0-3 | 4 | Localization interval while moving, IM | uint32, s |
4-7 | 4 | Localization interval while steady, IS | uint32, s |
8-11 | 4 | Config/Status interval, IC | uint32, s |
12-13 | 2 | GPS timeout while waiting for fix | uint16, s |
14-15 | 2 | Accelerometer wakeup threshold | uint16, mg |
16-17 | 2 | Accelerometer delay | uint16, ms |
18 | 1 | Device state (moving = 1, steady = 2) | uint8 |
19-21 | 3 | Firmware version (major,;minor; patch) | 3 x uint8 |
22-23 | 2 | Hardware version (type; revision) | 2 x uint8 |
24-27 | 4 | Battery “keep-alive” message interval, IB | uint32, s |
28-29 | 2 | Batch size | uint16 |
30-31 | 2 | Buffer size | 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) | uint8 |
1-6 | 6 | MAC1 | 6 x uint8 |
7 | 1 | RSSI1 | int8 |
… | |||
6 | MACN | 6 x uint8 | |
1 | RSSIN | int8 |
Button Alarm Packet (Uplink, Port 6)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | In case of a button-press 0x01 is sent | 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 TS | uint32 |
4 | 1 | Status[6:2] + Moving flag[0] (moving = 1) | uint8 |
5-10 | 6 | Mac1 | 6 x uint8 |
11 | 1 | Rssi1 | int8 |
… | … | ||
6 | MacN | 6 x uint8 | |
1 | RssiN | int8 |
BLE current config (Uplink, Port 8)
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Scan interval | uint16, s |
2 | 1 | Scan time | uint8, s [0..180] |
3 | 1 | Max beacons | uint8 |
4 | 1 | Min. Rssi value | int8 |
5-14 | 10 | Advertising name/eddystone namespace filter | 10 x ASCII or 10 x uint8 |
15-16 | 2 | Accelerometer trigger hold timer | uint16, s |
17-18 | 2 | Accelerometer threshold | uint16, mg |
19 | 1 | Scan mode | 0 - no filter; 1 - advertised name filter 2 - eddystone namespace filter |
20-21 | 2 | BLE current configuration uplink interval | uint16, s |
GNSS (Uplink, Port 10)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Moving flag[0] (moving = 1) | uint8 |
1-4 | 4 | Latitude | int32, 1/1’000’000 deg |
5-8 | 4 | Longitude | int32, 1/1’000’000 deg |
9-10 | 2 | Altitude | uint16, 1/10 meter |
11-14 | 4 | Unix TS | uint32 |
15-16 | 2 | Battery | uint16, mV |
17 | 1 | TTF | uint8, s |
18 | 1 | PDOP | uint8, 1/2 meter |
19 | 1 | #satellites | uint8 |
Battery Packet (Uplink, Port 15)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Status[6:2] + Low battery flag[0] (low = 1) | uint8 |
1-2 | 2 | Battery voltage | 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) | uint8 |
1-4 | 4 | Latitude | int32, 1/1’000’000 deg |
5-8 | 4 | Longitude | int32, 1/1’000’000 deg |
9-10 | 2 | Altitude | uint16, 1/10 meter |
11-14 | 4 | Unix TS | uint32 |
15-16 | 2 | Battery | uint16, mV |
17 | 1 | TTF | uint8, s |
18 | 1 | PDOP | uint8, 1/2 meter |
19 | 1 | #satellites | uint8 |
20-25 | 6 | MAC1 | 6 x uint8 |
26 | 1 | RSSI1 | int8 |
… | |||
6 | MACN | 6 x uint8 | |
1 | RSSIN | 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 level | uint16 |
2-5 | 4 | Unix TS | uint32 |
6 | 1 | Status[6:2] + Low battery flag[0] (low = 1) | uint8 |
7-12 | 6 | Mac1 | 6 x uint8 |
13 | 1 | Rssi1 | int8 |
… | |||
6 | MacN | 6 x uint8 | |
1 | RssiN | int8 |
Buffered GNSS (Uplink, Port 110)
Byte | Size | Description | Format |
---|---|---|---|
0-1 | 2 | Buffer level | uint16 |
2 | 1 | Status[6:2] + Low battery flag[0] (low = 1) | uint8 |
3-6 | 4 | Latitude | int32, 1/1’000’000 deg |
7-10 | 4 | Longitude | int32, 1/1’000’000 deg |
11-12 | 2 | Altitude | uint16, 1/10 meter |
13-16 | 4 | Unix TS | uint32 |
17-18 | 2 | Battery | uint16, mV |
19 | 1 | TTF | uint8, s |
20 | 1 | PDOP | uint8, 1/2 meter |
21 | 1 | #satellites | 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 level | uint16 |
2 | 1 | Status[6:2] + Low battery flag[0] (low = 1) | uint8 |
3-6 | 4 | Latitude | int32, 1/1’000’000 deg |
7 10 | 4 | Longitude | int32, 1/1’000’000 deg |
11-12 | 2 | Altitude | uint16, 1/10 meter |
13-16 | 4 | Unix TS | uint32 |
17-18 | 2 | Battery | uint16, mV |
19 | 1 | TTF | uint8, s |
20 | 1 | PDOP | uint8, 1/2 meter |
21 | 1 | #satellites | uint8 |
22-27 | 6 | Mac1 | 6 x uint8 |
28 | 1 | Rssi1 | int8 |
… | … | ||
6 | MacN | 6 x uint8 | |
1 | RssiN | 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) | uint8 |
1 | 1 | GPS (disable = 0, enable = 1) | uint8 |
2 | 1 | WiFi (disable = 0, enable = 1) | uint8 |
3-6 | 4 | Localization interval while moving, IM | uint32, s |
7-10 | 4 | Localization interval while steady, IS | uint32, s |
11-14 | 4 | Hearbeat interval, IH | uint32, s |
15-16 | 2 | GPS timeout while waiting for fix | uint16, s |
17-18 | 2 | Accelerometer wakeup threshold | uint16, mg |
19-20 | 2 | Accelerometer delay | uint16, ms |
21-24 | 4 | Battery “keep-alive” message interval, IB | uint32, s |
25-26 | 2 | Batch size | uint16 |
27-28 | 2 | Buffer size | uint16 |
Buzzer Packet (Downlink, Port 129)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Time to buzz (buzzer off = 0) | uint8, s |
Off Packet (Downlink, Port 130)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x00 - Off; 0xDE - Erase flash and Off | uint8 |
GPS Accuracy Booster (Downlink, Port 131)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | Accuracy enhancement | uint8, s [0..59] |
Erase flash (Downlink, Port 132)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x00 - Erase 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 interval | uint16, s |
2 | 1 | Scan time | uint8, s [0..180] |
3 | 1 | Max beacons | uint8 |
4 | 1 | Min. Rssi value | int8 |
5-14 | 10 | Advertising name/eddystone namespace filter | 10 x ASCII or 10 x uint8 |
15-16 | 2 | Accelerometer trigger hold timer | uint16, s |
17-18 | 2 | Accelerometer threshold | uint16, mg |
19 | 1 | Scan mode | 0 - no filter; 1 - advertised name filter 2 - eddystone namespace filter |
20-21 | 2 | BLE current configuration uplink interval | uint16, s |
BLE scan on-demand (Downlink, Port 135)
Byte | Size | Description | Format |
---|---|---|---|
0 | 1 | 0x01 - Trigger BLE scan | uint8 |