PCR2 LoRaWAN® Payload Description V3
This document describes version 4 of the application payload introduced with Firmware V3.4.0
You can choose between 3 different payloads formats. Each of them have different purposes such as compatibility with ELSYS devices or standardized payloads like Cayenne LPP. If you want all the feautures including remote controlling counter values go for Extended Payload.
Extended Application Payload Format (PTYPE = 2)
Byte | Property | Description | Uplink Values | Downlink Values |
---|---|---|---|---|
0 | VID | Vendor ID, always 0xbe for Parametric Devices | be | be |
1 | DEV_FAM | Device Family, always 0x01 for PCR2 Devices | 01 | 01 |
2 | PAY_VER | Payload Version, always 0x03 for V3 Payloads | 03 | 03 |
3:4 | LTR | left-to-right counter 0-65535 objects |
0000-ffff | ignored (*) |
5:6 | RTL | right-to-left counter 0-65535 objects |
0000-ffff | ignored (*) |
7:8 | LTR_SUM | sum of left-to-right counts since device power up 0-65535 objects |
0000-ffff | 0000-ffff |
9:10 | RTL_SUM | sum of right-to-left counts since device power up 0-65535 objects |
0000-ffff | 0000-ffff |
11 | SBX_BATT | battery gauge when equiped with an SBX solar charger 0...100% |
00-64 | ignored (*) |
12:13 | SBX_PV | Solar panel power when equiped with SBX 0...65535 mW |
0000-ffff | ignored (*) |
14:15 | CPU_TEMP | CPU Temperature -3276.8°C -->3276.7°C |
f000-0fff | ignored (*) |
(*) These field values are ignored by the device when downlinking this payload.
Payload Examples (Hexstring)
be 01 03 00 00 00 00 00 01 00 00 64 0c e4 01 39
Cayenne LPP Application Payload Format (PTYPE = 1)
Byte | Property | Description | Uplink Values | Downlink Values |
---|---|---|---|---|
0 | Channel 0 | always 0x00 | 00 | ignored (*) |
1 | Presence ID | always 0x66 | 66 | ignored (*) |
2 | LTR | left-to-right counter 0-255 objects |
00-ff | ignored (*) |
3 | Channel 1 | always 0x01 | 01 | ignored (*) |
4 | Presence ID | always 0x66 | 66 | ignored (*) |
5 | LTR | right-to-left counter 0-255 objects |
00-ff | ignored (*) |
6 | Channel 2 | always 0x02 | 02 | ignored (*) |
7 | Temperature ID | always 0x67 | 67 | ignored (*) |
8 | TEMP | CPU temperature | 00-ff | ignored (*) |
9 | Channel 3 | always 0x03 | 03 | ignored (*) |
10 | Analog ID | always 0x02 | 02 | ignored (*) |
11 | SBX_BATT | battery gauge when equiped with an SBX solar charger 0...100.00% |
0000-2710 | ignored (*) |
(*) Downlinking Cayenne LPP Application Payloads is not supported. Go for Extended Payload if you need to overwrite counter values.
ELSYS Application Payload Format (PTYPE = 0)
Byte | Property | Description | Uplink Values | Downlink Values |
---|---|---|---|---|
0 | TYPE_PULSE1 | always 0x0a | 0a | ignored (*) |
1:2 | LTR | left-to-right counter 0-65535 objects |
0000-ffff | ignored (*) |
3 | TYPE_PULSE2 | always 0x16 | 16 | ignored (*) |
4:5 | RTL | right-to-left counter 0-65535 objects |
0000-ffff | ignored (*) |
6 | TYPE_TEMP | always 0x01 | 01 | ignored (*) |
7:8 | TEMP | CPU Temperature -3276.8°C -->3276.7°C |
f000-0fff | ignored (*) |
(*) Downlinking Default Application Payloads is not supported. Go for Extended Payload if you need to overwrite counter values.
Application Payload Ports
|-|-| |Uplink | Port 14 | |Downlink | Port 14 |
Best Practice
Check Port and Payload Header in your decoder
Always check for port 14 prior to decoding a application payload.
// check for valid pcr2 application pl
if ( port == 14 )
{
if(byte[0] == 0x0a)
{
// decode ELSYS payload
}
if(byte[0] == 0 && byte[1] == 102)
{
// decode LPP payload
}
if(byte[0] == 0xbe && byte[1] == 0x01 && byte[2] == 0x03)
{
// decode extended payload V3
}
}
Use Extended Payload to remote control sum counters
You might send a Downlink to Port 14 with the Extended Payload format to reset counters. PCR2 devices can be operated as Class C devices. With this you can clear counters at any time.
Find more example code in our public repository.