From 25ccbfa8f333ab1fa5e64b58427f2ea3afbecb1b Mon Sep 17 00:00:00 2001 From: Alex Vartic Date: Fri, 12 Dec 2025 16:14:03 +0200 Subject: [PATCH 01/11] draft documentation for smart label v2; at this moment just a copy of old smart label doc --- .../02 - Getting-started/06-smart-label-v2.md | 80 +++++++ .../06 - smart label v2/02_sw_spec.md | 195 ++++++++++++++++++ .../06 - smart label v2/03_pl_spec.md | 137 ++++++++++++ 3 files changed, 412 insertions(+) create mode 100644 docs/02 - Getting-started/06-smart-label-v2.md create mode 100644 docs/04 - Devices/06 - smart label v2/02_sw_spec.md create mode 100644 docs/04 - Devices/06 - smart label v2/03_pl_spec.md diff --git a/docs/02 - Getting-started/06-smart-label-v2.md b/docs/02 - Getting-started/06-smart-label-v2.md new file mode 100644 index 0000000..747e2ca --- /dev/null +++ b/docs/02 - Getting-started/06-smart-label-v2.md @@ -0,0 +1,80 @@ +--- +sidebar_label: smart label v2 +--- + +# Getting Started Guide for the Smart Label v2 + +### This document details the step-by-step instructions about how to set up the Truvami smart label. + +

+:bulb: Installation instructions are available in the [Smart Label Onboarding](https://github.com/user-attachments/files/22113240/Template.Smart.Label.Pilot.Onboarding.pdf) document

+

+ + + + + + + +#### 1. Charge the Truvami® smart label +The smart label uses the ambient indoor light as an energy source. The optimal exposure is around 1000 lux and a full charge can take up to 2 days. + +:warning: **Warning:** Exposing the label to direct sunlight of high intensity is not advised as the organic photovoltaic cells of the smart label are not designed for these conditions. + + +#### 2. Short press on the power button activates the tracker +After pressing the power button and releasing it, the LED will blink 5 times in green. After a few seconds, the LED will blink again 3 times in green to indicate a successful join to the network. + + + + + +``` +If the tracker cannot join the network, the LED will blink in red. +It will try automatically to join the network until being successful. +``` + + +#### 3. Click on the activation link that you have received by email + +It will take you to the https://dashboard.truvami.com page where you can set your +password. + + + + + +## Troubleshooting + +In the event that the device fails to join, consider the following list of workarounds: + +#### 1. Check your LoRaWAN coverage. +If applicable, plug in your LoRaWAN Gateway. In case you have your own network server, check on there if data is coming through. + +#### 2. Check if battery is fully charged: +Leave the smart label exposed to constant indoor lighting for one day and try step 2 again. + +#### 3. Reset the Smart Label + +To reset your Truvami Smart Label, you will need to switch it off and then switch it on again. + +##### Steps +###### Switch Off + +- Press and hold the power button firmly for 10 seconds. + +- Release the button – the device will power down. + +###### Switch On + +- Press the power button firmly for 1 second.. + +- The device will restart and is now reset. + +:::warning Support +

+For support, please submit a ticket. We will provide support as promptly as possible.

+

+ +[**Click here to open a new ticket**](https://truvami.com/service-request/) +::: diff --git a/docs/04 - Devices/06 - smart label v2/02_sw_spec.md b/docs/04 - Devices/06 - smart label v2/02_sw_spec.md new file mode 100644 index 0000000..dc27444 --- /dev/null +++ b/docs/04 - Devices/06 - smart label v2/02_sw_spec.md @@ -0,0 +1,195 @@ +--- +sidebar_label: Functional Description +--- + +# Functional Description + +## Overview + +Software for an energy-efficient, LoRaWAN class A, indoor/outdoor asset tracking device capable of performing localization, movement detection and temperature and battery measurement. Based on the FMLR-LR1110 and LBM4 stack. + +Main functionality: +- Localization through passive GNSS, WiFi sniffing, LoRa TDoA +- Indoor recognition with fall-back to WiFi sniffing +- Movment detection and configurable steady- and moving-intervals for localization triggering +- Temperature and battery voltage measurement with heartbeat uplink and configurable interval +- Configuration through LoRaWAN downlink +- LED for visual feedback of application state +- EU868/US915 compatibility + + + + + +## State Diagramm + + + + + + +## Class Diagram + + + +# Features Overview + +# Features + +## Functional requirements + +### F-001: Interval-triggered localization + +In absence of movements, localization will be performed after the interval __steady_interval_s__. After a movmement-triggered localization the interval used to trigger the next interval-triggered localization is __moving_interval_s__ instead. + +### F-002: Movement-triggered localization + +After the detection of a movement, localization is performed. Movements are detected with a LIS2DW accelerometer. The logic for a successfull movement detection is as follows: + +- Detected acceleration is greater than the configured threshold __acc_threshold__ for at least the configured delay __acc_delay_ms__. + +After a movement-triggered localization, the interval __moving_interval_s__ is used to trigger the following interval-triggered localization. An __hold_timer__ will ensure that a localization doesn't happen to shortly after the previous one. The __hold_timer__ is set to the minimum between __steady_interal_s__ and __moving_interval_s__. + +### F-003: Localization type selection + +The device starts by performing a WiFi sniffing. If the number of sniffed WiFi AP is less than __minAP__, then a pasive GNSS localization is attempted. Otherwise, the device sends the WiFi UL without attempting a GNSS localization. + +### F-004: Passive GNSS localization + +Localization can be performed using passive GNSS. The LoRa Basic Modem geolocation service 'GNSS scan & send' is used for this purpose with the following options: + +- MOBILE mode +- GPS & BEIDU +- SEND MODE, i.e. directly send the scan result if valid, __no buffering__. + +The default option is "SEND MODE". + +The almanac update is done autonmously, using the GNSS almanac demodulation service available with LR11xx radio chip (i.e. without using LoRa Cloud assistance). + +Refer to the LoRa Basic Modem geolocation services documentation for any further detail. + +### F-005: WiFi sniffing localization + +Localization can be performed using WiFi sniffing. The LoRa Basic Modem geolocation service 'WiFi scan & service' is used for this purpose with the following options: + +- SEND MODE, i.e. directly send the scan result, __no buffering__. + +Refer to the LoRa Basic Modem geolocation services documentation for any further detail. + +### F-006: LoRa TDoA localization + +Localization can also be performed using LoRa TDoA. This is handled completely in the cloud and no specific action must be performed by the software since any type of localization execution is followed by an uplink, needed in the cloud to perform LoRa TDoA localization. + +### F-007: Temperature and battery measurement + +Temperature and battery voltage are measured every interval __heartbeat_interval_h__ (unit: hours). For the temperature a SHT3X sensor is used. The Battery voltage is inferred by measuring the internal reference voltage of the MCU. Temperature and battery data are sent in the heartbeat uplink. + +### F-008: Sleep + +If the software is not performing localization, movement detection or measurements, the MCU is put to sleep until the next action needs to be executed. + +### F-009: Configuration parameters + +| Parameter | Type | Range | Description | Default value | +|----------------------------|--------|----------|-------------|-------------| +| __steady_interval_s__ | UINT16 | 0..65535 | Interval for localization trigger while steady, in __seconds__ |21600| +| __moving_interval_s__ | UINT16 | 0..65535 | Interval for localization trigger while moving, in __seconds__ |3600| +| __temperature_polling_interval_s__ | UINT16 | 0..65535 | Interval for polling temperature sensor, in __seconds__ |900| +| __temperature_uplink_hold_interval_s__ | UINT16 | 0..65535 | Interval for temperature measurement uplink if it is outside of threshold, in __seconds__ |3600| +| __temperature_upper_threshold__ | INT8 | -127..128 | Temperature upper threshold to yield uplink from polling in __°C__ | 40 | +| __temperature_lower_threshold__ | INT8 | -127..128 | Temperature lower threshold to yield uplink from polling in __°C__ | -5 | +| __heartbeat_interval_h__ | UINT8 | 0..255 | Interval for temperature and battery measurement and uplink, in __hours__ | 12 | +| __acc_threshold_mg__ | UINT16 | 0..65535 | Accelerometer threshold to start movement detection, in __mg__ | 300 | +| __acc_delay_ms__ | UINT16 | 0..65535 | Acceleration delay for detecting movement, in __ms__ | 1500 | +| __flags__ | UINT8 | | See flags description | 00111110 | +| __lic_100_percent__ | UINT16 | 0..4000 | LIC 100% percentage VCELL voltage in __mV__ | 3800 | +| __lic_80_percent__ | UINT16 | 0..4000 | LIC 80% percentage VCELL voltage in __mV__ | 3650 | +| __lic_60_percent__ | UINT16 | 0..4000 | LIC 60% percentage VCELL voltage in __mV__ | 3500 | +| __lic_40_percent__ | UINT16 | 0..4000 | LIC 40% percentage VCELL voltage in __mV__ | 3250 | +| __lic_20_percent__ | UINT16 | 0..4000 | LIC 20% percentage VCELL voltage in __mV__ | 2850 | +| __min_AP__ | UINT8 | 1..6 | Minimum amount of AP(s) to yield an uplink | 3 | + +__Flags__: +| Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 |Bits [2:0]| +|-------|-------|-------|-------|-------|----------| +|reserved|reserved|GNSS enable|WiFi sniffing enable|Acc enable|Data rate| + + +Data rate: + +000: DR5 (EU868 SF7), + +001: DR4 (EU868 SF8), + +010: DR3 (EU868 SF9, US915 SF7) [__DEFAULT__], + +011: DR2 (EU868 SF10, US915 SF8), + +100: DR1 (EU868 SF11, US915 SF9), + +101: DR0 (EU868 SF12), + +110: DR1-3 array (EU868 SF9-11, US915 SF7-9), + +111: ADR (SF7-12 for EU868) + +Duty cycling is enabled by default to conform with regulations. +### F-010: Power states + +In case the HW variant with the PV cell, LIC and harvester, different power states are introduced to preserve energy. + +__Approximate Energy-Based Voltage Levels (for LICs)__: + +| Energy % | Voltage | +|-------|-------| +|100%|3.8V| +|80%|3.65V| +|60%|3.5V| +|40%|3.25V| +|20%|2.85V| +|0%|2.5V| + + +__Power states:__ +* __Below 20%__: Send only 1 __Low Power battery uplink__ per day containing only voltage levels for the VCC and the PV Cell voltage +* __Between 20-40%__: Normal operation with accelerometer disabled (No location trigger by accelerometer) +* __Above 40%__: Normal operation + +VCC measurement is performed before power-intensive operations, eg. location acquisition, sending uplink, etc. + +### F-011: LoRaWAN Join procedure + +After Power-On the device will attemt to Join the LoRaWAN network with OTAA with a random __Spreading Factor__. + +In case the HW variant with the PV cell, LIC and harvester, the join procedure will not start until the LIC is at least 20% to avoid boot-loop. + +__Join back-off strategy__: (Standard LBMv4 strategy) + +* During first hour after first join try => duty cycle of 1/100 ie. 36s over 1 hour +* During the 10 hours following first hour after first join try => duty cycle of 1/1000 ie. 36s over 10 hours +* Following the first 11 hours after first join try => duty cycle of 1/10000 ie. 8.7s over 24 hours + + + +## External Interface Requirements + +### EI-001: Button + +The smart label has only one button: +- Press 10 sec to switch off the label +- Press 0.2 sec to switch on (5 green blinks) + +### EI-002: LED + +The LED on SmartLabel is used by the software as follows: +- Power on: 5 consecutive 100ms green blinks +- Join successful: 3 consecutive 100ms green blinks +- Join failed: 3 consecutive 100ms red blinks + +### EI-003: Radio Specification + +The device operates on: + - LoRaWan + - Region EU868, US915 + - Version 1.0.4 + - Class A diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md new file mode 100644 index 0000000..35b59be --- /dev/null +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -0,0 +1,137 @@ +--- +sidebar_label: Payload Format +--- + +# Payload Format of SmartLabel + +## Uplinks + +### Low Power battery uplink + +__Uplink port: 1__ + +Sent only once a day in case the energy level is below 20% + +| | Bytes[0:1]| Bytes[2:3]| +|------------------|------------|------------| +| __Value__ | Battery |Cell voltage| +| __Size [Bytes]__ | 2 | 2 | +| __Type__ | UINT16 | UINT16 | +| __Unit__ | mV | mV | + +### Temperature uplink + +__Uplink port: 2__ + +Temperature measurement uplink if the temperature is outside of thresholds + +| | Bytes[0:1] | Byte 2 | +|------------------|-------------|------------| +| __Value__ | Temperature | RH | +| __Size [Bytes]__ | 2 | 1 | +| __Type__ | UINT16 | UINT8 | +| __Unit__ | 0.01 C | 0.5 % | + + +### Heartbeat uplink + +__Uplink port: 11__ + +| | Bytes[0:1]| Bytes[2:3]| Bytes[4:5] | Byte 6 | +|------------------|------------|------------|-------------|------------| +| __Value__ | Battery |Cell voltage| Temperature | RH | +| __Size [Bytes]__ | 2 | 2 | 2 | 1 | +| __Type__ | UINT16 | UINT16 | UINT16 | UINT8 | +| __Unit__ | mV | mV | 0.01 C | 0.5 % | + + +### GNSS scan uplink + +__Uplink port: 192__ + +| | Byte 0 | Bytes[1:N] | +|------------------|--------|------------| +| __Value__ | Last of scan group and group token | NAV message | +| __Size [Bytes]__ | 1 | max 49 | +| __Type__ | UINT8 | UINT8 | + +### WiFi scan uplink + +__Uplink port: 197__ + +| | Byte 0 | Byte 1 | Bytes[2:7] | Byte 8 | Bytes[9:14] | ... | | | +|------------------|----------|----------|------------|----------|-------------|-----|----------|---------| +| __Value__ | 0x01 | AP1 RSSI | AP1 MAC | AP2 RSSI | AP2 MAC | | APN RSSI | APN MAC | +| __Size [Bytes]__ | 1 | 1 | 6 | 1 | 6 | | 1 | 6 | +| __Type__ | UINT8 | UINT8 | UINT8 | UINT8 | UINT8 | | UINT8 | UINT8 | + +### Configuration uplink + +__Uplink port: 4__ + +| | Byte 0 | Bytes[1:2] | Bytes[3:4] | Byte 5 | Bytes[6:7] | Bytes[8:9] | Bytes[10:11] | Bytes[12:13] | Byte 14 | Byte 15 | Byte 16 | Byte 17 | Byte 18 | Byte 19 | +|------------------|--------|--------|--------|-----------------|-----------------|--------------------|--------------------|----------------|-------------|-------------|-------------|-------------|-------------|-------------| +| __Value__ | flags |steady_interval_s|moving_interval_s|heartbeat_interval_h|acc_threshold_mg|acc_delay_ms |temperature_polling_interval_s|temperature_uplink_hold_interval_s|temperature_upper_threshold|temperature_lower_threshold|min_AP|Version_Major*|Version_Minor*|Version_Patch*| +| __Size [Bytes]__ | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 1 |1 |1 |1 | +| __Type__ | UINT8 | UINT16 | UINT16 | UINT8 | UINT16 | UINT16 | UINT16 | UINT16 | INT8 |INT8 |UINT8 | UINT8 | UINT8 | UINT8 | + +*Firmware version is only available in the first uplink after reset. + +### LIC Voltage levels uplink/downlink + +__Uplink/Downlink port: 150__ + +| | Bytes[0:1] | Bytes[2:3] | Bytes[4:5] | Bytes[6:7] | Bytes[8:9] | +|------------------|---------------|--------------|--------------|--------------|--------------| +| __Value__ |lic_100_percent|lic_80_percent|lic_60_percent|lic_40_percent|lic_20_percent| +| __Size [Bytes]__ | 2 | 2 | 2 | 2 | 2 | +| __Type__ | UINT16 | UINT16 | UINT16 | UINT16 | UINT16 | +| __Unit__ | mV | mV | mV | mV | mV | + + +## Downlinks + + +### Configuration downlink + + +__Downlink port: 128__ + +| | Byte 0 | Bytes[1:2] | Bytes[3:4] | Byte 5 | Bytes[6:7] | Bytes[8:9] | Bytes[10:11] | Bytes[12:13] | Bytes 14|Bytes 15|Bytes 16| +|------------------|--------|-----------------|-----------------|--------------------|--------------------|--------------|---------------|---------------------|---------|--------|--------| +| __Value__ | flags |steady_interval_s|moving_interval_s|heartbeat_interval_h|acc_threshold_mg |acc_delay_ms |temperature_polling_interval_s|temperature_uplink_hold_interval_s|temperature_upper_threshold|temperature_lower_threshold|min_AP| +| __Size [Bytes]__ | 1 | 2 | 2 | 1 | 2 | 2 | 2 |2 | 1 |1 |1 | +| __Type__ | UINT8 | UINT16 | UINT16 | UINT8 | UINT16 | UINT16 | UINT16 | UINT16 | INT8 |INT8 | UINT8 | + + +In case temperature_polling_interval_s, temperature_uplink_hold_interval_s are set to 0, the function is disabled + +### Reset downlink + +__Downlink port: 129__ + +| | Byte 0 | +|------------------|--------| +| __Value__ | 1 | +| __Size [Bytes]__ | 1 | +| __Type__ | UINT8 | + +### Turn-off downlink + +Command to turn the device off. Activation is only possible with button press afterwards. (Press for 0.2 seconds to enable, press for 10 seconds to disable) + +__Downlink port: 130__ + +| | Byte 0 | +|------------------|--------| +| __Value__ | 1 | +| __Size [Bytes]__ | 1 | +| __Type__ | UINT8 | + + + +## Nonfunctional Requirements + +### LoRaWan 1.0.4 Compliant + +The software needs to compliant with LoRaWan 1.0.4 Standard and fullfill the certification process From 4551e36e0c326a72dc3a286e8bf8cbcf61fe95e2 Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Wed, 17 Dec 2025 13:50:09 +0200 Subject: [PATCH 02/11] Revise payload format for Smart Label v2 Updated the payload format documentation for Smart Label v2, including uplink and downlink specifications. --- .../06 - smart label v2/03_pl_spec.md | 183 ++++++------------ 1 file changed, 59 insertions(+), 124 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 35b59be..80982fa 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -1,132 +1,67 @@ --- -sidebar_label: Payload Format +sidebar_label v2: Payload Format --- -# Payload Format of SmartLabel +# Payload Format of Smart Label v2 + +### Uplinks + +| Port | Name | Type | Description | +|------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| +| 150 | [Settings](#setting-uplink) | Uplink | Contains a list of TLV values, like heartbeat or other current settings. | +| 180 | [GNSS-NG Localization Message Steady](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | +| 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | +| 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful Wi-Fi scan. | + + +### Downlinks +| Port | Name | Type | Description | +|------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| +| 150 | [Settings](#setting-downlink) | Downlink | Contains a list of setter, getter and/or runner commands, in TLV format. | +| 155 | [Getter](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with speicified TLV IDs. | +| 160 | [Action](#action-downlink) | Downlink | Contains a list of TLVs with actions, like device reset and others. | + + +### TLV list of IDs + +| # | Name | Tag | Size | Format | Default | +|----|----------------------------------|------|------|------|--------| +| 1 | Device flags | 0x10 | 1 | - | - | +| 2 | Heartbeat interval | 0x14 | 1 | - | - | +| 3 | Asset tracking Intervals | 0x18 | 2 | - | - | +| 4 | Acceleration sensitivity | 0x1C | 2 | - | - | +| 5 | Movement detection plan | 0x20 | 5 | - | - | +| 6 | Battery | 0x28 | 3 | - | - | +| 7 | Reset data | 0x30 | 0x00 | - | - | +| 8 | Scan Counts | 0x4B | 0x00 | - | - | +| 9 | ADR | 0x4E | 0x00 | - | - | +| 10 | Advertisement BLE duration FWU | 0x24 | 2 | - | - | +| 11 | Heartbeat TLV list | 0x24 | 2 | - | - | +| 12 | Firmware hash | 0x2C | 0x00 | - | - | +| 13 | Localization action | 0x30 | 0x00 | - | - | +| 14 | Reset device action | 0x30 | 0x00 | - | - | +| 15 | Clear stored buffer | 0x30 | 0x00 | - | - | + + +### Configurable Parameters + +The following table lists the default values and limits of the configurable parameters. +The parameters are modifiable via settings downlinks. + +| Configuration Name | Default Value | Minimum | Maximum | Unit | Description | +|----------------------------|---------------|---------|-------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------| +| MOVING_INTERVAL | 300 | 120 | 65535 | seconds | Localization scan interval if the device is in motion. | +| STEADY_INTERVAL | 7200 | 120 | 65535 | seconds | Localization scan interval if the device is **not** in motion. | +| HEARTBEAT_INTERVAL | 6 | 1 | 255 | hours | Heartbeat message interval. | +| BLE_FWU_ENABLED | 1 | 0 | 1 | - | BLE firmware update over the air enabled. | +| ADVERTISEMENT_FWU_INTERVAL | 30 | 5 | 255 | seconds | Time period during which the device opens the BLE advertisement for firmware updates. | +| GNSS_ENABLE | 1 | 0 | 1 | - | GNSS scans enabled. | +| WIFI_ENABLE | 1 | 0 | 1 | - | Wi-Fi scans enabled. | +| ACCELERATION_ENABLE | 1 | 0 | 1 | - | If enabled, localization scans are triggered if the device is in motion (based on the acceleration sensor data). | +| ACCELERATION_SENSITIVITY | 300 | 0 | 16000 | milli-g | Acceleration sensor threshold. | +| ACCELERATION_DELAY | 1500 | 1000 | 65535 | milliseconds | The device must remain in motion for at least the specified time to trigger a localization scan. | -## Uplinks -### Low Power battery uplink - -__Uplink port: 1__ - -Sent only once a day in case the energy level is below 20% - -| | Bytes[0:1]| Bytes[2:3]| -|------------------|------------|------------| -| __Value__ | Battery |Cell voltage| -| __Size [Bytes]__ | 2 | 2 | -| __Type__ | UINT16 | UINT16 | -| __Unit__ | mV | mV | - -### Temperature uplink - -__Uplink port: 2__ - -Temperature measurement uplink if the temperature is outside of thresholds - -| | Bytes[0:1] | Byte 2 | -|------------------|-------------|------------| -| __Value__ | Temperature | RH | -| __Size [Bytes]__ | 2 | 1 | -| __Type__ | UINT16 | UINT8 | -| __Unit__ | 0.01 C | 0.5 % | - - -### Heartbeat uplink - -__Uplink port: 11__ - -| | Bytes[0:1]| Bytes[2:3]| Bytes[4:5] | Byte 6 | -|------------------|------------|------------|-------------|------------| -| __Value__ | Battery |Cell voltage| Temperature | RH | -| __Size [Bytes]__ | 2 | 2 | 2 | 1 | -| __Type__ | UINT16 | UINT16 | UINT16 | UINT8 | -| __Unit__ | mV | mV | 0.01 C | 0.5 % | - - -### GNSS scan uplink - -__Uplink port: 192__ - -| | Byte 0 | Bytes[1:N] | -|------------------|--------|------------| -| __Value__ | Last of scan group and group token | NAV message | -| __Size [Bytes]__ | 1 | max 49 | -| __Type__ | UINT8 | UINT8 | - -### WiFi scan uplink - -__Uplink port: 197__ - -| | Byte 0 | Byte 1 | Bytes[2:7] | Byte 8 | Bytes[9:14] | ... | | | -|------------------|----------|----------|------------|----------|-------------|-----|----------|---------| -| __Value__ | 0x01 | AP1 RSSI | AP1 MAC | AP2 RSSI | AP2 MAC | | APN RSSI | APN MAC | -| __Size [Bytes]__ | 1 | 1 | 6 | 1 | 6 | | 1 | 6 | -| __Type__ | UINT8 | UINT8 | UINT8 | UINT8 | UINT8 | | UINT8 | UINT8 | - -### Configuration uplink - -__Uplink port: 4__ - -| | Byte 0 | Bytes[1:2] | Bytes[3:4] | Byte 5 | Bytes[6:7] | Bytes[8:9] | Bytes[10:11] | Bytes[12:13] | Byte 14 | Byte 15 | Byte 16 | Byte 17 | Byte 18 | Byte 19 | -|------------------|--------|--------|--------|-----------------|-----------------|--------------------|--------------------|----------------|-------------|-------------|-------------|-------------|-------------|-------------| -| __Value__ | flags |steady_interval_s|moving_interval_s|heartbeat_interval_h|acc_threshold_mg|acc_delay_ms |temperature_polling_interval_s|temperature_uplink_hold_interval_s|temperature_upper_threshold|temperature_lower_threshold|min_AP|Version_Major*|Version_Minor*|Version_Patch*| -| __Size [Bytes]__ | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 1 |1 |1 |1 | -| __Type__ | UINT8 | UINT16 | UINT16 | UINT8 | UINT16 | UINT16 | UINT16 | UINT16 | INT8 |INT8 |UINT8 | UINT8 | UINT8 | UINT8 | - -*Firmware version is only available in the first uplink after reset. - -### LIC Voltage levels uplink/downlink - -__Uplink/Downlink port: 150__ - -| | Bytes[0:1] | Bytes[2:3] | Bytes[4:5] | Bytes[6:7] | Bytes[8:9] | -|------------------|---------------|--------------|--------------|--------------|--------------| -| __Value__ |lic_100_percent|lic_80_percent|lic_60_percent|lic_40_percent|lic_20_percent| -| __Size [Bytes]__ | 2 | 2 | 2 | 2 | 2 | -| __Type__ | UINT16 | UINT16 | UINT16 | UINT16 | UINT16 | -| __Unit__ | mV | mV | mV | mV | mV | - - -## Downlinks - - -### Configuration downlink - - -__Downlink port: 128__ - -| | Byte 0 | Bytes[1:2] | Bytes[3:4] | Byte 5 | Bytes[6:7] | Bytes[8:9] | Bytes[10:11] | Bytes[12:13] | Bytes 14|Bytes 15|Bytes 16| -|------------------|--------|-----------------|-----------------|--------------------|--------------------|--------------|---------------|---------------------|---------|--------|--------| -| __Value__ | flags |steady_interval_s|moving_interval_s|heartbeat_interval_h|acc_threshold_mg |acc_delay_ms |temperature_polling_interval_s|temperature_uplink_hold_interval_s|temperature_upper_threshold|temperature_lower_threshold|min_AP| -| __Size [Bytes]__ | 1 | 2 | 2 | 1 | 2 | 2 | 2 |2 | 1 |1 |1 | -| __Type__ | UINT8 | UINT16 | UINT16 | UINT8 | UINT16 | UINT16 | UINT16 | UINT16 | INT8 |INT8 | UINT8 | - - -In case temperature_polling_interval_s, temperature_uplink_hold_interval_s are set to 0, the function is disabled - -### Reset downlink - -__Downlink port: 129__ - -| | Byte 0 | -|------------------|--------| -| __Value__ | 1 | -| __Size [Bytes]__ | 1 | -| __Type__ | UINT8 | - -### Turn-off downlink - -Command to turn the device off. Activation is only possible with button press afterwards. (Press for 0.2 seconds to enable, press for 10 seconds to disable) - -__Downlink port: 130__ - -| | Byte 0 | -|------------------|--------| -| __Value__ | 1 | -| __Size [Bytes]__ | 1 | -| __Type__ | UINT8 | From 25dc304169de4190a096d72a50e49538d4bab91f Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Wed, 17 Dec 2025 14:48:30 +0200 Subject: [PATCH 03/11] Enhance TLV list with descriptions and ranges Updated the TLV list of IDs to include additional columns for Description and Range, and modified the data types and default values for several parameters. --- .../06 - smart label v2/03_pl_spec.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 80982fa..e29a3a2 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -24,23 +24,23 @@ sidebar_label v2: Payload Format ### TLV list of IDs -| # | Name | Tag | Size | Format | Default | -|----|----------------------------------|------|------|------|--------| -| 1 | Device flags | 0x10 | 1 | - | - | -| 2 | Heartbeat interval | 0x14 | 1 | - | - | -| 3 | Asset tracking Intervals | 0x18 | 2 | - | - | -| 4 | Acceleration sensitivity | 0x1C | 2 | - | - | -| 5 | Movement detection plan | 0x20 | 5 | - | - | -| 6 | Battery | 0x28 | 3 | - | - | -| 7 | Reset data | 0x30 | 0x00 | - | - | -| 8 | Scan Counts | 0x4B | 0x00 | - | - | -| 9 | ADR | 0x4E | 0x00 | - | - | -| 10 | Advertisement BLE duration FWU | 0x24 | 2 | - | - | -| 11 | Heartbeat TLV list | 0x24 | 2 | - | - | -| 12 | Firmware hash | 0x2C | 0x00 | - | - | -| 13 | Localization action | 0x30 | 0x00 | - | - | -| 14 | Reset device action | 0x30 | 0x00 | - | - | -| 15 | Clear stored buffer | 0x30 | 0x00 | - | - | +| # | Name | Tag | Size | Format | Description | Range | Default | +|----|----------------------------------|------|------|------- |-------------|-------|---------| +| 1 | Device flags | 0x10 | 1 | uint8_t (bitfield) | bit 0: GNSS_ENABLE
bit 1: WIFI_ENABLE
bit 2: BLE_ENABLE
bit 3: MOVEMENT_ENABLE
bit 4: BLE_FWU_ENABLED
| 0 - 1 | 1
1
1
1
1 | +| 2 | Heartbeat interval | 0x14 | 1 | uint8_t | Hours | 1 - 255 | 24 | +| 3 | Asset tracking Intervals | 0x18 | 4 | uint16_t
uint16_t
| Moving: Minutes
Steady: Minutes | ??
?? | 15
60| +| 4 | Acceleration sensitivity | 0x1C | 2 | uint16_t | mG | 1 - 16000 | 50 | +| 5 | Movement detection plan | 0x20 | 5 | uint8_t
uint8_t
uint8_t
uint8_t
uint8_t
| slice_time_seconds
window_slice_count
window_slice_required
start_move_win_count
stop_move_win_count
| ?? | 1
5
3
3
4 | +| 6 | Battery | 0x24 | 3 | uint8_t
uint16_t | Percentage
Voltage | 0-100
(hw dependent) | | +| 7 | Reset data | 0x28 | 3 | uint8_t
uint16_t | Reason
Count | | | +| 8 | Scan Counts | 0x2C | 6 | uint16_t
uint16_t
uint16_t | GNSS scan count
WiFi scan count
BLE scan count
| | +| 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)
1: DR4 (EU868 SF8)
2: DR3 (EU868 SF9, US915 SF7)
3: DR2 (EU868 SF10, US915 SF8)
4: DR1 (EU868 SF11, US915 SF9)
5: DR0 (EU868 SF12)
6: DR1-3 array (EU868 SF9-11, US915 SF7-9)
7: ADR (SF7-12) for EU868 | 0 - 7 |2 | +| 10 | Advertisement BLE duration FWU | 0x34 | 2 | - | - | +| 11 | Heartbeat TLV list | 0x38 | 1-n | - | - | +| 12 | Firmware hash | 0x3C | ? | - | - | +| 13 | Localization action | 0x40 | 0 | - | - | +| 14 | Reset device action | 0x44 | 0 | - | - | +| 15 | Clear stored buffer | 0x48 | 0 | - | - | ### Configurable Parameters From 6ac83f4856f06517f3e129d80cc0fcad8f1eba43 Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Thu, 18 Dec 2025 14:18:25 +0200 Subject: [PATCH 04/11] Revise Payload Format for Smart Label v2 Updated the Payload Format section for Smart Label v2 to include draft status and additional details for several parameters. --- .../06 - smart label v2/03_pl_spec.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index e29a3a2..56b80a2 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -2,7 +2,7 @@ sidebar_label v2: Payload Format --- -# Payload Format of Smart Label v2 +# Payload Format of Smart Label v2 - [draft] ### Uplinks @@ -30,17 +30,18 @@ sidebar_label v2: Payload Format | 2 | Heartbeat interval | 0x14 | 1 | uint8_t | Hours | 1 - 255 | 24 | | 3 | Asset tracking Intervals | 0x18 | 4 | uint16_t
uint16_t
| Moving: Minutes
Steady: Minutes | ??
?? | 15
60| | 4 | Acceleration sensitivity | 0x1C | 2 | uint16_t | mG | 1 - 16000 | 50 | -| 5 | Movement detection plan | 0x20 | 5 | uint8_t
uint8_t
uint8_t
uint8_t
uint8_t
| slice_time_seconds
window_slice_count
window_slice_required
start_move_win_count
stop_move_win_count
| ?? | 1
5
3
3
4 | +| 5 | Movement detection plan | 0x20 | 5 | uint8_t
uint8_t
uint8_t
uint8_t
uint8_t
| slice_time_seconds
window_slice_count
window_slice_required
start_move_win_count
stop_move_win_count
| 1 - 255
1 - 255
1 - 255
1 - 255
1 - 255
| 1
5
3
3
4 | | 6 | Battery | 0x24 | 3 | uint8_t
uint16_t | Percentage
Voltage | 0-100
(hw dependent) | | | 7 | Reset data | 0x28 | 3 | uint8_t
uint16_t | Reason
Count | | | | 8 | Scan Counts | 0x2C | 6 | uint16_t
uint16_t
uint16_t | GNSS scan count
WiFi scan count
BLE scan count
| | | 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)
1: DR4 (EU868 SF8)
2: DR3 (EU868 SF9, US915 SF7)
3: DR2 (EU868 SF10, US915 SF8)
4: DR1 (EU868 SF11, US915 SF9)
5: DR0 (EU868 SF12)
6: DR1-3 array (EU868 SF9-11, US915 SF7-9)
7: ADR (SF7-12) for EU868 | 0 - 7 |2 | -| 10 | Advertisement BLE duration FWU | 0x34 | 2 | - | - | -| 11 | Heartbeat TLV list | 0x38 | 1-n | - | - | -| 12 | Firmware hash | 0x3C | ? | - | - | -| 13 | Localization action | 0x40 | 0 | - | - | -| 14 | Reset device action | 0x44 | 0 | - | - | -| 15 | Clear stored buffer | 0x48 | 0 | - | - | +| 10 | Advertisement BLE duration FWU | 0x34 | 1 | uint8_t | Minutes | 1 - 255 | 5 | +| 11 | Heartbeat TLV list | 0x38 | 1-n | uint8_t * n | TLVs IDs list | * | 0x24 0x2C | +| 12 | FW & HW Version | 0x3C | 4 | uint32_t | CRC32 of the current FW | | +| 12 | Firmware CRC32 | 0x3C | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | +| 13 | Localization action | 0x40 | 0 | - | Triggers the localization | | +| 14 | Reset device action | 0x44 | 0 | - | Resets thed evice | | +| 15 | Clear stored buffer | 0x48 | 0 | - | Clears the stored buffer | | ### Configurable Parameters From 9ca5a3ad082705469ba1e619b0e3d601c2727e9a Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Mon, 5 Jan 2026 13:46:27 +0200 Subject: [PATCH 05/11] Revise payload format details in smart label v2 spec Updated payload format documentation for Smart Label v2 to clarify message types and correct terminology. --- .../06 - smart label v2/03_pl_spec.md | 88 +++++++++++++------ 1 file changed, 61 insertions(+), 27 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 56b80a2..7103dbe 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -2,14 +2,14 @@ sidebar_label v2: Payload Format --- -# Payload Format of Smart Label v2 - [draft] +# Payload Format of Smart Label v2 - [draft - Anything is subject to change] ### Uplinks | Port | Name | Type | Description | |------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| | 150 | [Settings](#setting-uplink) | Uplink | Contains a list of TLV values, like heartbeat or other current settings. | -| 180 | [GNSS-NG Localization Message Steady](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | +| 180 | [GNSS-NG Localization Message](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | | 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | | 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful Wi-Fi scan. | @@ -18,8 +18,7 @@ sidebar_label v2: Payload Format | Port | Name | Type | Description | |------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| | 150 | [Settings](#setting-downlink) | Downlink | Contains a list of setter, getter and/or runner commands, in TLV format. | -| 155 | [Getter](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with speicified TLV IDs. | -| 160 | [Action](#action-downlink) | Downlink | Contains a list of TLVs with actions, like device reset and others. | +| 155 | [Getter/Action](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with speicified TLV IDs, or execute the Action. | ### TLV list of IDs @@ -39,29 +38,64 @@ sidebar_label v2: Payload Format | 11 | Heartbeat TLV list | 0x38 | 1-n | uint8_t * n | TLVs IDs list | * | 0x24 0x2C | | 12 | FW & HW Version | 0x3C | 4 | uint32_t | CRC32 of the current FW | | | 12 | Firmware CRC32 | 0x3C | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | -| 13 | Localization action | 0x40 | 0 | - | Triggers the localization | | -| 14 | Reset device action | 0x44 | 0 | - | Resets thed evice | | -| 15 | Clear stored buffer | 0x48 | 0 | - | Clears the stored buffer | | - - -### Configurable Parameters - -The following table lists the default values and limits of the configurable parameters. -The parameters are modifiable via settings downlinks. - -| Configuration Name | Default Value | Minimum | Maximum | Unit | Description | -|----------------------------|---------------|---------|-------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------| -| MOVING_INTERVAL | 300 | 120 | 65535 | seconds | Localization scan interval if the device is in motion. | -| STEADY_INTERVAL | 7200 | 120 | 65535 | seconds | Localization scan interval if the device is **not** in motion. | -| HEARTBEAT_INTERVAL | 6 | 1 | 255 | hours | Heartbeat message interval. | -| BLE_FWU_ENABLED | 1 | 0 | 1 | - | BLE firmware update over the air enabled. | -| ADVERTISEMENT_FWU_INTERVAL | 30 | 5 | 255 | seconds | Time period during which the device opens the BLE advertisement for firmware updates. | -| GNSS_ENABLE | 1 | 0 | 1 | - | GNSS scans enabled. | -| WIFI_ENABLE | 1 | 0 | 1 | - | Wi-Fi scans enabled. | -| ACCELERATION_ENABLE | 1 | 0 | 1 | - | If enabled, localization scans are triggered if the device is in motion (based on the acceleration sensor data). | -| ACCELERATION_SENSITIVITY | 300 | 0 | 16000 | milli-g | Acceleration sensor threshold. | -| ACCELERATION_DELAY | 1500 | 1000 | 65535 | milliseconds | The device must remain in motion for at least the specified time to trigger a localization scan. | - +| 13 | Clear stored buffer | 0x40 | 0 | - | Clears the stored buffer | | +| 14 | Localization action | 0x44 | 0 | - | Triggers the localization | | +| 15 | Reset device action | 0x48 | 0 | - | Resets thed evice | | + +# Uplinks format +## Wi-Fi Localization Message - port 190 + +### Wi-Fi format summary by Tag +| Tag | Seq | Timestamp | (RSSI+MAC)*n | Description | +|------|-------|-------------|-----------------|---------------| +| 0x10 | | | X | (Moving) WiFi | +| 0x14 | | X | X | (Moving) ts + WiFi | +| 0x18 | | | X | (Steady) WiFi | +| 0x1C | | X | X | (Steady) ts + Wifi | +| 0x80 | X | | X | (Moving) seq + WiFi | +| 0x84 | X | X | X | (Moving) seq + ts + WiFi | +| 0x88 | X | | X | (Steady) seq + WiFi | +| 0x8C | X | X | X | (Steady) seq + ts + WiFi | + +### Wi-Fi, moving with no timestamp +| Size: | Tag (1) | 1 | 6 | | 1 | 6 | +|--------|-----------|------|----|-----|------|-----| +| Field: | 0x10 | RSSI | MAC| ... | RSSI | MAC | + +### Wi-Fi, moving with timestamp +| Size: | Tag (1) | 4 | 1 | 6 | | 1 | 6 | +|--------|-----------|-----------|------|-----|-----|------| --- | +| Field: | 0x14 | Timestamp | RSSI | MAC | ... | RSSI | MAC | + +### Wi-Fi, steady with no timestamp +| Size: | Tag (1) | 1 | 6 | | 1 | 6 | +|--------|-----------|------|----|-----|------|-----| +| Field: | 0x18 | RSSI | MAC| ... | RSSI | MAC | + +### Wi-Fi, steady with timestamp +| Size: | Tag (1) | 4 | 1 | 6 | | 1 | 6 | +|--------|-----------|-----------|------|-----|-----|------|-----| +| Field: | 0x1C | Timestamp | RSSI | MAC | ... | RSSI | MAC | + +### Wi-Fi, packet sequence, moving with no timestamp +| Size: | Tag (1) | 2 | 1 | 6 | | 1 | 6 | +|--------|-----------|------|------|-----|-----|------|-----| +| Field: | 0x80 | Seq | RSSI | MAC | ... | RSSI | MAC | + +### Wi-Fi, packet sequence, moving with timestamp +| Size: | Tag (1) | 2 | 4 | 1 | 6 | | 1 | 6 | +|--------|-----------|------|-----------|----|-----|------|-----|------| +| Field: | 0x84 | Seq | Timestamp | RSSI | MAC| ... | RSSI | MAC | + +### Wi-Fi, packet sequence, steady with no timestamp +| Size: | Tag (1) | 2 | 1 | 6 | | 1 | 6 | +|--------|-----------|------|------|-----|-----|-----| ---- | +| Field: | 0x88 | Seq | RSSI | MAC | ... | RSSI | MAC | + +### Wi-Fi, packet sequence, steady with timestamp +| Size: | Tag (1) | 2 | 4 | 1 | 6 | | 1 | 6 | +|--------|-----------|-----|-----------|------|-----|-----|------|-----| +| Field: | 0x8C | Seq | Timestamp | RSSI | MAC | ... | RSSI | MAC | From 00d3579a26bc5ac1af468f54beabf0428b852b88 Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Thu, 8 Jan 2026 12:13:22 +0200 Subject: [PATCH 06/11] Correct BLE scan descriptions and add compact format Updated BLE localization message descriptions to reflect correct scan types and added details for compact BLE message format. --- .../06 - smart label v2/03_pl_spec.md | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 7103dbe..1634315 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -11,7 +11,8 @@ sidebar_label v2: Payload Format | 150 | [Settings](#setting-uplink) | Uplink | Contains a list of TLV values, like heartbeat or other current settings. | | 180 | [GNSS-NG Localization Message](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | | 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | -| 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful Wi-Fi scan. | +| 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful BLE scan. | +| 201 | [BLE Localization Message (compact)](#ble-message-format) | Uplink | A single compact BLE localization message is sent after a successful BLE scan. | ### Downlinks @@ -57,6 +58,55 @@ sidebar_label v2: Payload Format | 0x88 | X | | X | (Steady) seq + WiFi | | 0x8C | X | X | X | (Steady) seq + ts + WiFi | +## BLE Localization Message - port 200 + +### BLE format summary by Tag, full MAC addr +| Tag | Seq | Timestamp | (RSSI+MAC)*n | Description | +|------|-------|-------------|-----------------|---------------| +| 0x10 | | | X | (Moving) BLE | +| 0x14 | | X | X | (Moving) ts + BLE | +| 0x18 | | | X | (Steady) BLE | +| 0x1C | | X | X | (Steady) ts + BLE | +| 0x80 | X | | X | (Moving) seq + BLE | +| 0x84 | X | X | X | (Moving) seq + ts + BLE | +| 0x88 | X | | X | (Steady) seq + BLE | +| 0x8C | X | X | X | (Steady) seq + ts + BLE | + +## BLE Localization Message (compact) - port 201 +### BLE format summary by Tag, compact MAC addr +| Tag | Seq | Timestamp | Compact BLE Data | Description | +|------|-------|-------------|-----------------|---------------| +| 0x10 | | | X | (Moving) BLE | +| 0x14 | | X | X | (Moving) ts + BLE | +| 0x18 | | | X | (Steady) BLE | +| 0x1C | | X | X | (Steady) ts + BLE | +| 0x80 | X | | X | (Moving) seq + BLE | +| 0x84 | X | X | X | (Moving) seq + ts + BLE | +| 0x88 | X | | X | (Steady) seq + BLE | +| 0x8C | X | X | X | (Steady) seq + ts + BLE | + +### Compact BLE data format +| Size: | Variable Heat/Tail (1) | 1 | 6 | 1 | 1-5 | | 1 | 1-5 | +|--------|--------------------------|------|----|------|-----------|-----|------|-----------| +| Field: | -5 to 5 | RSSI | Full MAC| RSSI | Short MAC | ... | RSSI | Short MAC | + +When the Heat/Tail value is negative it tells how many bytes are different from the beggining of the full MAC.
+When it's positive it tells how many bytes are different from the end of the full MAC + +Ex: Head/Tail is -2:
+Full MAC: AA BB CC DD EE FF GG
+Short MAC: HH II
+-> Short MAC expands to: HH II CC DD EE FF GG + + +Ex: Head/Tail is 2:
+Full MAC: AA BB CC DD EE FF GG
+Short MAC: HH II
+-> Short MAC expands to: AA BB CC DD HH II + + + +# Detailed payload format: ### Wi-Fi, moving with no timestamp | Size: | Tag (1) | 1 | 6 | | 1 | 6 | |--------|-----------|------|----|-----|------|-----| From a7785a3a70430ae691d585146ee7e1c66e8a9292 Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Thu, 8 Jan 2026 12:16:42 +0200 Subject: [PATCH 07/11] Fix typos and remove nonfunctional requirements section Corrected typos in the documentation, including 'speicified' to 'specified', 'thed evice' to 'the device', and 'beggining' to 'beginning'. Removed nonfunctional requirements section related to LoRaWan compliance. --- docs/04 - Devices/06 - smart label v2/03_pl_spec.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 1634315..021db7f 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -19,7 +19,7 @@ sidebar_label v2: Payload Format | Port | Name | Type | Description | |------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| | 150 | [Settings](#setting-downlink) | Downlink | Contains a list of setter, getter and/or runner commands, in TLV format. | -| 155 | [Getter/Action](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with speicified TLV IDs, or execute the Action. | +| 155 | [Getter/Action](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with specified TLV IDs, or execute the Action. | ### TLV list of IDs @@ -41,7 +41,7 @@ sidebar_label v2: Payload Format | 12 | Firmware CRC32 | 0x3C | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | | 13 | Clear stored buffer | 0x40 | 0 | - | Clears the stored buffer | | | 14 | Localization action | 0x44 | 0 | - | Triggers the localization | | -| 15 | Reset device action | 0x48 | 0 | - | Resets thed evice | | +| 15 | Reset device action | 0x48 | 0 | - | Resets the device | | # Uplinks format ## Wi-Fi Localization Message - port 190 @@ -90,7 +90,7 @@ sidebar_label v2: Payload Format |--------|--------------------------|------|----|------|-----------|-----|------|-----------| | Field: | -5 to 5 | RSSI | Full MAC| RSSI | Short MAC | ... | RSSI | Short MAC | -When the Heat/Tail value is negative it tells how many bytes are different from the beggining of the full MAC.
+When the Heat/Tail value is negative it tells how many bytes are different from the beginning of the full MAC.
When it's positive it tells how many bytes are different from the end of the full MAC Ex: Head/Tail is -2:
@@ -150,8 +150,4 @@ Short MAC: HH II
-## Nonfunctional Requirements -### LoRaWan 1.0.4 Compliant - -The software needs to compliant with LoRaWan 1.0.4 Standard and fullfill the certification process From e2da081c2bf9c94e2ac0cebd397e262ec2b2e97e Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Mon, 19 Jan 2026 14:03:24 +0200 Subject: [PATCH 08/11] GNSS addition Updated descriptions for BLE localization message and added GNSS localization message details. --- .../06 - smart label v2/03_pl_spec.md | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 021db7f..99037dc 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -12,7 +12,7 @@ sidebar_label v2: Payload Format | 180 | [GNSS-NG Localization Message](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | | 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | | 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful BLE scan. | -| 201 | [BLE Localization Message (compact)](#ble-message-format) | Uplink | A single compact BLE localization message is sent after a successful BLE scan. | +| 201 | [BLE Localization Message (compact)](#ble-message-format) | Uplink | A single compact BLE (based on filters) localization message is sent after a successful BLE scan.| ### Downlinks @@ -44,9 +44,33 @@ sidebar_label v2: Payload Format | 15 | Reset device action | 0x48 | 0 | - | Resets the device | | # Uplinks format +## GNSS Localization Message - port 180 +### GNSS payload format summary by Tag +| Tag | Seq | Timestamp | GHDR | NAV | Description | +|------|-------|-------------|---------|-------|------------------| +| 0x10 | | | X | X | (Moving) GNSS | +| 0x14 | | X | X | X | (Moving) ts + GNSS | +| 0x18 | | | X | X | (Steady) GNSS | +| 0x1C | | X | X | X | (Steady) ts + GNSS | +| 0x80 | X | | X | X | (Moving) seq + GNSS | +| 0x84 | X | X | X | X | (Moving) seq + ts + GNSS | +| 0x88 | X | | X | X | (Steady) seq + GNSS | +| 0x8C | X | X | X | X | (Steady) seq + ts + GNSS | + +### GNSS localization data encoding +| Byte Lenght | 1 | 1-n | +|--------------|------|-------------------| +| Field: | GHDR | U-GNSSLOC-NAV | + +### GHDR: Group Header +| Bits | 7 | 6-5 | 4-0 | +|--------|-----|----------|----------| +| Field: | EOG | RFU=0b00 | GRP_TOKEN| + + ## Wi-Fi Localization Message - port 190 -### Wi-Fi format summary by Tag +### Wi-Fi payload format summary by Tag | Tag | Seq | Timestamp | (RSSI+MAC)*n | Description | |------|-------|-------------|-----------------|---------------| | 0x10 | | | X | (Moving) WiFi | From b72eb077bbf1dd800ff656cf1de45f1cd22f7b0e Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Mon, 19 Jan 2026 14:43:51 +0200 Subject: [PATCH 09/11] Revise localization message specs for Wi-Fi and BLE Updated the BLE and Wi-Fi localization message specifications, including changes to the BLE duration unit and added compact message formats. --- .../06 - smart label v2/03_pl_spec.md | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 99037dc..5a52eb3 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -11,6 +11,7 @@ sidebar_label v2: Payload Format | 150 | [Settings](#setting-uplink) | Uplink | Contains a list of TLV values, like heartbeat or other current settings. | | 180 | [GNSS-NG Localization Message](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | | 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | +| 191 | [Wi-Fi Localization Message (compact)](#wi-fi-message-format) | Uplink | A single compact Wi-Fi (based on filters) localization message is sent after a successful Wi-Fi scan. | | 200 | [BLE Localization Message](#ble-message-format) | Uplink | A single BLE localization message is sent after a successful BLE scan. | | 201 | [BLE Localization Message (compact)](#ble-message-format) | Uplink | A single compact BLE (based on filters) localization message is sent after a successful BLE scan.| @@ -35,7 +36,7 @@ sidebar_label v2: Payload Format | 7 | Reset data | 0x28 | 3 | uint8_t
uint16_t | Reason
Count | | | | 8 | Scan Counts | 0x2C | 6 | uint16_t
uint16_t
uint16_t | GNSS scan count
WiFi scan count
BLE scan count
| | | 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)
1: DR4 (EU868 SF8)
2: DR3 (EU868 SF9, US915 SF7)
3: DR2 (EU868 SF10, US915 SF8)
4: DR1 (EU868 SF11, US915 SF9)
5: DR0 (EU868 SF12)
6: DR1-3 array (EU868 SF9-11, US915 SF7-9)
7: ADR (SF7-12) for EU868 | 0 - 7 |2 | -| 10 | Advertisement BLE duration FWU | 0x34 | 1 | uint8_t | Minutes | 1 - 255 | 5 | +| 10 | Advertisement BLE duration FWU | 0x34 | 1 | uint8_t | Seconds | 1 - 255 | 60 | | 11 | Heartbeat TLV list | 0x38 | 1-n | uint8_t * n | TLVs IDs list | * | 0x24 0x2C | | 12 | FW & HW Version | 0x3C | 4 | uint32_t | CRC32 of the current FW | | | 12 | Firmware CRC32 | 0x3C | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | @@ -70,7 +71,7 @@ sidebar_label v2: Payload Format ## Wi-Fi Localization Message - port 190 -### Wi-Fi payload format summary by Tag +### Wi-Fi payload format summary by Tag, full MAC addr | Tag | Seq | Timestamp | (RSSI+MAC)*n | Description | |------|-------|-------------|-----------------|---------------| | 0x10 | | | X | (Moving) WiFi | @@ -82,6 +83,20 @@ sidebar_label v2: Payload Format | 0x88 | X | | X | (Steady) seq + WiFi | | 0x8C | X | X | X | (Steady) seq + ts + WiFi | +## Wi-Fi Localization Message (Compact) - port 191 + +### Wi-Fi format summary by Tag, compact MAC addr +| Tag | Seq | Timestamp | Compact Wi-Fi Data | Description | +|------|-------|-------------|-----------------|---------------| +| 0x10 | | | X | (Moving) Wi-Fi | +| 0x14 | | X | X | (Moving) ts + Wi-Fi | +| 0x18 | | | X | (Steady) Wi-Fi | +| 0x1C | | X | X | (Steady) ts + Wi-Fi | +| 0x80 | X | | X | (Moving) seq + Wi-Fi | +| 0x84 | X | X | X | (Moving) seq + ts + Wi-Fi | +| 0x88 | X | | X | (Steady) seq + Wi-Fi | +| 0x8C | X | X | X | (Steady) seq + ts + Wi-Fi | + ## BLE Localization Message - port 200 ### BLE format summary by Tag, full MAC addr @@ -96,7 +111,8 @@ sidebar_label v2: Payload Format | 0x88 | X | | X | (Steady) seq + BLE | | 0x8C | X | X | X | (Steady) seq + ts + BLE | -## BLE Localization Message (compact) - port 201 +## BLE Localization Message (Compact) - port 201 + ### BLE format summary by Tag, compact MAC addr | Tag | Seq | Timestamp | Compact BLE Data | Description | |------|-------|-------------|-----------------|---------------| @@ -109,7 +125,7 @@ sidebar_label v2: Payload Format | 0x88 | X | | X | (Steady) seq + BLE | | 0x8C | X | X | X | (Steady) seq + ts + BLE | -### Compact BLE data format +## Compact WiFi and BLE data format | Size: | Variable Heat/Tail (1) | 1 | 6 | 1 | 1-5 | | 1 | 1-5 | |--------|--------------------------|------|----|------|-----------|-----|------|-----------| | Field: | -5 to 5 | RSSI | Full MAC| RSSI | Short MAC | ... | RSSI | Short MAC | @@ -118,55 +134,55 @@ When the Heat/Tail value is negative it tells how many bytes are different from When it's positive it tells how many bytes are different from the end of the full MAC Ex: Head/Tail is -2:
-Full MAC: AA BB CC DD EE FF GG
-Short MAC: HH II
--> Short MAC expands to: HH II CC DD EE FF GG +Full MAC: `AA BB CC DD EE FF GG`
+Short MAC: `HH II`
+-> Short MAC expands to: `HH II CC DD EE FF GG` Ex: Head/Tail is 2:
-Full MAC: AA BB CC DD EE FF GG
-Short MAC: HH II
--> Short MAC expands to: AA BB CC DD HH II +Full MAC: `AA BB CC DD EE FF GG`
+Short MAC: `HH II`
+-> Short MAC expands to: `AA BB CC DD HH II` -# Detailed payload format: -### Wi-Fi, moving with no timestamp +# Wi-Fi/BLE Detailed payload format: +### Wi-Fi/BLE, moving with no timestamp | Size: | Tag (1) | 1 | 6 | | 1 | 6 | |--------|-----------|------|----|-----|------|-----| | Field: | 0x10 | RSSI | MAC| ... | RSSI | MAC | -### Wi-Fi, moving with timestamp +### Wi-Fi/BLE, moving with timestamp | Size: | Tag (1) | 4 | 1 | 6 | | 1 | 6 | |--------|-----------|-----------|------|-----|-----|------| --- | | Field: | 0x14 | Timestamp | RSSI | MAC | ... | RSSI | MAC | -### Wi-Fi, steady with no timestamp +### Wi-Fi/BLE, steady with no timestamp | Size: | Tag (1) | 1 | 6 | | 1 | 6 | |--------|-----------|------|----|-----|------|-----| | Field: | 0x18 | RSSI | MAC| ... | RSSI | MAC | -### Wi-Fi, steady with timestamp +### Wi-Fi/BLE, steady with timestamp | Size: | Tag (1) | 4 | 1 | 6 | | 1 | 6 | |--------|-----------|-----------|------|-----|-----|------|-----| | Field: | 0x1C | Timestamp | RSSI | MAC | ... | RSSI | MAC | -### Wi-Fi, packet sequence, moving with no timestamp +### Wi-Fi/BLE, packet sequence, moving with no timestamp | Size: | Tag (1) | 2 | 1 | 6 | | 1 | 6 | |--------|-----------|------|------|-----|-----|------|-----| | Field: | 0x80 | Seq | RSSI | MAC | ... | RSSI | MAC | -### Wi-Fi, packet sequence, moving with timestamp +### Wi-Fi/BLE, packet sequence, moving with timestamp | Size: | Tag (1) | 2 | 4 | 1 | 6 | | 1 | 6 | |--------|-----------|------|-----------|----|-----|------|-----|------| | Field: | 0x84 | Seq | Timestamp | RSSI | MAC| ... | RSSI | MAC | -### Wi-Fi, packet sequence, steady with no timestamp +### Wi-Fi/BLE, packet sequence, steady with no timestamp | Size: | Tag (1) | 2 | 1 | 6 | | 1 | 6 | |--------|-----------|------|------|-----|-----|-----| ---- | | Field: | 0x88 | Seq | RSSI | MAC | ... | RSSI | MAC | -### Wi-Fi, packet sequence, steady with timestamp +### Wi-Fi/BLE, packet sequence, steady with timestamp | Size: | Tag (1) | 2 | 4 | 1 | 6 | | 1 | 6 | |--------|-----------|-----|-----------|------|-----|-----|------|-----| | Field: | 0x8C | Seq | Timestamp | RSSI | MAC | ... | RSSI | MAC | From bca2810569990940a6dc8fdb9000763f8dbd452f Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Wed, 21 Jan 2026 14:34:13 +0200 Subject: [PATCH 10/11] Fix uplink and downlink sections in spec --- .../06 - smart label v2/03_pl_spec.md | 72 ++++++++++++++----- 1 file changed, 54 insertions(+), 18 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 5a52eb3..1b773b8 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -4,11 +4,17 @@ sidebar_label v2: Payload Format # Payload Format of Smart Label v2 - [draft - Anything is subject to change] -### Uplinks +## Downlinks +| Port | Name | Type | Description | +|------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| +| 151 | [Set](#set-uplink) | Uplink | Contains a list of TLV values to be written to the device | +| 152 | [Get](#get-uplink) | Uplink | Contains a list of TLV values to be read from the device | +| 153 | [Action](#action-uplink) | Uplink | Contains a list of TLV values which will trigger an action | +## Uplinks | Port | Name | Type | Description | |------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| -| 150 | [Settings](#setting-uplink) | Uplink | Contains a list of TLV values, like heartbeat or other current settings. | +| 150 | [Settings](#set-uplink) | Uplink | Contains a list of TLV values containing various configuration data | | 180 | [GNSS-NG Localization Message](#gnss-message-format) | Uplink | One or two GNSS-NG localization messages are sent after a successful GNSS-NG scan. | | 190 | [Wi-Fi Localization Message](#wi-fi-message-format) | Uplink | A single Wi-Fi localization message is sent after a successful Wi-Fi scan. | | 191 | [Wi-Fi Localization Message (compact)](#wi-fi-message-format) | Uplink | A single compact Wi-Fi (based on filters) localization message is sent after a successful Wi-Fi scan. | @@ -16,14 +22,7 @@ sidebar_label v2: Payload Format | 201 | [BLE Localization Message (compact)](#ble-message-format) | Uplink | A single compact BLE (based on filters) localization message is sent after a successful BLE scan.| -### Downlinks -| Port | Name | Type | Description | -|------|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------| -| 150 | [Settings](#setting-downlink) | Downlink | Contains a list of setter, getter and/or runner commands, in TLV format. | -| 155 | [Getter/Action](#getter-downlink) | Downlink | Contains a list of TLV IDs. The device will then send the data associated with specified TLV IDs, or execute the Action. | - - -### TLV list of IDs +## TLV list of IDs | # | Name | Tag | Size | Format | Description | Range | Default | |----|----------------------------------|------|------|------- |-------------|-------|---------| @@ -34,15 +33,52 @@ sidebar_label v2: Payload Format | 5 | Movement detection plan | 0x20 | 5 | uint8_t
uint8_t
uint8_t
uint8_t
uint8_t
| slice_time_seconds
window_slice_count
window_slice_required
start_move_win_count
stop_move_win_count
| 1 - 255
1 - 255
1 - 255
1 - 255
1 - 255
| 1
5
3
3
4 | | 6 | Battery | 0x24 | 3 | uint8_t
uint16_t | Percentage
Voltage | 0-100
(hw dependent) | | | 7 | Reset data | 0x28 | 3 | uint8_t
uint16_t | Reason
Count | | | -| 8 | Scan Counts | 0x2C | 6 | uint16_t
uint16_t
uint16_t | GNSS scan count
WiFi scan count
BLE scan count
| | +| 8 | Scan Counts | 0x2C | 12 | uint16_t
uint16_t
uint16_t
uint16_t
uint16_t
uint16_t | GNSS successful scan count
WiFi successful scan count
BLE successful scan count
GNSS failed scan count
WiFi failed scan count
BLE failed scan count
| | | 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)
1: DR4 (EU868 SF8)
2: DR3 (EU868 SF9, US915 SF7)
3: DR2 (EU868 SF10, US915 SF8)
4: DR1 (EU868 SF11, US915 SF9)
5: DR0 (EU868 SF12)
6: DR1-3 array (EU868 SF9-11, US915 SF7-9)
7: ADR (SF7-12) for EU868 | 0 - 7 |2 | -| 10 | Advertisement BLE duration FWU | 0x34 | 1 | uint8_t | Seconds | 1 - 255 | 60 | -| 11 | Heartbeat TLV list | 0x38 | 1-n | uint8_t * n | TLVs IDs list | * | 0x24 0x2C | -| 12 | FW & HW Version | 0x3C | 4 | uint32_t | CRC32 of the current FW | | -| 12 | Firmware CRC32 | 0x3C | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | -| 13 | Clear stored buffer | 0x40 | 0 | - | Clears the stored buffer | | -| 14 | Localization action | 0x44 | 0 | - | Triggers the localization | | -| 15 | Reset device action | 0x48 | 0 | - | Resets the device | | +| 10 | Buffer level | 0x34 | 2 | uint16_t | Number of stored unconfirmed messages in its internal memory | 0 - 65535 | - | +| 11 | Buffer TTL | 0x38 | 2 | uint16_t | The number of days after a buffered message will be discarded without being re-sent
Value of 0 means disabled. | 0 - 65535 | 30 | +| 12 | Advertisement BLE duration FWU | 0x38 | 1 | uint8_t | Seconds | 1 - 255 | 60 | +| 13 | Heartbeat TLV list | 0x3C | 1-n | uint8_t * n | TLVs IDs list for hearbeat | * | 0x24 0x2C 0x34 | +| 14 | FW & HW Version | 0x40 | 4 | uint32_t | CRC32 of the current FW | | +| 15 | Firmware CRC32 | 0x44 | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | +| 16 | TLV ID bundle | 0x48 | 1-n | uint8_t * n | TLV IDs list | * | - | +| 17 | Clear stored buffer | 0x4C | 0 | - | Clears the stored buffer | | +| 18 | Localization action | 0x50 | 0 | - | Triggers the localization | | +| 19 | Reset device action | 0x54 | 0 | - | Resets the device | | + +
+ +# Downlinks +## Set - port 151 +| Byte Lenght | (Tag) 1 | TLV 1 | TLV x | +|--------------|------------|---------------|-----| +| Field: | 0x10 | TLV 1 data | ... | + + +## Get - port 152 +### Generic - one TLV for each requested ID +| Byte Lenght | (Tag) 1 | TLVs 1 | ... | +|--------------|------------|---------------|-----| +| Field: | 0x10 | TLV 1 data | ... | + +### Bundle - one single TLV containing a list of TLV IDs. The ID for bundle is '0x48' +| Byte Lenght | (Tag) 1 | TLV ID 0x48 | +|--------------|------------|-------------| +| Field: | 0x10 | TLV data (1..n) | + + +## Action - port 153 +### Generic - one TLV for each requested ID +| Byte Lenght | (Tag) 1 | TLVs 1 | ... | +|--------------|------------|---------------|-----| +| Field: | 0x10 | TLV 1 data | ... | + +### Bundle - one single TLV containing a list of TLV IDs +| Byte Lenght | (Tag) 1 | TLV ID 0x48 | +|--------------|------------|---------------------| +| Field: | 0x10 | TLV data (1..n) | + + # Uplinks format ## GNSS Localization Message - port 180 From c54fd433ac918115ce85e00395f3c9e9d4a19191 Mon Sep 17 00:00:00 2001 From: Cristian Cesane Date: Wed, 21 Jan 2026 14:35:36 +0200 Subject: [PATCH 11/11] Reorganize device specification table entries --- .../06 - smart label v2/03_pl_spec.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md index 1b773b8..2a58463 100644 --- a/docs/04 - Devices/06 - smart label v2/03_pl_spec.md +++ b/docs/04 - Devices/06 - smart label v2/03_pl_spec.md @@ -37,14 +37,14 @@ sidebar_label v2: Payload Format | 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)
1: DR4 (EU868 SF8)
2: DR3 (EU868 SF9, US915 SF7)
3: DR2 (EU868 SF10, US915 SF8)
4: DR1 (EU868 SF11, US915 SF9)
5: DR0 (EU868 SF12)
6: DR1-3 array (EU868 SF9-11, US915 SF7-9)
7: ADR (SF7-12) for EU868 | 0 - 7 |2 | | 10 | Buffer level | 0x34 | 2 | uint16_t | Number of stored unconfirmed messages in its internal memory | 0 - 65535 | - | | 11 | Buffer TTL | 0x38 | 2 | uint16_t | The number of days after a buffered message will be discarded without being re-sent
Value of 0 means disabled. | 0 - 65535 | 30 | -| 12 | Advertisement BLE duration FWU | 0x38 | 1 | uint8_t | Seconds | 1 - 255 | 60 | -| 13 | Heartbeat TLV list | 0x3C | 1-n | uint8_t * n | TLVs IDs list for hearbeat | * | 0x24 0x2C 0x34 | -| 14 | FW & HW Version | 0x40 | 4 | uint32_t | CRC32 of the current FW | | -| 15 | Firmware CRC32 | 0x44 | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | -| 16 | TLV ID bundle | 0x48 | 1-n | uint8_t * n | TLV IDs list | * | - | -| 17 | Clear stored buffer | 0x4C | 0 | - | Clears the stored buffer | | -| 18 | Localization action | 0x50 | 0 | - | Triggers the localization | | -| 19 | Reset device action | 0x54 | 0 | - | Resets the device | | +| 12 | Advertisement BLE duration FWU | 0x3C | 1 | uint8_t | Seconds | 1 - 255 | 60 | +| 13 | Heartbeat TLV list | 0x40 | 1-n | uint8_t * n | TLVs IDs list for hearbeat | * | 0x24 0x2C 0x34 | +| 14 | FW & HW Version | 0x44 | 4 | uint32_t | CRC32 of the current FW | | +| 15 | Firmware CRC32 | 0x48 | 4 | uint8_t
uint8_t
uint8_t
uint8_t
| FW ver major
FW ver minor
FW ver patch
HW version
| | | +| 16 | TLV ID bundle | 0x4C | 1-n | uint8_t * n | TLV IDs list | * | - | +| 17 | Clear stored buffer | 0x50 | 0 | - | Clears the stored buffer | | +| 18 | Localization action | 0x54 | 0 | - | Triggers the localization | | +| 19 | Reset device action | 0x58 | 0 | - | Resets the device | |