Payload WSSFC-V1A | Firmware 3
1. Payload document is applied for the following products
Item code | HW Version | Firmware Version | Remarks |
WSSFC-V1A-... | 2H | 3F | |
2. Changes information in this version v.s previous version
Item | Changes | Changed by | Changed Date | Approved by | Approved Date |
1 | Initial version | D.Q.Tuan | 02-06-2023 | N.V.Loc | 09-06-2023 |
The approved date is also the release date of this document.
3. Payload for Uplink messages
START_UP message
When? | Purpose | Wait for Downlink? | LED color |
This message will be sent once after 60 seconds from power-up the device | To understand when the device was powered up | NO |
Blink WHITE |
Payload | EVENT_ID | HW_VERSION | FW_VERSION | LATEST_SIGFOX_DOWNLINK |
bits | 4 | 4 | 8 | 64 |
value | 0b0000 = 0 | yes | yes | yes |
HEART_BEAT message
When? | Purpose | Wait for Downlink? | LED color |
This message will be sent in the pre-defined cycle, default is 24 hours | To check the health status, get the current configuration, and send the new configuration to the device via downlink | YES |
Blink GREEN |
Payload | EVENT_ID | HW_VERSION | FW_VERSION | LATEST_SIGFOX_DOWNLINK |
bits | 4 | 4 | 8 | 64 |
value | 0b0001 = 1 | yes | yes | yes |
PARAMETER_UPDATE message
When? | Purpose | Wait for Downlink? | LED color |
When the reed switch is activated by the magnet key. How? Move Magnet Key to the contact point of REED SWITCH. |
To send the new configuration to the device via downlink | YES |
Blink PURPLE |
Payload | EVENT_ID | HW_VERSION | FW_VERSION | LATEST_SIGFOX_DOWNLINK |
bits | 4 | 4 | 8 | 64 |
value | 0b0010 = 2 | yes | yes | yes |
FORCE_DATA message
When? | Purpose | Wait for Downlink? | LED color |
When the reed switch is activated by the magnet key. How? Move Magnet Key to the contact point of REED SWITCH.Led blink SKY BLUE, move Magnet Key away. |
To get the instant measured value from the device for calibration and validation. | NO |
Blink SKY BLUE |
Payload | EVENT_ID | HW_ERROR | DATAGRAM ID | ALARM | BATTERY_LEVEL | reserved | DATAGRAM_CONTENT |
bits | 4 | 1 | 3 | 2 | 2 | 4 | 80 |
value | 0b0011 = 3 | yes | yes | yes | yes | zeros | yes |
CYCLIC_DATA message
When? | Purpose | Wait for Downlink? | LED color |
This message will be sent in the pre-defined cycle. | To get the measured value from the device in the pre-defined cycle. | NO |
Blink SKY BLUE |
Payload | EVENT_ID | HW_ERROR | DATAGRAM ID | ALARM | BATTERY_LEVEL | reserved |
DATAGRAM_CONTENT |
bits | 4 | 1 | 3 | 2 | 2 | 4 |
80 |
value | 0b0100 = 4 | yes | yes | yes | yes | zeros | yes |
ALARM message
When? | Purpose | Wait for Downlink? | LED color |
This message will be sent upon the alarm occurs. Sensor_sampling_rate will determine the processing delay of the alarm. | To get the instant measured value upon the measured value was passing a threshold. | NO |
Blink RED |
Payload | EVENT_ID | HW_ERROR | DATAGRAM NO. | ALARM | BATTERY_LEVEL | reserved | VELOCITY_RMS | ACCELERATION_PEAK | FREQUENCY |
bits | 4 | 1 | 3 | 2 | 2 | 4 | 32 | 32 | 16 |
value | 0b0101 = 5 | yes | yes | yes | yes | zeros | yes | yes | yes |
What do PRM1, PRM2, and PRM3 stand for?
Because the V1A has 9 parameters to send out, one Sigfox payload cannot carry all these parameters. Therefore we need to split those 9 parameters into different Datagrams. There are 03 Datagrams below, you can find the meaning of each PRM1, PRM2, and PRM3 carry.
DATAGRAM NO. |
PRM1 |
PRM2 |
PRM3 |
0 |
VELOCITY_RMS (mm/s) |
ACCELERATION_PEAK (m/s2) |
FREQUENCY (Hz) |
1 |
VELOCITY_PEAK (mm/s) |
ACCELERATION_RMS (m/s2) |
TEMPERATURE_X10 (oC) |
2 |
DISPLACEMENT_PEAK_PEAK (um) |
DISPLACEMENT_RMS (um) |
FREQUENCY (Hz) |
Depending on the application, the device can be configured to send 1 or multiple Datagrams.
4. Payload Fields of Uplink
Below is an explanation of the payload fields in the uplink messages.
Data name |
Description |
Encoding or Possible values |
Length (in bits) |
EVENT_ID |
Unique ID identifying the device event |
4-bit unsigned integer 0 = START_UP 1 = HEARTBEAT 2 = PARAMETERS_UPDATE 3 = FORCE_DATA 4 = CYCLIC_DATA 5 = ALARM |
4 |
HW_VERSION |
Indicate HW version |
4-bit unsigned integer 1..15 |
4 |
FW_VERSION |
Indicate FW version |
8-bit unsigned integer 1..255 |
8 |
LATEST_SIGFOX_DOWNLINK |
The Latest received and valid Sigfox downlink frame = Current configuration |
64-bit encoded field See Sigfox Downlink tab |
64 |
HW_ERROR |
HW error |
0b0 = no error 0b1 = error |
1 |
DATAGRAM NO. |
Datagram number |
3 datagrams: 0, 1, 2 |
3 |
ALARM |
Alarm |
0b00 = no alarm 0b01 = low alarm 0b10 = high alarm 0b11 = not used |
2 |
BATTERY_LEVEL |
Battery level |
2-bit unsigned integer 0 to 3 0: 10% 1: 30% 2: 60% 3: 99% |
2 |
FREQUENCY |
Frequency of the highest amplitude vibration (Hz) |
16-bit unsigned integer |
16 |
ACCELERATION_PEAK |
The peak value of acceleration (m/s2) |
32-bit float Scaled by a |
32 |
ACCELERATION_RMS |
The RMS value of acceleration (m/s2)
|
32-bit float Scaled by a |
32 |
VELOCITY_PEAK |
The Peak value of velocity (mm/s)
|
32-bit float Scaled by a |
32 |
VELOCITY_RMS |
The RMS value of velocity (mm/s) |
32-bit float Scaled by a Used for alarm |
32 |
DISPLACEMENT_PEAK_PEAK |
The Peak-Peak value of displacement (um) |
32-bit float Scaled by a |
32 |
DISPLACEMENT_RMS |
The RMS value of displacement (um) |
32-bit float Scaled by a |
32 |
TEMPERATURE_X10 |
Temperature value of equipment's surface (oC) |
16-bit signed integer Formula: ACTUATL_TEMPERATURE = TEMPERATURE_X10 / 10 Range: -40.0 to 70.0 degC Example: 0x0102 = 258 => (258 / 10) = 25.8 degC |
16 |
DATAGRAM_ID | Identification code of DATAGRAM_CONTENT | 3-bit unsigned integer DATAGRAM_ID = 0, 1, 2 |
3 |
DATAGRAM_CONTENT | *If DATAGRAM_ID = 0: DATAGRAM_CONTENT = VELOCITY_RMS & ACCELERATION_PEAK & FREQUENCY *If DATAGRAM_ID = 1: DATAGRAM_CONTENT = VELOCITY_PEAK & ACCELERATION_RMS & TEMPERATURE_X10 *If DATAGRAM_ID = 2: DATAGRAM_CONTENT = DISPLACEMENT_PEAK_PEAK & DISPLACEMENT_RMS & FREQUENCY |
80-bits | 80 |
ALARM_TENTATIVE | Tentative number is the number of continous alarm cycles. If the number of continous alarm cycles is greater than 7, the Tentative keep value of 7 |
3-bit unsigned integer Range: 0 to 7 |
3 |
5. Payload for Downlink messages
Users can use a downlink message to change the configuration of the device. There are 02 types of downlink messages:
- Downlink type = 0: to write the configuration for the specific type of Sigfox-ready sensor. The format is fixed for each type of sensor.
- Downlink type = 5: to write a value to any address of configuration parameter of any Sigfox-ready sensor. This method is generic and can be applied to any type of Sigfox-ready sensor, the user just needs to know the memory map of the sensor.
5.1 Downlink type = 0
Payload |
HIGH_ALARM_SETPOINT |
LOW_ALARM_SETPOINT_FACTOR |
ALARM_ENABLE |
ALARM_PERIOD |
LED_BUZZER_ENABLE |
HEARTBEAT_PERIOD |
MEASURE_PERIOD |
TX_REPEAT |
CYCLIC_DATA_PERIOD |
DEVICE_RESET |
DOWNLINK_TYPE |
bits |
32 |
8 |
1 |
3 |
1 |
3 |
4 |
1 |
3 |
4 |
4 |
Value |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
0b0000 = 0 |
Below is the table to explain in detail the meaning of each configuration parameter and its default value.
Parameter |
Description |
Possible values |
Default value |
Length (in bits) |
HIGH_ALARM_SETPOINT |
High alarm setpoint for calculated value |
32-bit float value |
1000000000 |
32 |
LOW_ALARM_SETPOINT_FACTOR |
Low alarm setpoint for calculated value |
8-bit unsigned integer LOW_ALARM_SETPOINT = HIGH_ALARM_SETPOINT * LOW_ALARM_SETPOINT_FACTOR / 200 |
0 |
8 |
ALARM_ENABLE |
Enable/Disable ALARM event |
0b0 = ALARM event is OFF 0b1 = ALARM event is ON |
0b0 = ALARM event is OFF |
1 |
ALARM_PERIOD |
Period of time to send ALARM event |
0b000 = every 10min 0b001 = every 30min 0b010 = every 1h 0b011 = every 2h 0b100 = every 3h 0b101 = every 6h 0b110 = every 12h 0b111 = every 24h |
0b000 = every 10min |
3 |
LED_BUZZER_ENABLE |
Enable/Disable LEDs and Buzzers interactions for action not triggered by the reed switch |
0b0 = LEDs and Buzzers are OFF 0b1 = LEDs and Buzzers are ON |
0b1 = LEDs and Buzzers are ON |
1 |
HEARTBEAT_PERIOD |
Period of time to send HEARTBEAT event |
0b000 = every 1h 0b001 = every 6h 0b010 = every 12h 0b011 = every 24h (1 day) 0b100 = every 48h (2 days) 0b101 = every 72h (3 days) 0b110 = every 120h (5 days) 0b111 = every 240h (10 days) |
0b011 = every 24h (1 day) |
3 |
MEASURE_PERIOD |
Period of time to measure sensor |
0b0000 = every 1s 0b0001 = every 2s 0b0010 = every 5s 0b0011 = every 10s 0b0100 = every 20s 0b0101 = every 30s 0b0110 = every 1min 0b0111 = every 2min 0b1000 = every 5min 0b1001 = every 10min 0b1010 = every 20min 0b1011 = every 30min 0b1100 = every 1h 0b1101 = every 2h 0b1110 = every 3h 0b1111 = every 6h |
0b1100 = every 1h |
4 |
TX_REPEAT |
Sigfox TX repeat |
0b0 = Send RF 1 time 0b1 = Send RF 3 time |
0b1 = Send RF 3 time |
1 |
CYCLIC_DATA_PERIOD |
Period of time to send CYCLIC_DATA event |
0b000 = every 10min 0b001 = every 30min 0b010 = every 1h 0b011 = every 2h 0b100 = every 3h 0b101 = every 6h 0b110 = every 12h 0b111 = every 24h |
0b010 = every 1h |
3 |
DEVICE_RESET |
Once this parameter is set, the device shall restart once after having received the Downlink. |
0b1010 = 0xA = force device reset others = do nothing |
0b0000 = do nothing |
4 |
DOWNLINK_TYPE |
Downlink type |
4-bit unsigned integer See Sigfox Downlink tab |
0b0000 |
4 |
EXAMPLE FOR DOWNLINK TYPE = 0
If you plan to change the MEASURE_PERIOD = 30 minutes and CYCLIC_DATA_PERIOD = 1 hr then please enter your desired values, guided by the table below:
Parameter |
Setting value (in decimal) |
Setting Value (in binary) |
Length (in bits) |
HIGH_ALARM_SETPOINT |
1000000000 |
00111011100110101100101000000000 |
32 |
LOW_ALARM_SETPOINT_FACTOR |
0 |
00000000 |
8 |
ALARM_ENABLE |
|
0 |
1 |
ALARM_PERIOD |
|
000 |
3 |
LED_BUZZER_ENABLE |
|
1 |
1 |
HEARTBEAT_PERIOD |
|
011 |
3 |
MEASURE_PERIOD |
|
1011 |
4 |
TX_REPEAT |
|
1 |
1 |
CYCLIC_DATA_PERIOD |
010 |
3 |
|
DEVICE_RESET |
|
0000 |
4 |
DOWNLINK_TYPE |
|
0000 |
4 |
Then you will get the final configuration code as below:
0011 1011 1001 1010 1100 1010 0000 0000 0000 0000 0000 1011 1011 1010 0000 0000 = 3B9ACA00000BCA00
5.2 Downlink type = 5
With this downlink, the user can write the configuration to any address on the memory map of the device. Please refer to the memory map of the device to understand what parameters can be written.
The length of the configuration parameter can be 1, 2 bytes, or 4 bytes, but the total length of the Downlink payload must equal 64 bits (8 bytes). Please see below the downlink format for both types.
Downlink type 5 for the parameter of 2 bytes length:
Payload |
PRM_ADDRESS |
PRM_LENGTH |
PRM_VALUE |
reserved |
DOWNLINK_TYPE |
bits |
8 |
8 |
16 |
28 |
4 |
Value |
yes |
0x02 = 2 |
yes |
zeros |
0b0101 = 5 |
Downlink type 5 for the parameter of 4 bytes length:
Payload |
PRM_ADDRESS |
PRM_LENGTH |
PRM_VALUE |
reserved |
DOWNLINK_TYPE |
bits |
8 |
8 |
32 |
12 |
4 |
Value |
yes |
0x04 = 4 |
yes |
zeros |
0b0101 = 5 |
Where:
- PRM_ADDRESS: address of the configuration parameter in the memory map of the device;
- PRM_LENGTH: is the length of that parameter, in bytes;
- PRM_VALUE: is the value the user wants to write to that parameter;
- reserved: a series of bits of zero to fulfill the downlink so that it has the total length = 64 bits (8 bytes)
EXAMPLE FOR DOWNLINK TYPE = 5
Here is the list of parameters of WSSFC-V1A-... that can be configured via Downlink type = 5 and the examples of the downlink payload on the right-most side column. It is the example value, not the default value of the device. Please check the memory map of the device for more detail about the parameters.
Note: the total length of the downlink must be equal to 8 bytes
PARAMETER |
DATA TYPE OF PARAMETER |
PRM_ADDRESS |
PRM_LENGTH |
PRM_VALUE |
DOWNLINK_TYPE |
PAYLOAD OF DOWNLINK (IN HEXA) |
(bytes) |
|
1 |
1 |
4 |
2 |
8 |
CONSTANT_A |
float |
0x16 |
0x04 = 4 |
0x3F8CCCCD = 1.1 |
0x0005 |
16043F8CCCCD0005 |
DATAGRAM_CONFIG |
uint16 |
0x32 |
0x02 = 2 |
0x0001 = 1 |
0x0005 |
3202000100000005 |
V1A_RANGE_MODE |
uint16 |
0x34 |
0x02 = 2 |
0x0001 = 1 |
0x0005 |
3402000100000005 |
5.3 Free online data conversion tools
- To convert from Float to Hex and vice versa, users may use this free online tool: https://gregstoll.com/~gregstoll/floattohex/
- To convert a decimal number to Hex, the user may use this free online tool: https://www.binaryhexconverter.com/decimal-to-hex-converter
6. Reed switches
The Sigfox-ready sensor normally comes with at least one reed switch for user manipulation during commissioning or maintenance.
Some other versions come with 02 reed switches.
The WSSFC-V1A comes with one reed switch; please find below the functions of this switch.
EVENT |
PRE-CONDITION |
ACTION |
LED STATUS |
ACTIVITIES |
POST-CONDITION |
FORCE_DATA |
Any state |
Move Magnet Key to the contact point of REED SWITCH. Led blink SKY BLUE, move Magnet Key away. |
Blink SKY BLUE |
the device will send the uplink message FORCE_DATA |
Back to the previous state |
PARAMETERS_UPDATE |
Any state |
Move Magnet Key to the contact point of REED SWITCH. Led blink SKY BLUE, hold Magnet Key 5s. Led blink PURPLE, move Magnet Key away. |
Blink PURPLE |
the device will send the uplink message PARAMETER_UPDATE and wait for a new downlink to get the new configuration |
Back to the previous state |
No Comments