-
Notifications
You must be signed in to change notification settings - Fork 1
Smart label v2 #32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Smart label v2 #32
Conversation
… old smart label doc
Updated the payload format documentation for Smart Label v2, including uplink and downlink specifications.
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.
Updated the Payload Format section for Smart Label v2 to include draft status and additional details for several parameters.
Updated payload format documentation for Smart Label v2 to clarify message types and correct terminology.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds comprehensive documentation for the Smart Label v2 device, a new version of Truvami's LoRaWAN-based asset tracking device. The documentation includes getting started guides, functional specifications, and payload format specifications for the v2 hardware.
Key changes:
- Added complete documentation suite for Smart Label v2 device
- Introduced new payload format specification with TLV-based configuration system
- Added functional specifications covering localization, power management, and movement detection features
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| docs/02 - Getting-started/06-smart-label-v2.md | Getting started guide providing setup instructions and troubleshooting for Smart Label v2 |
| docs/04 - Devices/06 - smart label v2/02_sw_spec.md | Functional description and software specifications including state diagrams, feature requirements, and configuration parameters |
| docs/04 - Devices/06 - smart label v2/03_pl_spec.md | Payload format specification defining uplink/downlink message structures and TLV configuration format |
| docs/10 - Release notes/smartlabelmd copy.md | Release notes tracking version history and changes for the smart label firmware |
Note: I've identified multiple issues during the review including spelling errors, grammatical mistakes, incorrect file naming, YAML front matter syntax errors, and future dates in release notes. However, I'm unable to store specific line-by-line comments because the actual diff context (showing which specific lines were added or modified) is not available in the current review interface.
The main categories of issues found include:
- Naming issue: Release notes filename contains "copy"
- Future dates: Release dates in 2025 (currently impossible as we're in January 2026)
- Syntax error: YAML front matter has incorrect format
- Multiple spelling errors: "speicified", "movmement", "attemt", "autonmously", "pasive", "thed evice", "fullfill", "uin32"
- Grammar errors: "should is set", double period
These issues should be addressed to ensure documentation quality and accuracy.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
michaelbeutler
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Duplicate TLV ID 12 conflict
- Undefined ranges and units (battery voltage, intervals)
| | 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. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After a successful Wi-Fi or BLE 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. | |
| | 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is length implicit from Tag or is there a length field as well?
| | 9 | ADR | 0x30 | 1 | uint8_t | 0: DR5 (EU868 SF7)<br/> 1: DR4 (EU868 SF8)<br/>2: DR3 (EU868 SF9, US915 SF7)<br/>3: DR2 (EU868 SF10, US915 SF8)<br/>4: DR1 (EU868 SF11, US915 SF9)<br/>5: DR0 (EU868 SF12)<br/>6: DR1-3 array (EU868 SF9-11, US915 SF7-9) <br/>7: ADR (SF7-12) for EU868 | 0 - 7 |2 | | ||
| | 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 | | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
0x3C is used twice
Updated BLE localization message descriptions to reflect correct scan types and added details for compact BLE message format.
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.
| | __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 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chiara-truvami, @KangooGuy is there a use case that requires more frequent heartbeat messages?
For example, only track after activation (e.g., sending a downlink setting steady and moving intervals).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaelbeutler No, I can't think of any that wouldn't be covered by the other UL types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaelbeutler No, I can't think of any that wouldn't be covered by the other UL types.
If the heartbeat interval is measured in hours, we cannot set it to every 5 minutes, for example.
| When it's positive it tells how many bytes are different from the end of the full MAC | ||
|
|
||
| Ex: Head/Tail is -2:</br> | ||
| Full MAC: AA BB CC DD EE FF GG</br> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Full MAC: AA BB CC DD EE FF GG</br> | |
| Full MAC: `AA BB CC DD EE FF GG`</br> |
| Ex: Head/Tail is -2:</br> | ||
| Full MAC: AA BB CC DD EE FF GG</br> | ||
| Short MAC: HH II </br> | ||
| -> Short MAC expands to: HH II CC DD EE FF GG |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| -> Short MAC expands to: HH II CC DD EE FF GG | |
| -> Short MAC expands to: `HH II CC DD EE FF GG` |
|
|
||
|
|
||
| Ex: Head/Tail is 2:</br> | ||
| Full MAC: AA BB CC DD EE FF GG</br> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Full MAC: AA BB CC DD EE FF GG</br> | |
| Full MAC: `AA BB CC DD EE FF GG`</br> |
| Ex: Head/Tail is 2:</br> | ||
| Full MAC: AA BB CC DD EE FF GG</br> | ||
| Short MAC: HH II </br> | ||
| -> Short MAC expands to: AA BB CC DD HH II |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| -> Short MAC expands to: AA BB CC DD HH II | |
| -> Short MAC expands to: `AA BB CC DD HH II` |
No description provided.