Plugin name 'sidebar.BROKEN' is not a valid plugin name, only the characters a-z and 0-9 are allowed. Maybe the plugin has been installed in the wrong directory?

Stampa

ENGINKO DATA FRAME FORMAT


Rev. 1.34


The document describes encryptions related to LoRaWAN® payloads. Relevant chapters per product of interest are marked with a cross “X”.

1. UPLINK MESSAGES from END-DEVICES

PRODUCT PART NUMBER 1.1 TIME SYNC REQUEST 1.2 T/P/RH 1.3 UART 1.4 POWER 1.5 IO 1.6 REPORT DATA 1.7 T/P/TH/LUX/VOC 1.8 ANALOG DATA 1.9 T/P/RH/LUX/VOC/CO2 1.10 SPECIAL DATA 1.11 DIGITAL DATA 1.12 SERIAL DATA 1.13 LENGTH ERROR 1.14 LEVEL MEASUREMENT 1.15 CURRENT CONFIGURATION 1.16 T/RH 1.17 T/RH LOG
MCF-LW06485/B X X X X
MCF-LW06VMC X X X
MCF-LW06VMC2 X X X
MCF-LW06232 X X X X X
MCF-LW06CNT/B X X X X X
MCF-LW06420/D X X X X
MCF-LW06010/D X X X X
MCF-LW06424/D X X X X
MCF-LW06420B X X X X
MCF-LW06010B X X X X
MCF-LW06424B X X X X
MCF-LW06420T X X X X X
MCF-LW06010T X X X X X
MCF-LW06424T X X X X X
MCF-LW06KIO X X X X X X X X
MCF-LW06DO X X X X X X X
MCF-LW12PLG X X X X X
MCF-LW12MET X X X X X X
MCF-LW13IO X X X X X
MCF-LW13MIO X X X X X
MCF-LW12TERWP X X X X
MCF-LW12TERPM X X X X
MCF-LW12TER X X X X
MCF-LW12VOC X X X X X
MCF-LW12CO2/E X X X X X
MCF-LWWS00 X X X X
MCF-LWWS01 X X X X
MCF-LW06DAVK/P X X X X
EGK-LW20Lxx X X X X
EGK-LW20Wxx X X X X
EGK-LW20LTxx X X X X
EGK-LW20WTxx X X X X
EGK-LW22PLG X X X X X
EGK-LW22CCMxx X X X X X
EGK-LW22TWPxx X X X X

2. DOWNLINK MESSAGES to END-DEVICES

PRODUCT PART NUMBER 2.1 TIME SYNC ANSWER 2.2 UART MESSAGE 2.3 IO MESSAGE 2.4 SET PERIOD 2.5 METERING REQUEST 2.6 SET PRESSURE COMPENSATION 2.7 THRESHOLDS 2.8 SERIAL DATA 2.9 OFF COMMAND 2.10 SET ELEVATION 2.11 GENERAL SETTINGS 2.12 CO2 SENSOR SETTINGS 2.13 ENERGY METER SETTINGS 2.14 CNT OPTION 2.15 BVOC/PM SETTINGS 2.16 MODBUS SETTINGS 2.17 ENABLE LOG 2.18 DELAY SETTINGS 2.19 SERIAL SETTINGS 2.20 OUTPUT SETTINGS 2.21 CONFIGURATION REQUEST 2.22 ENABLE INPUT COUNTERS 2.23 ENABLE OUTPUT COUNTERS 2.24 LEVEL SENSOR SETTINGS 2.25 IO REQUEST MESSAGE 2.26 OUTPUT PULSE TRAIN 2.27 CCM SETTINGS 2.28 CCM LOG REQUEST 2.29 UTC SETTINGS 2.30 GEOGRAPHICAL COORDINATES 2.31 FORCE MESSAGE
MCF-LW06485/B X X X X X X X X X X X
MCF-LW06VMC X X X X X X
MCF-LW06VMC2 X X X X X X
MCF-LW06232 X X X X X X X X X X
MCF-LW06CNT/B X X X X X X X
MCF-LW06420/D/T X X X X X X X X X X
MCF-LW06010/D/T X X X X X X X X X X
MCF-LW06424/D/T X X X X X X X X X X
MCF-LW06420B X X X X X X X X
MCF-LW06010B X X X X X X X X
MCF-LW06424B X X X X X X X X
MCF-LW06KIO X X X X X X X X X X X X X X X X X
MCF-LW06DO X X X X X X X X X X X X X
MCF-LW12PLG X X X X X X X X X X X X X X
MCF-LW12MET X X X X X X X X X X X X X X X
MCF-LW13IO X X X X X X X X X X X X
MCF-LW13MIO X X X X X X X X X X X X
MCF-LW12TERWP X X X X X X X
MCF-LW12TERPM X X X X X X X X
MCF-LW12TER X X X X X X X
MCF-LW12VOC X X X X X X X X X
MCF-LW12CO2/E X X X X X X X X X X
MCF-LWWS00 X X X X X X X X X
MCF-LWWS01 X X X X X X X X X X
MCF-LWWS02 X X X X X X X X X
MCF-LWWS03 X X X X X X X X X X
MCF-LW06DAVK/P X X X X X X X X X X
EGK-LW20Lxx X X X X X X X
EGK-LW20Wxx X X X X X X X
EGK-LW20LTxx X X X X X X X X
EGK-LW20WTxx X X X X X X X X
EGK-LW22PLG X X X X X X X X X X X X X X
EGK-LW22CCMxx X X X X X X X X X X
EGK-LW22TWPxx X X X X X X X

1.1 TIME SYNC REQUEST

name size [byte] hex value meaning
Uplink ID 1 byte 01 Time sync request
Sync ID 4 byte XX XX XX XX ID of sync request
Sync Version 3 byte (optional) XX XX XX Major and minor version and build
Application type2 byte 02 00 for MCF-LW06VMC
02 01 for MCF-LW06232
02 03 for MCF-LW06485
02 04 for MCF-LWWS00 and MCF-LW06DAVK
02 05 for MCF-LW06KIO
02 07 for MCF-LW06420/010 OBSOLETE
02 08 for MCF-LWWS01 and MCF-LW06DAVKP
02 09 for MCF-LW06420
02 0A for MCF-LW06010
02 0B for MCF-LW06424
02 0C for MCF-LW06420D
02 0D for MCF-LW06010D
02 0E for MCF-LW06424D
02 0F for MCF-LW06VMC2
02 10 for MCF-LW06420B
02 11 for MCF-LW06010B
02 12 for MCF-LW06424B
02 13 for MCF-LW06CNT
02 14 for MCF-LW06CNTB
02 15 for MCF-LW06010T
02 16 for MCF-LW06420T
02 17 for MCF-LW06424T
02 18 for MCF-LW06DO
04 00 for MCF-LW12TER (old)
04 01 for MCF-LW12TERWP
04 02 for MCF-LW12VOC
04 03 for MCF-LW12CO2
04 05 for MCF-LW12TERPM
04 06 for MCF-LW12TER
04 07 for MCF-LW12CO2
07 00 for MCF-LW12MET
07 01 for MCF-LW13IO
07 02 for MCF-LW12PLG
09 00 for MCF-LW13MIO
0A 00 for EGK-LW20L00
0A 01 for EGK-LW20W00
0A 02 for EGK-LW20LT00
0A 03 for EGK-LW20WT00
0A 04 for EGK-LW22CCM
0A 05 for EGK-LW22TWP
0B 00 for EGK-LW22PLG
Option 1 byte (optional) XX bit 0 set if first message after boot
bit 1 set if external power is going down
RFU X byte XX.. Optional RFU byte

The device, after sending the message, waits for the time sync answer (2.1 TIME SYNC ANSWER).If nothing received, il will try sendind 3 more downlinks.

You have to reply before the 4th uplink.

Time sync reply must be sent after a time sync request (starting with 01), otherwise it will be ignored.

If error persists, it will try again after one week. If it receives the right answer, it aligns the internal clock and a new sync message will be sent after a week to overcome real time clock drift.

If not handled in the right way can cause a unnecessary battery consumption.

Example
message after a power-on:
01787d3c250002000203 01

Uplink ID 01 = Time Sync request
Sync ID 787d3c25 = ID of this Sync Reuest
Sync Version 000200 = Major and minor version and build
Application typ 0203 = MCF-LW06485
Option 01 = bit 0 set: first message after boot

message during a power down (only for MCF-LW06xxx family class C):
014e7d3c25000200020302


HOME

1.2 T/P/RH

name size [byte] hex value meaning
Uplink ID 1 byte 04 Temperature/Pressure/Humidity
Data 10 byte XX XX …Measure 1, refer to Note 1
10 byte XX XX …Measure 2, refer to Note 1
10 byte XX XX …Measure 3, refer to Note 1
Batt % 1 byte (optional)XX Battery percentage
RFU 4 byte (optional)XX XX XX XXOptional RFU byte

Note 1


The 10 bytes for each measurement are divided as follows:

  • 4 bytes LSB are for the date and time. The MSB (most significant byte) is on the right so they must be read from the right. The 4 byte in reverse order are as follows:
    • 7 bit for the offset of the year, starting from the year 2000
    • 4 bit per month
    • 5 bit for day of the month
    • 5 bits for hour
    • 6 bits for minutes
    • 5 bits for half the seconds. The seconds range is from 0 to 31, so the result should be multiplied by 2 to find the actual seconds of the measurement.
  • 2 bytes LSB for temperature. The temperature is represented by a signed integer with the least significant byte first. The temperature is expressed in hundreds of a °C degree.
  • 1 byte for humidity. Relative humidity is an unsigned integer corresponding to twice the percentage of humidity.
  • 3 bytes LSB for pressure. Pressure is an unsigned integer with the least significant byte first; it is expressed in Pascal.

Example Sample payload: 04dc7e3721b40a47608801dd7e3721b10a43608801e07e3721b20a425d8801 Remove the first byte and divide the other 30 into 3 parts by 10 byte that correspond to 3 measurements. <color green>The 3 measurements will be:

  • dc7e3721b40a47608801
  • dd7e3721b10a43608801
  • e07e3721b20a425d8801

Decipher the first measurement dividing it by groups and applying the necessary transformations:

  • Measurement date: dc 7e 37 21
    • Byte swapping, result: 21 37 7e dc
    • The result in bits will be: 00100001 00110111 01111110 11011100
      • The bits are divided as explained above
        • Year: 0010000
          • Result: 16
            • 2000+16 = 2016
        • Month: 1001
          • Result: 9
        • Day: 10111
          • Result: 23
        • Hour: 01111
          • Result: 15
        • Minutes: 110110
          • Result: 54
        • Seconds: 11100
          • Result: 28
            • 28*2 = 56
    • The date of the measurement will be: 23/09/2016 15:54:56.
  • Temperature: b40a
    • Byte swapping, result: 0ab4
      • The result (with sign) will be +2740 with two decimal places, then + 27.40 °C.
  • Humidity: 47
    • In decimal is 71, the humidity is 71/2 = 35.5% rH.
  • Pressure: 608801
    • Byte swapping, result: 018860
      • In decimal, the result is 100448, with two decimal places the pressure is 1004.48 hPa

HOME

1.3 UART

namesize [byte] hex value meaning
Uplink ID 1 byte 05 UART
Data Application related XX XX.. Data to be forwarded (via serial or usb command)

HOME

1.4 POWER

The recurrent message of metering end-nodes is as follows:

name size [byte] hex value meaning
Uplink ID 1 byte 09 Power
Date/Time 4 byte XX XX XX XXDate and time (as for Note1)
Active energy 4 byte (s32 LSB) XX XX XX XXCumulative Active energy (Wh)
Reactive energy 4 byte (s32 LSB) XX XX XX XXCumulative Reactive energy (VARh)
Apparent energy 4 byte (s32 LSB) XX XX XX XXCumulative Apparent energy (VAh)
Running Time 4 byte (u32 LSB) XX XX XX XXSeconds of running (s)

After a message of metering request (2.5 METERING REQUEST), or enabled on the sensor, the uplink is as follows:

name size [byte] hex value meaning
Uplink ID 1 byte 09 Power
Date/Time 4 byte XX XX XX XXDate and time (as for Note1)
Active energy 4 byte (s32 LSB) XX XX XX XXCumulative Active energy (Wh)
Reactive energy4 byte (s32 LSB) XX XX XX XXCumulative Reactive energy (VARh)
Apparent energy4 byte (s32 LSB) XX XX XX XXCumulative Apparent energy (VAh)
Active power 2 byte (s16 LSB) XX XX Active power (W)
Reactive power 2 byte (s16 LSB) XX XX Reactive power (VAR)
Apparent power 2 byte (s16 LSB) XX XX Apparent power (VA)
Voltage 2 byte (u16 LSB) XX XX Voltage (dV RMS)
Current 2 byte (u16 LSB) XX XX Current (mA RMS)
Period 2 byte (u16 LSB) XX XX Period (us)
Running Time 4 byte (u32 LSB) XX XX XX XXSeconds of running (s)

HOME

1.5 IO

name size [byte] hex value meaning
Uplink ID 1 byte 0A Input/output
Date/Time 4 byte XX XX XX XX Date and time (as for Note1)
Inputs 4 byte (u32 LSB) XX XX XX XX Bit mask of the inputs
Outputs 4 byte (u32 LSB) XX XX XX XX Bit mask of the outputs
Events 4 byte (u32 LSB) XX XX XX XX Bit mask of input events

This uplink format is for 32 inputs and 32 outputs. Relevant bits depend on the device part number and its I/O capability.

In case of EGK-LW22PLG, the input status represents the status of the mains (1 for mains present, 0 for mains not present).

In case of MCF-LW12VOC or MCF-LW12CO2 with thresholds enabled, the input status represents the status of the measure (1 if over T+, 0 if under T-).

In case of MCF-LW12CO2E with thresholds enabled, the inputs 0 to 2 represents the led status (Input 0 = red, Input 1 = yellow, input 2 = green).

In case of EGK-LW20L00 and EGK-LW20W00, with accelerometer enabled, the inputs 0 represents the accelerometer status (Input = 1 start of accelerometer event start, input = 0 end of accelerometer event).


HOME

1.6 REPORT DATA

name size [byte] hex value meaning
Uplink ID 1 byte 0B Report data
Report ID 1 byte 0Y for MCF-LW06KAM, “Y” is the sequential number of the transmission in progress, is incremented at the end of each transmission.
1Y/4Y/7Y/8Y for MCF-LW06485, successful reading, “Y” is the sequential number of the transmission in progress, is incremented at the end of each transmission, refer to Note 2
5Y/6Y/9Y/AY for MCF-LW06485, error reading, “Y” is the sequential number of the transmission in progress, is incremented at the end of each transmission, refer to Note 2
2Y for MCF-LWWS00, MCF-LWWS01, MCF-LW06DAVK and MCF-LW06DAVKP, “Y” is the sequential number of the transmission in progress, is incremented at the end of each transmission.
3Y for MCF-LW12TERPM, “Y” is the sequential number of the transmission in progress, is incremented at the end of each transmission.
Frame ID 1 byte XX Progressive frame index, increased at each transmission with the same identifier
Data 1..33 byte XX XX .. for MCF-LW06485 refer to Note 2
for MCF-LWWS00 refer to Note 3
for MCF-LW06DAVK refer to Note 3
for MCF-LWWS01 refer to Note 4
for MCF-LW06DAVKP refer to Note 4
for MCF-LW12TERPM refer to Note 4A

Note 2

Report ID for MCF-LW06485:

  • 1Y for recurrent data;
  • 4Y for data received after a 0x8 serial data downlink;
  • 5Y for recurrent data with error;
  • 6Y for data received after a 0x8 serial data downlink with error.

The ModBus frame consists of at least 3 bytes.

In case of success (1Y/4Y), the first two bytes (us16 LSB) indicate the length (including the two bytes) and the remaining bytes is the data read from the peripheral Modbus device(s).

In case of error (5Y/6Y), the first two bytes (us16 LSB) indicate the length (including the two bytes) and the remaining bytes is the data successfully read from the peripheral Modbus device(s) before the error, and the last byte is the type of error:

  • 0x05 configuration error
  • 0x07 error reading internal configuration
  • 0x7F ModBus command not implemented
  • 0xCC communication error

For backwards compatibility in case of error, it will also return 0200XX where XX indicates the type of error:

  • 0x05 configuration error
  • 0x07 error reading internal configuration
  • 0x7F ModBus command not implemented
  • 0xCC communication error

Only for MCF-LW06485B

Report:

  • 7Y for recurrent data;
  • 8Y for data received after a 0x8 serial data downlink;
  • 9Y for recurrent data with error;
  • AY for data received after a 0x8 serial data downlink with error.

The ModBus frame consists of at least 4 bytes.

In case of success (7Y/8Y), the first two bytes (us16 LSB) indicate the length (including the two bytes) and the remaining bytes is the data read from the peripheral Modbus device(s). Last byte is the battery percentage.

In case of error (9Y/AY), the first two bytes (us16 LSB) indicate the length (including the two bytes) and the remaining bytes is the data successfully read from the peripheral Modbus device(s) before the error, then the type of error:

  • 0x05 configuration error
  • 0x07 error reading internal configuration
  • 0x7F ModBus command not implemented
  • 0xCC communication error

and as last byte the battery percentage.


Example

Sample payload:
0b10000a00be87424808010000 Uplink ID: 0b Report ID: 10 (recurrent data) Frame ID: 00

Data: 0a00be87424808010000

  • Byte 1…2: 0a00 (LSB) → 0x000a data length
  • Byte 3…10: be87424808010000 data content

Note 3

The Davis weather station frame is made up of at least 4 bytes. In the event of an error it returns XXYYZZZZ , where XX indicates the data version, YY the type of error, ZZZZ the size of the read data.

Error type (YY):

  • A0 to A7 = no answer
  • CB = data format error
  • 22 = CRC error
  • 19 = Davis type error

If case of successful reading of weather data, the data sequence will be as in the following table (data with more than 1 bytes is LSB):

name size [byte] meaning
Data version 1 byte Current version is 0
Davis type 1 byte 16 (0x10) for Vantage Pro/Pro2
Barometer data 2 byte (u16 LSB) Unit is milli inch Hg (inchHg/1000)
Outside temperature 2 byte (s16 LSB) Unit is d°F (°F/10)
Wind speed 1 byte Unit is mph (miles per hour)
Avg wind speed 1 byte Unit is mph
Wind direction 2 byte (u16 LSB) Value from 1 to 360 degrees. (0° is no wind data, 90° is East, 180° is South, 270° is West and 360° is north)
Outside humidity 1 byte Relative humidity in %
Rain rate 2 byte (u16 LSB) Number of rain clicks. Rain clicks/hour
UV 1 byte Unit is in UV index
Solar radiation 2 byte (u16 LSB) The unit is in watt/meter2
Day rain 2 byte (u16 LSB) Number of rain clicks (0.2mm).
Day et 2 byte (u16 LSB) Unit is inch / 1000
Date/time 4 byte (u32 LSB) Weather station date and time (as for Note 1)
Dew Point 2 byte (s16 LSB) The value is a signed two byte value in whole degrees F. 255 = dashed data
Altitude 2 byte (s16 LSB) Station elevation (ft.)
Forecast icons 1 byte Single Bit meaning is: 0x01 = Rain, 0x02 = Cloud, 0x04 = Partly cloudy, 0x08 = Sun, 0x10 = Snow. Mixed forecasts are possible. See examples below.
Bar trend 1 byte Signed byte that indicates the current 3-hour barometer trend. It is one of these values: -60 = Falling Rapidly = 196 (as an unsigned byte), -20 = Falling Slowly = 236 (as an unsigned byte), 0 = Steady, 20 = Rising Slowly, 60 = Rising Rapidly, 80 = ASCII “P” = no trend info is available. Any other value meanings that the Vantage does not have the 3 hours of bar data needed to determine the bar trend.
RFU 3 byte Optional RFU bytes. Only present in MCF-LWWS01 and MCF-LW06DAVKP

Examples of Forecast icons:

decimal hex Segments shown Forecast
8 0x08 Sun Mostly Clear
6 0x06 Partial Sun + Cloud Partially Cloudy
2 0x02 Cloud Mostly Cloudy
3 0x03 Cloud + Rain Mostly Cloudy, Rain within 12 hours
18 0x12 Cloud + Snow Mostly Cloudy, Snow within 12 hours
19 0x13 Cloud + Rain + Snow Mostly Cloudy, Rain or Snow within 12 hours
7 0x07 Partial Sun + Cloud + Rain Partly Cloudy, Rain within 12 hours
22 0x16 Partial Sun + Cloud + Snow Partly Cloudy, Snow within 12 hours
23 0x17 Partial Sun + Cloud + Rain + Snow Partly Cloudy, Rain or Snow within 12 hours

Note 4

Refer first to Note 3. In addition are PM readings are on a separate uplink. The field “Data”, in case of success, is as follow:
* 4 bytes LSB are for the date and time (as per Note 1)

  • 6 bytes LSB are for PM measures: 2 bytes for each measurement, formatted as LSB, reporting in order PM1.0, PM2.5 and PM10 in µg/m3
  • 6 bytes LSB (if present) are for PM measures: 2 bytes for each measurement, formatted as LSB, reporting in order PM1.0, PM2.5 and PM10 in #/cm3.

Note 4A

The 17 (23) bytes of Data are divided as follows:

  • 4 bytes LSB are for the date and time. The MSB (most significant byte) is on the right so they must be read from the right. The 4 byte in reverse order are as follows:
    • 7 bit for the offset of the year, starting from the year 2000
    • 4 bit per month
    • 5 bit for day of the month
    • 5 bits for hour
    • 6 bits for minutes
    • 5 bits for half the seconds. The seconds range is from 0 to 31, so the result should be multiplied by 2 to find the actual seconds of the measurement.
  • 2 bytes LSB for temperature. The temperature is represented by a signed integer with the least significant byte first. The temperature is expressed in hundreds of a °C degree.
  • 1 byte for humidity. Relative humidity is an unsigned integer corresponding to twice the percentage of humidity.
  • 3 bytes LSB for pressure. Pressure is an unsigned integer with the least significant byte first; it is expressed in Pascal.
  • 6 bytes LSB are for PM measures: 2 bytes for each measurement, formatted as LSB, reporting in order PM1.0, PM2.5 and PM10 in µg/m3.
  • 1 byte (if present) for battery percentage.
  • 6 bytes LSB (if present) are for PM measures: 2 bytes for each measurement, formatted as LSB, reporting in order PM1.0, PM2.5 and PM10 in #/cm3.

Example
Sample payload:
0b3a006caf51266409338b8701170022002a0063

Uplink ID: 0b
Report ID: 3a
Frame ID: 00
Data: 6caf5126 6409 33 8b8701 1700 2200 2a00 63

* date and time are: 6c af 51 26

  • Byte swapping, result: 26 51 af 6c
  • The result in bits will be: 00100110 01010001 10101111 01101100
    • The bits are divided as explained above
      • Year: 0010011
        • Result: 19
          • 2000+19 = 2019
      • Month: 0010
        • Result: 2
      • Day: 10001
        • Result: 17
      • Hour: 10101
        • Result: 21
      • Minutes: 111011
        • Result: 59
      • Seconds: 01100
        • Result: 12
          • 12*2 = 24
    • The date of the measurement will be: 17/02/2019 21:59:24.
  • Temperature: 6409
    • Byte swapping, result: 0964
      • The result (with sign) will be +2404 with two decimal places, then +24.04 °C.
  • Humidity: 33
    • In decimal is 51, the humidity is 51/2 = 25.5% rH.
  • Pressure: 8b8701
    • Byte swapping, result: 01878b
      • In decimal, the result is 100235, with two decimal places the pressure is 1002.35 hPa.
  • PM1: 1700
    • Byte swapping, result: 0017
      • In decimal, the result is 23, the PM1 value is 23 µg/m3.
  • PM2.5: 2200
    • Byte swapping, result: 0022
      • In decimal, the result is 34, the PM1 value is 34 µg/m3.
  • PM10: 2a00
    • Byte swapping, result: 002a
      • In decimal, the result is 42, the PM1 value is 42 µg/m3.
  • Battery: 63
    • In decimal, the result is 99, the battery value is 99%.

HOME

1.7 T/P/RH/LUX/VOC

name size [byte] hex value meaning
Uplink ID 11 byte 0C Temperature/Pressure/Humidity/Lux/Voc
Data 14 byte XX XX … Measure 1, refer to Note 5
14 byte XX XX … Measure 2, refer to Note Note 5
Batt % 1 byte (optional) XX Battery percentage
RFU 6 byte (optional) XX XX XX XX Optional RFU byte

Note 5

The first 10 bytes for each measurement are the same as defined in Note 1, the following 4 bytes are as follows:

  • 2 bytes LSB for illuminance. Luminance is represented by an unsigned integer with the least significant byte first. The Luminance is reported in lux (lx).
  • 2 bytes LSB for VOC (Volatile organic compounds). The VOC level is reported according to setup of the device made with LoRaTool APP, as unsigned with the least significant byte first:
    • index (IAQ - indoor air quality) between 0 (clean air) and 500 (heavily polluted air)
    • bVOC value between 499ppb (clean air) and 50000ppb (heavily polluted air)

1.7.1. BVOC PPB EXTENDED

name size [byte] hex value meaning
Uplink ID 1 byte 12 Temperature/Pressure/Humidity/Lux/Voc
Data 15 byte XX XX … Measure 1, refer to Note 5A
15 byte XX XX … Measure 2, refer to Note 5A
Batt % 1 byte (optional) XX Battery percentage
RFU 4 byte (optional) XX XX XX XX Optional RFU byte

Note 5A

The first 10 bytes for each measurement are the same as defined in Note 1, the following 5 bytes are as follows:

  • 2 bytes LSB for illuminance. Luminance is represented by an unsigned integer with the least significant byte first. The Luminance is reported in lux (lx).
  • 3 bytes LSB for VOC (Volatile organic compounds). The VOC level is reported according to setup of the device made with LoRaTool APP, as unsigned with the least significant byte first:
    • index (IAQ - indoor air quality) between 0 (clean air) and 500 (heavily polluted air)
    • bVOC value between 499ppb (clean air) and 16700000ppb (heavily polluted air)

HOME

1.8 ANALOG DATA

name size [byte] hex value meaning
Uplink ID 1 byte 0D Analog data
Type 1 byte 01 for MCF-LW06420/D/B/T
01 for MCF-LW06010/D/B/T
01 for MCF-LW06424/D/B/T
Data 1..34 byte XX XX XX… Refer to Note 6

Note 6

Data are as follow: 4 bytes are for the date and time (as per Note 1)

  • 8 byte for measurements, 2 byte for each measurement, formatted as LSB with the following meaninging:
  • Bit 0..11: measured value, to be rescaled according to the type
  • Bit 12: equal to 1 if error: if the measured value is 0 meanings sensor disconnected (4-20mA only); greater or equal to 0xF00 it is a generic measurement error
  • Bit 13..14: measure type:
    • 0: 4-20 mA
    • 1: 0-10 V
    • 2: 0-5 V
  • Bit 15: RFU
  • 1 byte (optional) for battery percentage, only for MCF-LW06420B, MCF-LW06010B, MCF-LW06424B.

HOME

1.9 T/P/RH/LUX/VOC/CO2

name size [byte] hex value meaning
Uplink ID 1 byte 0E T/P/rH/Voc/Lux/Co2
Data 16 byte XX XX … Measure 1, refer to Note 7
16 byte XX XX … Measure 2, refer to Note 7
Batt % 1 byte (optional) XX Battery percentage
RFU 2 byte (optional) XX XX Optional RFU byte

Note 7


Data are as follow:

  • The first 14 bytes for each measurement are the same as defined in Note 5
  • Following 2 bytes LSB are for CO2. CO2 concentration is represented by an signed integer with the least significant byte first. The CO2 is expressed in ppm.

1.9.1. BVOC PPB EXTENDED

name size [byte] hex value meaning
Uplink ID 1 byte 13 T/P/rH/Voc/Lux/Co2
Data 17 byte XX XX … Measure 1, refer to Note 7A
17 byte XX XX … Measure 2, refer to Note 7A
Batt % 1 byte (optional) XX Battery percentage

Note 7A


Data are as follow:

  • The first 15 bytes for each measurement are the same as defined in Note 5A
  • Following 2 bytes LSB are for CO2. CO2 concentration is represented by a signed integer with the least significant byte first. The CO2 is expressed in ppm.

HOME

1.10 SPECIAL DATA

name size [byte] hex value meaning
Uplink ID 1 byte 0F Special data
Type 1 byte 00 Card Data message
Data 1..32 byte XX XX… for Card Data message refer to Note 8

Note 8


Data are as follow:

  • 4 bytes for the date and time (as per Note 1)
  • 1 byte for communication status:
    • Bit 0 (mask 0x01): equal to 1 is communication with the reader is OK
    • Bit 4 (mask 0x04): equal to 1 if card present

If card present, data frame also contains:

  • 1 byte card identifier: equal to 0x01 for ISO14443 type
  • 1 byte for UID legth
  • 1 byte for SAK number
  • n byte for UID

Example
Sample payload:
0f006caf512611010408447b8043
Uplink ID: 0f
Type: 00

Date and time: 6caf5126

* The date of the measurement will be: 17/02/2019 21:59:24. Communication status: 11

  • bit 0 = 1 (communication OK), bit 4 = 1 (card present)

Card identifier: 01 UID Length: 04 SAK byte: 08 UID: 447b8043

—————

HOME

1.11 DIGITAL DATA

name size [byte] hex value meaning
Uplink ID 1 byte 10 Digital data
Type 1 byte 00 Input counters type 1
1 byte 01 Frequency meter type 1
1 byte 02 Input counters type 2
1 byte 03 Output counters
1 byte 04 Frequency meter type 2
1 byte 05 Output remaining activation time
1 byte 06 Output full status
Data 1..33 byte XX XX… For input counters message refer to Note 9
For frequency meter message refer to Note 10
For output counters message refer to Note 11
For output remaining activation time refer to Note 11a
For output full status refer to Note 11b

Note 9

Type 1: 2 bytes LSB per input counter (inputs 1 to 16).

Type 2: 30 byte for 5 measures (6 byte for every measure, 4 bytes date and time as defined in Note 1, 2 bytes LSB for counter value) and 1 byte (optional) for battery percentage.

Note 10

Type 1: 4 bytes for the date and time, 2 bytes LSB for frequency value (base 0.1Hz), 1 byte (optional) for battery percentage.

Type 2: 4 bytes for the date and time, 2 bytes LSB for frequency value (base 0.1Hz), 2 bytes LSB for input counter, 1 byte (optional) for battery percentage.

Note 11

Output counters: 1 bytes per output counter (inputs 1 to 8). Counter increases every ON to OFF or OFF to ON cycle.

Note 11a

Output remaining time: XX YY YY YY YY
XX 1 bytes for output number (n output - 1)
YY YY YY YY 4 bytes uLSB remaining time

Note 11b

Output full status data (15 byte):

name size [byte] hex value meaning
Output number 1 byte XX Output number (n-1)
Options 1 byte (bit mask) Bit 0 Output status 1 = set)
Bit 1, 2 00: Standard
02: Pulse train mode stopped
06: Pulse train mode running
Remaining pulses 1 byte XX Number of remaining pulses
Remaining time 4 byte (u32 LSB) XX XX XX XX Remaining time [ms]
ON time 4 byte (u32 LSB) XX XX XX XX Pulse ON time [ms]
OFF time 4 byte (u32 LSB) XX XX XX XX Pulse OFF time [ms]

HOME

1.12 SERIAL DATA

name size [byte] hex value meaning
Uplink ID 1 byte 11 Serial data
Data Option 2 byte (u32 LSB) XX XX Refer to Note 12
Data 0..33 byte XX XX… Data received, refer to Note 12

Note 12

Data Option is LSB and formatted as follow:

  • Bit 0..11: index of the first byte of the current frame
  • bits 12…15:
    • 0x0 standard payload
    • 0x8 last frame of the buffer
    • 0x4 one BUFFER DOWNLINK frame missing, offset reports the expected one
    • 0x2 BUFFER DOWLINK frame too big, exceeds internal buffer
    • 0xE full buffer successfully saved (only after 0xC downlink type)

Data received from the device are buffered and sent via LoRa starting with index 0. Maximum data length is 1024 bytes. Empty data means receiving errors on RS232.

Example

Sample payload:
1100000103F4000400010324010400010334010400010366010200010376010200010380
1121000102000103880102000103900102000103A8010200FF6604000000020301000700
114280000000000000

Uplink ID: 11
Data option: 0000

  • Bit 0…11:0x000 first byte index = 0
  • Bit 12…15: 0x0 standard payload

Data: \\0103F4000400010324010400010334010400010366010200010376010200010380 Uplink ID: 11
Data option: 2100

  • Bit 0…11:0x021 first byte index = 33
  • Bit 12…15: 0x0 standard payload

Data: \\0102000103880102000103900102000103A8010200FF6604000000020301000700
Uplink ID: 11
Data option: 4280

  • Bit 0…11:0x042 first byte index = 66
  • Bit 12…15: 0x8 last frame of the buffer

Data: 0000000000000


HOME

1.13 LENGTH ERROR

name size [byte]hex value meaning
Uplink ID 1 byte EE LENGTH ERROR
Type 1 byte XX Optional RFU byte
Data 1..9 byte XX XX… Optional RFU byte

In case the sensor’s frame length is too long for the selected datarate (eg. for AS923, US915 devices). This means a problem with LoRa coverage or with the position of the sensor. If the NS receive the 0xEE, it should try with a lower SF.


HOME

1.14 LEVEL MEASUREMENT

name size [byte] hex value meaning
Uplink ID 1 byte 14 Level measurement
Type 1 byte 00 identifying a device EGK-LW20Lxx
01 identifying a device EGK-LW20Wxx
02 identifying a device EGK-LW20LTxx
03 identifying a device EGK-LW20WTxx
Timestamp 4 byte XX XX XX XX See Note 1
Battery voltage 2 byte (u16 LSB) XX XX Battery voltage is an unsigned integer, least significant byte first. Unit is [mV]
Height 2 byte XX XX Height (calculated as “End –Distance”)
Distance 2 byte (u16 LSB) XX XX unsigned integer, least significant byte first. This is the distance of the closest target within the defined range (refer to “Start” and “End” settings on LoraTool APP). Distance is > 60000 in case of errors. Unit is [mm].
Fill level [%] 1 byte XX Fill level percentage, based on to “Start” and “Length”. Fill level is > 100 in case of errors.
Only present for Type 01 and 03.
Temperature 2 byte (s16 LSB) XX XX The temperature is represented by a signed integer with the least significant byte first. The temperature is expressed in hundreds of a °C degree. Only present for Type 01, 02 and 03.
Relative Humidity 1 byte XX Relative humidity is an unsigned integer corresponding to twice the percentage of humidity.
Only present for Type 02 and 03.
Pressure 3 byte (u24 LSB) XX XX XX Pressure is an unsigned integer with the least significant byte first; it is expressed in Pascal.
Only present for Type 02 and 03.
Battery % 1 byte XX Remaining Battery percentage (if 0x65 not available)

Frame lenght for each type:

Uplink ID Type Timestamp Battery Voltage Height Distance Battery %
0x14 0x00 4 byte 2 byte 2 byte 2 byte 1 byte
Uplink ID Type Timestamp Battery Voltage Height Distance Fill level % Temperature Battery %
0x14 0x01 4 byte 2 byte 2 byte 2 byte 1 byte 2 byte 1 byte
Uplink ID Type Timestamp Battery Voltage Height Distance Temp Rh Pressure Battery %
14 0x02 4 byte 2 byte 2 byte 2 byte 2 byte 1 byte 3 byte 1 byte
Uplink ID Type Timestamp Battery Voltage Height Distance Fill level % Temp Rh Pressure Battery %
14 0x03 4 byte 2 byte 2 byte 2 byte 1 byte 2 byte 1 byte 3 byte 1 byte

Example Sample payload:
1403dc7e3721b20b8518d3025ff9082d278a0163

14 03 dc7e3721 b20b 8518 d302 5f f908 2d 278a01 63

The meaning is:

  • Uplink ID 0x14
  • Type 0x03. The device is a EGK-LW20WTxx
  • Timestamp 0xdc7e3721
    • Byte swapping result: 21 37 7e dc
    • The result in bits will be: 00100001 00110111 01111110 11011100
      • The bits are divided as explained above
        • Year: 0010000
          • Result: 16
            • 2000+16 = 2016
      • Month: 1001
        • Result: 9
          • Day: 10111
            • Result: 23
      • Hour: 01111
        • Result: 15
          • Minutes: 110110
            • Result: 54
      • Seconds: 11100
        • Result: 28
          • 28*2 = 56

The date of the measurement will be: 23/09/2016 15:54:56.

  • Battery voltage 0xb20b. Byte swapping result: 0x0bb2. The result (with sign) will be 2994 mV
  • Height 0x8518, Byte swapping result: 0x1885. In decimal, the result is 6277mm
  • Distance 0xd302, Byte swapping result: 0x02d3. In decimal, the result is 723mm
  • Fill level % 0x5f, in decimal, the result is 95%
  • Temperature 0xf908, Byte swapping result: 0x08f9. In decimal, the result is 2297 with two decimal places, meaning 22.97°C
  • Humidity 0x2d, in decimal the result is 45, the humidity is 45/2 = 22.5% rH.
  • Pressure 0x278a01. Byte swapping, result: 018a27. In decimal, the result is 100903, with two decimal places the pressure is 1009.03 hPa.
  • Battery % 0x63. In decimal, the result is 99%.

HOME

1.15 CURRENT CONFIGURATION

name size [byte] hex value meaning
Uplink ID 1 byte C0 Current configuration (from FW version 00.02.56)
Type 1 byte 01 General settings
02 Thresholds settings
03 Level sensor
DATA 1…33 byte XX XX .. For type 1 refer to Note 13
For type 2 refer to Note 14
For type 3 refer to Note 15

Note 13

Data are as follow:

size meaning
1 byte parity (0 = None 2 STOP, 1 = Odd, 2 = Even, 3 = None 1 STOP)
1 byte baud rate [bps] (values 1 to 7: 2400,4800,9600,19200,38400,57600,115200)
1 byte delay value ([s] for analog, [ms]for ModBus)
1 byte rfu (only present from version 0.02.86)
2 byte (u16 LSB) main period in minutes
2 byte (s16 LSB) pressure compensation(pressure offset offset in Pa for MCF-LW12xxx, elevation in ft.for MCF-LW06DAV/P)
1 byte output init (0x00 = OFF / 0x01 = ON)
1 byte rfu
1 byte rfu
1 byte rfu
1 byte I/O PERIOD in minutes
1 byte COUNTERS PERIOD in minutes
1 byte Input as pulses counters
Bit 0…5: number of input as pulses counters
Bit 6/7: edge type - 0x00 rising - 0x80 falling - 0x40 both
1 byte Number of measures before transmission (for EGK-LW22CCMxx)
1 byte VOC/PM format:
0x00 = bVOC as IAQ (2 byte), PM as ug/m3
0x01 = bVOC as ppb (2 byte), PM as #/cm3
0x03 = bVOC as ppb (3 byte), PM as ug/m3 AND PM as #/cm3
1 byte first option bit mask (0 = disable / 1 = enable):
0x01 Wake-up on accelerometer
0x02 CO2 ABC calibration
0x04 No Time Sync request
0x08 Unconfirmed uplink message
0x10 LED low intensity
0x20 Leds off
0x40 Uplink time syncronized
0x80 Single Join/day
1 byte second option bit mask (0 = disable / 1 = enable):
0x01 Send full metering data
0x02 120V input voltage range
0x04 Mifare USB card reader
0x08 termination resistors – only for MCF-LW06485B
0x10 input 1 as frequency meter
0x20 outputs counters
0x40 no output led
0x80 thresholds high disable output
1 byte third option bit mask (0 = disable / 1 = enable):
0x01 button locked
0x02 Davis PM enabled
0x04 measure on UTC
2 byte Latitude in decimal degrees LSB (for MCF-LW06DAV from FW version 02.100)
2 byte Longitude in decimal degrees LSB (for MCF-LW06DAV from FW version 02.100)
RFU

Note 14

Data are as follow:

  • 1 byte is for thresholds enable:
    • Bit 0: enable threshold high channel 1
    • Bit 1: enable threshold low channel 1
    • Bit 2: enable threshold high channel 2
    • Bit 3: enable threshold low channel 2
    • Bit 4: enable threshold high channel 3
    • Bit 5: enable threshold low channel 3
    • Bit 6: enable threshold high channel 4
    • Bit 7: enable threshold low channel 4
  • 2 bytes LSB for threshold:
    • Channel 1 threshold high +
    • Channel 1 threshold high -
    • Channel 1 threshold low +
    • Channel 1 threshold low –
    • .
    • .
    • Channel 4 Threshold low –

MCF-LW06420, MCF-LW06010 and MCF-LW06424: Thigh and Tlow in bit for every channel (up to 4)
MCF-LW12VOC: Thigh only for channel 1 for bVOC [IAQ/ppm]
MCF-LW12CO2: Thigh only for channel 1 for bVOC [IAQ/ppm], Thigh only for channel 2 for CO2 [ppm]
MCF-LW12CO2E: channel 1 for bVOC [IAQ/ppm], channel 2 for CO2 [ppm]

Note 15

Data are as follow:

size meaning
8 byte RFU
2 byte End [mm] - from FW version 2.89
4 byte RFU
1 byte Kref
1 byte Algorithm
2 byte (u16 LSB) Start [mm]
2 byte (u16 LSB) Lenght [mm] - up to FW version 2.88, otherwise RFU
2 byte (u16 LSB) Signal threshold
1 byte RFU
1 byte bits 3, 4, 5: Power / (bits 0,1,2,6,7: RFU)
1 byte bits 6,7: Sort / (bits 0 to 5: RFU)
7 byte RFU
2 byte CRC

HOME

1.16 T/RH

namesize [byte]hex valuemeaning
Uplink ID1 byte15Temperature/Humidity
Type1 byte00CCM
Datan x 7 byteXX XX …Measure n (1 to 3), refer to Note 16
Batt %1 byteXXBattery percentage

Note 16


The 7 bytes for each measurement are divided as follows:

  • 4 bytes LSB are for the date and time. The MSB (most significant byte) is on the right so they must be read from the right. The 4 byte in reverse order are as follows:
    • 7 bit for the offset of the year, starting from the year 2000
    • 4 bit per month
    • 5 bit for day of the month
    • 5 bits for hour
    • 6 bits for minutes
    • 5 bits for half the seconds. The seconds range is from 0 to 31, so the result should be multiplied by 2 to find the actual seconds of the measurement.
  • 2 bytes LSB for temperature. The temperature is represented by a signed integer with the least significant byte first. The temperature is expressed in hundreds of a °C degree.
  • 1 byte for humidity. Relative humidity is an unsigned integer corresponding to twice the percentage of humidity.

HOME

1.17 T/RH LOG

namesize [byte]hex valuemeaning
Uplink ID1 byte16Temperature/Humidity LOG
Type1 byte00CCM
Datan x 9 byteXX XX …Measure n (1 to 3), refer to Note 16A

Note 16A


The 7 bytes for each measurement are divided as follows:

  • 4 bytes LSB are for the date and time. The MSB (most significant byte) is on the right so they must be read from the right. The 4 byte in reverse order are as follows:
    • 7 bit for the offset of the year, starting from the year 2000
    • 4 bit per month
    • 5 bit for day of the month
    • 5 bits for hour
    • 6 bits for minutes
    • 5 bits for half the seconds. The seconds range is from 0 to 31, so the result should be multiplied by 2 to find the actual seconds of the measurement.
  • 2 bytes LSB for temperature. The temperature is represented by a signed integer with the least significant byte first. The temperature is expressed in hundreds of a °C degree.
  • 1 byte for humidity. Relative humidity is an unsigned integer corresponding to twice the percentage of humidity.
  • 1 byte battery percentage. Battery percentage is an unsigned integer
  • 1 byte for diagnostic. Diagnostic is 1 byte, bit masked:
    • bit 2: set if time sync expired - new time syncronization needed
    • bit 1: set if measure successfully sent
    • bit 0: set if measure sent, otherwise only logged

HOME

2.1 TIME SYNC ANSWER

name size [byte] hex value meaning
Downlink ID 1 byte 00 Time sync answer
Sync ID 4 byte XX XX XX XX Copy of received Sync ID
Date/time 4 byte XX XX XX XX Date/time GMT, refer to Note 17

Note 17

Date/time GMT in DOS format with epoch 2000. Sent as LSB. In bits, will be:

  • 7 bits for year, starting from the year 2000
  • 4 bits for month
  • 5 bits for day in the month
  • 5 bits for hour
  • 6 bits for minutes
  • 5 bits for half of seconds

Example

For date 23/09/2016 15:54:56:

  • Year 2016 = bit 0010000
  • Month 9 = bit 1001
  • Day 23 = bit 10111
  • Hour 15 = bit 01111
  • Minutes 54 = bit 110110
  • Seconds 56 ( / 2 = 28 ) = bit 11100

The sequence in bits is “00100001001101110111111011011100”, corresponding to the hexadecimal “21377edc”, which will be sent as LSB: dc 7e 37 21


HOME

2.2 UART MESSAGE

name size [byte] hex value meaning
Downlink ID 1 byte 03 Uart
Data Application related XX XX…. Data to be forwarded, proprietary enginko protocol.

HOME

2.3 IO MESSAGE

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 00 Identify an IO message
Enable 4 byte (u32 LSB) XX XX XX XX Bit mask of the outputs to be enabled
Disable 4 byte (u32 LSB) XX XX XX XX Bit mask of the outputs to be disabled
Ton 16 byte (Optional) XX ………XX 2 bytes (LSB) per output (outputs 1 to 8):
if ≠ 0, set the activation time (base 100ms) of output[n]

If both the enable and the disable bit are equal to zero, the current status will be sent (I/O, input counters, output counters, frequency).

Example

Payload to set out#1

04000100000000000000

Downlink ID: 04 Option: 00 (IO message) Enable: 01000000 → 0x01 0x00 0x00 0x00 → u32 LSB → 0x00 0x00 0x00 0x01 → 0x01 → 00000001b (out #1)
Disable: 00000000 –> No output disable Payload to reset out#1

04000000000001000000

Downlink ID: 04
Option: 00 (IO message)
Enable: 00000000 –> No output enable
Disable: 01000000 → 0x01 0x00 0x00 0x00 → u32 LSB → 0x00 0x00 0x00 0x01 → 0x01 → 00000001b (out #1)

Payload to set out#1 for 5 seconds:

040001000000000000003200

0x04 = Downlink ID
0x00 = Io type
Enable: 01000000 → 0x01 0x00 0x00 0x00 → u32 LSB → 0x00 0x00 0x00 0x01 → 0x01 → 00000001b (out #1)
Disable: 01000000 –> No output disable

0x3200 = Ton output[1] 0x32 0x00 → LSB → 0x00 0x32 → 50 * 100ms → Ton[1] = 5s

Ton is mandatory only if you want to use the pulse feature Payload to set out#1 as normal and out#3 only for 1 second:

04000500000000000000000000000A00

0x04 = Downlink ID
0x00 = IO type
0x05000000 = Bit mask enable output 0x05 0x00 0x00 0x00 → u32 LSB → 0x00 0x00 0x00 0x05 → 0x05 → 00000101b → enable output[1]and output[3]
0x00000000 = Bit mask disable output–> No output disable
0x0000 = Ton output[1] 0x00 0x00 → LSB → 0x00 0x00 → 0 → 0 means infinite (as a normal output)
0x0000 = Ton output[2] 0x00 0x00 → LSB → 0x00 0x00 → 0 → 0 means infinite (as a normal output), in this case unused but mandatory to fill the space
0x0A00 = Ton output[3] 0x32 0x00 → LSB → 0x00 0x0A → 10 * 100ms → Ton[3] = 1s


HOME

2.4 SET PERIOD

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 01 Identify a SET MAIN PERIOD message. fw release 1.40 and above supports Data size up to 2 byte LSB.
04 Identify a SET I/O PERIOD message
05 Identify a SET COUNTERS PERIOD message
Data 1 byte XX Set device operation period in minutes (note that some devices have a minimum period, eg MCF-LW12TER 10 min, MCF-LW12VOC 15 min, MCF-LW12TERPM 15 min)

HOME

2.5 METERING REQUEST

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 02 Identify a METERING REQUEST message.
Option 2 1 byte 00 Full data reading.

HOME

2.6 SET PRESSURE COMPENSATION

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 03 Identify a SET PRESSURE COMPENSATION message
Offset 2 byte (s16 LSB) XX XX Add an offset to the pressure in Pa (LSB)
(int with sign) to compensate for the altitude, see following table

Only for MCF-LW12xxx environmental sensors.

altitude [m] offset [Pa] altitude [m] offset [Pa]
-305 -3700 1646 18300
-244 -3000 1707 18900
-183 -2200 1768 19500
-122 -1500 1829 20100
-61 -700 1890 20700
0 0 1951 21300
2012 21900
61 700 2073 22500
122 1500 2134 23100
183 2200 2195 23700
244 2900 2256 24300
305 3600 2316 24900
366 4300 2377 25500
427 5000 2438 26100
488 5700 2499 26600
549 6400 2560 27200
610 7100 2621 27800
671 7800 2682 28300
732 8500 2743 28900
792 9200 2804 29500
853 9800 2865 30000
914 10500 2926 30600
975 11200 2987 31100
1036 11800 3048 31600
1097 12500 2926 30600
1158 13200 2987 31100
1219 13800 3048 31600
1280 14500
1341 15100
1402 15700
1463 16400
1524 17000
1585 17600

HOME

2.7 THRESHOLDS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 06 Identify a THRESHOLDS message
Enable 1 byte XX refer to Note 13
Data 1..32 byte XX…XX 2 bytes (LSB) per threshold
(T1h+, T1h-, T1l+, T1l-, T2h+, T2h-, T2l+, T2l-…T4l-);
refer to Note 18

Note 18

Data are as follow:

  • 1 byte is for thresholds enable:
    • Bit 0: enable threshold high channel 1
    • Bit 1: enable threshold low channel 1
    • Bit 2: enable threshold high channel 2
    • Bit 3: enable threshold low channel 2
    • Bit 4: enable threshold high channel 3
    • Bit 5: enable threshold low channel 3
    • Bit 6: enable threshold high channel 4
    • Bit 7: enable threshold low channel 4
  • 2 bytes LSB for threshold:
    • Channel 1 threshold high +
    • Channel 1 threshold high -
    • Channel 1 threshold low +
    • Channel 1 threshold low –
    • .
    • .
    • Channel 4 Threshold low –

MCF-LW06420, MCF-LW06010 and MCF-LW06424: Thigh and Tlow in bit for every channel (up to 4)
MCF-LW12VOC: Thigh only for channel 1 for bVOC [IAQ/ppm]
MCF-LW12CO2: Thigh only for channel 1 for bVOC [IAQ/ppm], Thigh only for channel 2 for CO2 [ppm]
MCF-LW12CO2E: channel 1 for bVOC [IAQ/ppm], channel 2 for CO2 [ppm]

MCF-LW12PLG: Thigh only for channel 1 for Power [W]

EGK-LW22PLG: Thigh only for channel 1 for Power [W]

EGK-LW22CCMxx: channel 1 for temperature [°C/100], channel 2 for RH [%*2]


HOME

2.8 SERIAL DATA

name size [byte] hex value meaning
Downlink ID 1 byte 05 Serial data
Data Option 2 byte (u16 LSB) XX XX Refer to Note 18
Data 0..33 byte XX XX… Data to send, refer to Note 19

Note 19

Data sent to the device are buffered starting with index 0 and sent on the serial port after the last frame.

Data Option is LSB and formatted as follow:

  • Bit 0..11: index of the first byte of the current frame
  • bits 12..15:
    • 0x0 standard payload
    • 0x8 last frame of the buffer
    • 0xC last frame of the buffer, data has to be saved into the enginko sensor (i.e. Modbus configuration table)
    • 0xD last frame of the buffer, data has to be saved into the enginko sensor (i.e. time schedule table)
    • 0x4 one BUFFER DOWNLINK frame missing, offset reports the expected one

Maximum data length is 1024 bytes.

Example

Sample payload:

0500000103F4000400010324010400010334010400010366010200010376010200010380
0521000102000103880102000103900102000103A8010200FF6604000000020301000700
054280000000000000

* Downlink ID: 05
* Data option: 0000

  • Bit 0…11:0x000 first byte index = 0
  • Bit 12…15: 0x0 standard payload

Data: 0103F4000400010324010400010334010400010366010200010376010200010380

Downlink ID: 05
Data option: 2100

  • Bit 0…11:0x021 first byte index = 33
  • Bit 12…15: 0x0 standard payload

Data: 0102000103880102000103900102000103A8010200FF6604000000020301000700

Downlink ID: 05
Data option: 4280

  • Bit 0…11:0x042 first byte index = 66
  • Bit 12…15: 0x8 last frame of the buffer

Data: 0000000000000


HOME

2.9 OFF COMMAND

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte FF Identify an OFF message
Option 2 1 byte 00 If it is a battery-powered device, turn off the module, otherwise it will restart it.
01 Force a reboot
BB Force a Time Sync request

HOME

2.10 SET ELEVATION

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 07 Identify a SET ELEVATION message
Elevation 2 byte (s16 LSB) XX XX Set an elevation in ft. (LSB) (int with sign) for altitude compensation of the barometric pressure.

Only for MCF-LW06DAV and MCF-LWWS0x


HOME

2.11 GENERAL SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 08 Wake-up on accelerometer (default = disable)
0A No Time Sync request
0B Unconfirmed uplink message
0D Leds off (default = disable)
13 Single Join/day (default = disable)
15 Uplink time syncronized (default = disable)
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.12 CO2 SENSOR SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 09 CO2 ABC calibration (default = enable)
11 LED low intensity
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.13 ENERGY METER SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 0E Send full metering data (defaut = disable)
0F Set 120V input voltage range (default = disable)
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.14 CNT OPTION

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 14 Set input 1 as frequency meter
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.15 BVOC/PM SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 0C VOC/PM format
Data 1 byte XX 0x00 = bVOC as IAQ (2 byte), PM as ug/m3
0x01 = bVOC as ppb (2 byte), PM as #/cm3
0x03 = bVOC as ppb (3 byte), PM as ug/m3 AND PM as #/cm3

HOME

2.16 MODBUS SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 10 Set termination resistors (default = disable) – only for MCF-LW06485B
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.17 LOG FUNCTION

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 12 Enable LOG (default = disable)
Data 1 byte XX 0x00 = disable / 0x01 = enable

HOME

2.18 DELAY SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 16 Set delay
Data 1 byte XX [s] for analog, [ms]for ModBus

HOME

2.19 SERIAL SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.54)
Option 1 byte 17 Serial port parameters
Data 2 byte XX XX Byte 1: baud rate [bps] (values 1 to 7: 2400,4800,9600,19200,38400,57600,115200)
Byte 2: parity (0 = None 2 STOP, 1 = Odd, 2 = Even, 3 = None 1 STOP)

HOME

2.20 OUTPUT SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.55)
Option 1 byte 18 Output 1 status at power on
22 Disable output on threshold
23 Button locked (output only)
Data 1 byte XX 0x00 = OFF / 0x01 = ON

HOME

2.21 CONFIGURATION REQUEST

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.56)
Option 1 byte F0 Asking for current configuration
Data 1 byte XX General configuration = 01
Thresholds configuration = 02
Level sensor configuration = 03

HOME

2.22 ENABLE INPUT COUNTERS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.56)
Option 1 byte 19 Enable pulses counter function on inputs
Data 1 byte XX Inputs number to be configured as pulses counter

HOME

2.23 ENABLE OUTPUT COUNTERS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.56)
Option 1 byte 1A Enable activations counter function on outputs
Data 1 byte XX 0x01 = enable / 0x00 = disable

HOME

2.24 LEVEL SENSOR SETTINGS

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message (from FW version 00.02.56)
Option 1 byte XX Level sensor parameter, refer to Note 20
Data n byte XX XX Parameter dependent, refer to Note 20

Note 20

  • Start [mm]: starting point of the measurement (in mm from “REFERENCE” point).
    • Option = 1B
    • Value: 2 byte (u16 LSB)
  • End [mm]: Range of measure (in mm, from “REFERENCE” point) - from FW version 2.89.
    • Option = 1C
    • Value: 2 byte (u16 LSB)
  • Lenght [mm]: Range of measure (in mm, from “Start” point) - up to FW version 2.88.
    • Option = 1C
    • Value: 2 byte (u16 LSB)
  • Signal threshold: Minimum target detection threshold.
    • Option = 1D
    • Value: 2 byte (s16 LSB)
  • Power: power setting for target detection.
    • Option = 1E
    • Value: 1 byte (values can be set from 1 to 5)
  • Sort: data sorting.
    • Option = 1F
    • Value: 1 byte (values can be set from 0 to 3)
  • Algorithm: type of analysis.
    • Option = 20
    • Value: 1 byte (values can be set from 0 to 255)

2.25 IO REQUEST MESSAGE

(from FW version 00.02.69)

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 00 Identify an IO message
TYPE 1 byte (Bit mask) 01request of the current IO status
02 request of the current inputs counters
04 request of the current outputs counters
08 request of the current frequency
4x request of the current output status and configuration, where x, bit 3 to 0, is output number (n-1)
8x request of the current remaining activation time, where x, bit 3 to 0, is output number (n-1)

2.26 OUTPUT PULSE TRAIN

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 24 Identify a “Pulse train” message
Output number 1 byte XX Output index (1 to 8)
Output options 1 byte XX option bit mask:
0x01 Timebase (0=10ms, 1= 100ms)
0x10 Start state (0=ON, 1=off )
0x20 output pulses counter uplink update (0 = just at the end, 1 = update whenever possible)
0x40 uplink update with new output status (0 = just at the end, 1 = update whenever possible) - alternative to 0x20
Cycles number 1 byte XX Number of cycles (0 = endless)
Ton 2 byte (u16 LSB) XX XX ON duration (value multiplied for Timebase)
Toff 2 byte (u16 LSB) XX XX off duration (value multiplied for Timebase)

HOME

2.27 CCM SETTINGS

namesize [byte]hex valuemeaning
Downlink ID1 byte04General message
Option1 byte2AIdentify a CCM REQUEST message.
Data1 byteXXnumber of measures before transmission

HOME

2.28 CCM LOG REQUEST

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 2C Identify a LOG REQUEST message
Start 5 byte XX…XX Start date/time log retrieval, refer to Note 21
Stop 5 byte XX…XX Stop date/time log retrieval;
refer to Note 21

Note 21

Start and Stop data are as follow:

  • 1 byte for the offset of the year, starting from the year 2000
  • 1 byte per month
  • 1 byte for the day of the month
  • 1 byte for hour
  • 1 byte for minutes

HOME

2.29 UTC SETTINGS

namesize [byte]hex valuemeaning
Downlink ID1 byte04General message
Option1 byte2BIdentify a UTC message.
XXset (0x01) for measure with UTC time

HOME

2.30 GEOGRAPHICALS COORDINATES

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 30 Identify a coordinates message (from FW version 02.100)
Latitude 2 byte (s16 LSB) XX…XX Latitude in decimal degrees
Longitude 2 byte (s16 LSB) XX…XX Longitude in decimal degrees

HOME

2.31 FORCE MESSAGE

name size [byte] hex value meaning
Downlink ID 1 byte 04 General message
Option 1 byte 26 force a new report message (from FW version 02.71)
27 force a new analog measures message (from FW version 02.71)

HOME

Rev. 1.36