6013 - P20 002 - Communication Protocol NEON Vibration Sensor - E
6013 - P20 002 - Communication Protocol NEON Vibration Sensor - E
Communication Protocol
Version E
10-05-2021
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E By: ML, TB, WK, ZZ
Contents
1 General 3
2 Message Schemes 3
2.1 Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Device Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Sensor Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Sensor Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Button press . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 Deactivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Message overview 10
4 Decoding/encoding 11
5 Message Header 12
5.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 Uplink Messages 13
6.1 Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.2 Device Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.3 Activated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.4 Deactivated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.4.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.4.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.5 Sensor Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.5.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.5.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.6 Sensor Data (FFT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.6.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.6.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Downlink Messages 30
7.1 Base Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.1.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.1.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.2 Sensor Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.3 Event Condition Configuration Binary Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.3 Sensor Data Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.3.1 JSON Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.3.2 Binary Encoding and Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.3.3 Trigger Threshold Configuration Binary Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 1 of 50
CONTENTS
8 Examples 46
8.1 Example FFT configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.1.1 Example 1: Velocity FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.1.2 Example 2: Acceleration FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 2 of 50
2 MESSAGE SCHEMES
1 General
• All variables are little endian.
• All application messages are sent through port 15.
2 Message Schemes
2.1 Activation
Activation of the Vibration sensor is initiated by the operator. After activation an Activation Message is sent. The full
sequence is depicted below.
Long press
send Boot
LED indicate ongoing LoRa transmission
Confirmation message
Test LoRa
communication
activate
Activation
send Activated
In case of an error during activation, the procedure is aborted. The error situations can be as followed:
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 3 of 50
2 MESSAGE SCHEMES
...
...
Confirmation message
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 4 of 50
2 MESSAGE SCHEMES
condition changed
trigger periodic measurement
periodic measurement
Environment change
periodic measurement
confirmation message
timer trigger
periodic measurement
periodic measurement
confirmation message
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 5 of 50
2 MESSAGE SCHEMES
Confirmation message
Confirmation message
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 6 of 50
2 MESSAGE SCHEMES
Button press
confirmation message
calculation_trigger.on_button_press
of sensor data configuration is enabled
Confirmation message
Confirmation message
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 7 of 50
2 MESSAGE SCHEMES
2.6 Configuration
The device can be configured with an configuration downlink.
schedule downlink
send configuration
Confirmed downlink
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 8 of 50
2 MESSAGE SCHEMES
2.7 Deactivation
The user can deactivate by a long press of the button. This will result in a Deactivation Message.
Confirmed message
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 9 of 50
3 MESSAGE OVERVIEW
3 Message overview
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 10 of 50
4 DECODING/ENCODING
4 Decoding/encoding
The messages are sent over LoRa in a binary bytestring. A LoRa network server can decode raw bytestrings coming
from the LoRa devices into JSON objects. It can also encode JSON objects back into bytestrings that form the payload
of downlink messages.
LoRa NS
Figure 8: Decoding/encoding
Below each message is described and how it is encoded in the bytestring. A example decoder / encoder is provided
with this document. If using this Decoder / Encoder the bytestring information below can be ignored.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 11 of 50
5 MESSAGE HEADER
5 Message Header
The header is at the head of all messages. It indicates the protocol version and message type.
{
"header": {
"message_type": <json string>,
"protocol_version": <json number>
}
}
Listing 1: Header JSON structure
protocol_version
The version of the protocol:
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 12 of 50
6 UPLINK MESSAGES
6 Uplink Messages
6.1 Boot
The boot message is sent when the device is used for the first time or when a reboot occurs. Reboots might occur
intended in case of activating a newly received configuration. Or the device might reboot due to a system error as a
matter to recovery (e.g. continuous communication failures, unforeseen situations, and others). The boot message
contains information about why it has (re)booted. Typically this information can be ignored and is only used for solving
problems in the field. During normal operation and with sufficient network quality reboots seldomly occur, other than
activating a newly received configuration.
{
"boot": {
"base": {
"device_type": <json string>,
"version_hash": <json string>,
"config_crc": <json string>,
"reset_flags": <json string>,
"reboot_counter": <json number>,
"reboot_info": <json string>,
"bist": <json string>
},
"sensor": {
"device_type": <json string>,
"device_id": <json string>,
"version_hash": <json string>,
"config_crc": <json string>,
"data_config_crc": <json string>,
"reset_flags": <json string>,
"reboot_counter": <json number>,
"reboot_info": <json string>,
"bist": <json string>
}
}
}
Listing 2: Boot JSON structure
• "ld" (5)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 13 of 50
6 UPLINK MESSAGES
• bit 0 - Firewall
• bit 1 - Option Byte Loader
• bit 2 - Pin
• bit 3 - Brown Out
• bit 4 - Software
• bit 5 - IWDG
• bit 6 - WWDG
• bit 7 - Low Power
base.reboot_counter uint8 9
Counter of the number of reboots. Each time a reboot
occurs the counter is increased. The counter is 8bit
and will wrap after 255 to 0. This can be used for
detecting abnormal rebooting behavior.
Range: 0 .. 255
base.reboot_info uint8[9] 10..18
Informational string with information on the reboot. byte [0]
reboot type
byte [1..8]
• "swdog (ABCD)" reboot type
• "assert (caller: 0x01020304; value: -1234)" specific payload
• "application (0xAABBCCDD)"
• "system (error: 0xAABBCCDD; caller:
0xFEEDC0DE)"
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 14 of 50
6 UPLINK MESSAGES
byte value:
bit value:
• 0: test failed
• 1: test succeeded
sensor.device_type uint8 20
The device type as known in the NEON family. For this
device the value is:
• "vb" (6)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 15 of 50
6 UPLINK MESSAGES
Range: 0 .. 255
sensor.reboot_info uint8[9] 36..44
Informational string with information on the reboot.
byte [0]
Example values: reboot type
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 16 of 50
6 UPLINK MESSAGES
bit value:
• 0: test failed
• 1: test succeeded
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 17 of 50
6 UPLINK MESSAGES
{
"device_status": {
"base": {
"config_crc": <json string>,
"battery_voltage": {
"low": <json number>,
"high": <json number>,
"settle": <json number>
},
"temperature": { "min": <json number>, "max": <json number>, "avg": <json number> },
"lvds_error_counter": <json number>,
"lora_tx_counter": <json number>,
"avg_rssi": <json number>,
"avg_snr": <json number>,
"bist": <json string>
},
"sensor": {
"device_type": <json string>,
"config_crc": <json string>,
"data_config_crc": <json string>,
"event_counter": <json number>,
"bist": <json string>
}
}
}
Listing 3: Device Status JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 18 of 50
6 UPLINK MESSAGES
base.lora_tx_counter uint8 13
Number of LoRa transmissions since the last device
status message.
base.avg_rssi uint8 14
The average RSSI of received messages since the
last device status message. The value is in units of −1 dBm per LSB
1 dBm.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 19 of 50
6 UPLINK MESSAGES
byte value:
bit value:
• 0: test failed
• 1: test succeeded
sensor.device_type uint8 17
The device type as known in the NEON family. For this
device the value is:
• "vb" (6)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 20 of 50
6 UPLINK MESSAGES
Range: 00 .. 255
• 15: bist OK
• Other values: bist failed
bit value:
• 0: test failed
• 1: test succeeded
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 21 of 50
6 UPLINK MESSAGES
6.3 Activated
6.3.1 JSON Structure
{
"activated": {
"sensor": {
"device_type": <json string>,
"device_id": <json string>
}
}
}
Listing 4: Activated JSON structure
• "vb" (6)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 22 of 50
6 UPLINK MESSAGES
6.4 Deactivated
6.4.1 JSON Structure
{
"deactivated": {
"reason": <json string>
}
}
Listing 5: Deactivated JSON structure
• "user_triggered" (0)
A user performed the deactivation process
• reserved (1)
• "activation_sensor_comm_fail" (2)
Failed to communicate with the sensor during
activation process
• reserved (3 .. 255)
reserved uint8 2
Allways 0 for VB.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 23 of 50
6 UPLINK MESSAGES
{
"sensor_event": {
"trigger": <json string>,
"rms_velocity": {
"x": { "min": <json number>, "max": <json number>, "avg": <json number> },
"y": { "min": <json number>, "max": <json number>, "avg": <json number> },
"z": { "min": <json number>, "max": <json number>, "avg": <json number> }
},
"acceleration": {
"x": { "min": <json number>, "max": <json number>, "avg": <json number> },
"y": { "min": <json number>, "max": <json number>, "avg": <json number> },
"z": { "min": <json number>, "max": <json number>, "avg": <json number> }
},
"temperature": { "min": <json number>, "max": <json number>, "avg": <json number> },
"condition_0": <json number>,
"condition_1": <json number>,
"condition_2": <json number>,
"condition_3": <json number>,
"condition_4": <json number>,
"condition_5": <json number>
}
}
Listing 6: Sensor Event JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 24 of 50
6 UPLINK MESSAGES
• "timer" (0)
On the periodic timer
• "button" (1)
On a button presss
• "condition_0" (2)
• "condition_1" (3)
• "condition_2" (4)
• "condition_3" (5)
• "condition_4" (6)
• "condition_5" (7)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 25 of 50
6 UPLINK MESSAGES
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 26 of 50
6 UPLINK MESSAGES
{
"sensor_data": {
"config": {
"frame_number": <json number>,
"sequence_number": <json number>,
"axis": <json string>,
"unit": <json string>,
"scale": <json number>,
"start_frequency": <json number>,
"spectral_line_frequency": <json number>
},
"raw": [
<json number>, <json number>, <json number>,...
],
"frequency": [
<json number>, <json number>, <json number>,...
],
"magnitude": [
<json number>, <json number>, <json number>,...
]
}
}
Listing 7: Sensor Data JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 27 of 50
6 UPLINK MESSAGES
config.frame_number bits[0..7]
Frame number used for sequential data.
Range: 0 .. 255
config.sequence_number bits[8..9]
Sequence number of current data set.
Range: 0 .. 3
• velocity = 0 velocity = 0
• acceleration = 1 acceleration = 1
Range: 1 .. 15
• 0: 0.01
• 1: 0.1
• 2: 1 bits[19..31]
• 3: 10
config.frequency_start:
Starting FFT bin of the FFT.
Range: 0 .. 8191
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 28 of 50
6 UPLINK MESSAGES
Range: 1 .. 255
Range: 0 .. 255
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 29 of 50
7 DOWNLINK MESSAGES
7 Downlink Messages
7.1 Base Configuration
In the device configuration the non sensor related behavior can be configured. Changing these parameters will have an
effect on battery life and quality of service.
{
"base_configuration": {
"switch_mask": {
"enable_confirmed_event_message": <json bool>,
"enable_confirmed_data_message": <json bool>,
"allow_deactivation": <json bool>
},
"communication_max_retries": <json number>,
"unconfirmed_repeat": <json number>,
"periodic_message_random_delay_seconds": <json number>,
"status_message_interval_seconds": <json number>,
"status_message_confirmed_interval": <json number>,
"lora_failure_holdoff_count": <json number>,
"lora_system_recover_count": <json number>,
"lorawan_fsb_mask": [<json string>, <json string>, <json string>,
<json string>, <json string>]
}
}
Listing 8: Base Configuration JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 30 of 50
7 DOWNLINK MESSAGES
allow_deactivation true
Allow local deactivation procedure to be executed for bit[3]
either disabling the sensor or replacing it with a new Binary (hex):
sensor. 0x09
Range: 1 .. 5
periodic_message_random_delay_seconds 60 uint8 4
To avoid clustering and collisions of uplink
transmissions of multiple devices a random delay is Binary (hex):
added to periodic messages (device status message 0x3C
and timer triggered event message).
Range: 0 s .. 255 s
status_message_interval_seconds 86400 (once uint16 5..6
Interval in seconds at which periodic device status per day)
messages are sent. 60 s
Binary (hex): per LSB
Range: 60 s .. 604 800 s (= 7 days) 0xA0
0x05
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 31 of 50
7 DOWNLINK MESSAGES
Range: 0 .. 255
Range: 1 .. 255
lora_system_recover_count 1 uint8 9
The number of attempts the LoRa handler is trying to
recover from a system failure (not responsive radio). Binary (hex):
0x01
Range: 1 .. 255
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 32 of 50
7 DOWNLINK MESSAGES
Binary (hex):
0xFF
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
EU868:
“0x0000”,
“0x0000”,
“0x0000”,
“0x0000”,
“0x0000”
Binary (hex):
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
config_crc Refer to uint16 20..21
CRC of the configuration values above. It is calculated TWTG GitHub
by the Encoder. repository for
examples.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 33 of 50
7 DOWNLINK MESSAGES
{
"sensor_configuration": {
"device_type": <json string>,
"measurement_interval_seconds": <json number>,
"periodic_event_message_interval": <json number>,
"frequency_range": {
"rms_velocity": <json string>,
"peak_acceleration": <json string>
},
"events":
[
{ "mode": <json string>, "mode_value": <json number> },
{ "mode": <json string>, "mode_value": <json number> },
{ "mode": <json string>, "mode_value": <json number> },
{ "mode": <json string>, "mode_value": <json number> },
{ "mode": <json string>, "mode_value": <json number> },
{ "mode": <json string>, "mode_value": <json number> }
]
}
}
Listing 9: Sensor Configuration JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 34 of 50
7 DOWNLINK MESSAGES
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 35 of 50
7 DOWNLINK MESSAGES
Binary (hex):
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
0x00
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 36 of 50
7 DOWNLINK MESSAGES
off mode:
Disables all condition detection triggers.
rms_velocity_trigger_axis mode:
triggers when the rms velocity crosses the mode_value
threshold.
peak_acceleration_trigger_axis mode:
triggers when the acceleration crosses the
mode_value threshold.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 37 of 50
7 DOWNLINK MESSAGES
{
"sensor_data_configuration": {
"device_type": <json string>,
"calculation_trigger": {
"on_event": <json bool>,
"on_threshold": <json bool>,
"on_button press": <json bool>
},
"calculation_interval": <json number>,
"fragment_message_interval": <json number>,
"threshold_window": <json number>,
"trigger_thresholds": [
{ "unit": <json string>, "frequency": <json number>, "magnitude": <json number> },
{ "unit": <json string>, "frequency": <json number>, "magnitude": <json number> },
{ "unit": <json string>, "frequency": <json number>, "magnitude": <json number> },
{ "unit": <json string>, "frequency": <json number>, "magnitude": <json number> },
{ "unit": <json string>, "frequency": <json number>, "magnitude": <json number> }
],
"selection": {
"axis": <json string>,
"resolution":<json string>,
"enable_hanning_window":<json bool>,
},
"frequency": {
"span": {
"velocity": { "start": <json number>, "stop": <json number> },
"acceleration": { "start": <json number>, "stop": <json number> }
},
"resolution": { "velocity": <json number>, "acceleration": <json number> }
},
"scale": { "velocity": <json number>, "acceleration": <json number> }
}
}
Listing 10: Sensor Data Configuration JSON structure
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 38 of 50
7 DOWNLINK MESSAGES
threshold_window 10 uint8 7
(only used if calculation_trigger.on_threshold is
enabled) Binary (hex): 2 FFT bins
0x05 per LSB
Window around centre frequency selected in:
thresholds.frequency.
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 39 of 50
7 DOWNLINK MESSAGES
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 40 of 50
7 DOWNLINK MESSAGES
frequency_resolution.velocity 1 uint8 37
FFT bins for each line of the transmitted velocity FFT
Binary (hex):
Range: 1 .. 255 FFT bin 0x01
frequency_resolution.acceleration 2 uint8 38
FFT bins for each line of the transmitted acceleration
FFT Binary (hex):
0x02
Range: 1 .. 255 FFT bin
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 41 of 50
7 DOWNLINK MESSAGES
scale.velocity.coefficient bits[0..3]
Coefficient of the scaling factor.
Range: 1 .. 15
scale.velocity.power bits[4..5]
Power of 10 of the scaling factor.
• 0: 0.01
• 1: 0.1
• 2: 1
• 3: 10
Example:
Desired power is -1
add 2 to convert from signed to unsigned
Result: scale.velocity.power = 1
scale.velocity.reserved
Default value: 0 bits[6..7]
1 · 100 = 1
Resulting in:
scale.velocity.coefficient = 1
scale.velocity.power = 2
Resulting amplitude resolution:
1 ∗ 102−2
= 0.003 92 mm/s
255
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 42 of 50
7 DOWNLINK MESSAGES
scale.acceleration.coefficient bits[0..3]
Coefficient of the scaling factor.
Range: 1 .. 15
scale.acceleration.power bits[4..5]
Power of 10 of the scaling factor.
• 0: 0.01
• 1: 0.1
• 2: 1
• 3: 10
scale.acceleration.reserved
Default value: 0
Resulting in:
scale.acceleration.coefficient = 4
scale.acceleration.power = 3
Resulting amplitude resolution:
4 ∗ 103−2
= 0.157 m/s2
255
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 43 of 50
7 DOWNLINK MESSAGES
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 44 of 50
7 DOWNLINK MESSAGES
• velocity = 0
• acceleration = 1
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 45 of 50
8 EXAMPLES
8 Examples
8.1 Example FFT configuration
The FFT function of the vibration sensor combines a velocity FFT and an acceleration FFT on a single dataset.
This example explains the settings for a velocity FFT from 5 Hz .. 205 Hz with a frequency resolution of 1 FFT bin.
The first step is to select the required range and resolution for the following variables:
• frequency_span.velocity.start = 5 Hz
• frequency_span.velocity.stop = 165 Hz
• frequency_resoltuion.velocity = 1 FFT bin
• frequency_scale.velocity = 4 mm/s
• selection.resolution = "low_res"
The next step is to convert the frequencies to FFT bins, with the following formula:
f requency
=5
F F T binres
whereby:
The chosen values will result in the velocity spectrum as shown in figure: 9.
The spectrum divides into:
V elocity.stop
− V Felocity.start
F F T binres F T binres
d e = number of messages
resolution.V elocity ∗ length(data)
165
− 5
d 0.8138 0.8138 e = 5
1 ∗ 40
The time it will take to receive the complete velocity spectrum is:
5 ∗ f ragment_message_interval = time_to_complete_F F T
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 46 of 50
8 EXAMPLES
200
150
|A(f)|
100
50
0
0 50 100 150 200 250
f (Hz)
|A(f)|
|A(f)|
|A(f)|
|A(f)|
100 100 100 100 100
50 50 50 50 50
0 0 0 0 0
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200
f (Hz) f (Hz) f (Hz) f (Hz) f (Hz)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 47 of 50
8 EXAMPLES
This example explains the settings for an Acceleration FFT from 205 Hz .. 6666 Hz with a frequency resolution of 6 FFT
bins.
The first step is to pick to required range and resolution for the following variables:
• frequency_span.acceleration.start = 205 Hz
• frequency_span.acceleration.stop = 6666 Hz
• frequency_resolution.acceleration= 6 FFT bin
• frequency_scale.acceleration = 20 m/s2
• selection.resolution = "high_res"
The next step is to convert the frequencies to FFT bins, with the following formula:
f requency
=5
F F T binres
whereby:
The chosen values will result in the acceleration spectrum as shown in the figure: 10. The spectrum divides into:
acceleration.stop
F F T binres − acceleration.start
F F T binres
d e = number of messages
resolution.acceleration ∗ length(data)
6666 205
1.6276 − 1.6276
= d16.1525e = 17
6 ∗ 40
Note 1: If the answer is not a whole number, it should be rounded up (ceil) to a whole number.
Note 2: The remaining data points in the last message are padded with zeros.
The time it will take to receive the complete acceleration spectrum is:
17 ∗ f ragment_message_interval = time_to_complete_F F T
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 48 of 50
8 EXAMPLES
200
150
|A(f)|
100
50
0
0 1000 2000 3000 4000 5000 6000 7000
f (Hz)
|A(f)|
|A(f)|
|A(f)|
|A(f)|
100 100 100 100 100
50 50 50 50 50
0 0 0 0 0
220 240 260 280 300 320 340 360 380 400 420 440 3500 3520 3540 3560 6620 6640 6660 6680
f (Hz) f (Hz) f (Hz) f (Hz) f (Hz)
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 49 of 50
Revision History
6013_P20-002_Communication-Protocol-NEON-Vibration-Sensor_E 50 of 50