Milesight EM500-SMTC: LoRaWAN Soil Moisture, Temperature & EC Sensor

Milesight EM500-SMTC LoRaWAN soil sensor: own ChirpStack/ThingsBoard decoder for moisture, temperature and EC, plus smart-agriculture integration.

Milesight EM500-SMTC
EM500-SMTCSensor
LoRaWAN
Class A, OTAA
Band / port
EU868 / port 85
Ingress protection
IP67 transceiver, IP68 probe
Moisture
0 to 100 % volumetric
Temperature
-40 to +80 °C
Conductivity (EC)
0 to 20000 µS/cm
Battery
19000 mAh, up to several years
Measurements

What the EM500-SMTC measures

Soil moisture

Volumetric water content 0 to 100 %, with a soil calibration mode for fine and coarse soils.

Soil temperature

-40 to +80 °C, INT16 little-endian scaled by 10, with an error code on probe faults.

Electrical conductivity

0 to 20000 µS/cm, an indicator for salinity and fertiliser level in the root zone.

Battery level

Reported as a percentage, with on-device history storage and retransmission.

Data into your dashboard

Integration

Sensor / controller

Measures or controls in the field and sends LoRaWAN uplinks.

LoRaWAN gateway

Receives the radio packets and forwards them to the server.

ChirpStack

Network server: manages sessions and decodes the payload.

ThingsBoard / Grafana

Dashboards, alarms, rules and reports.

ChirpStack v4 · decodeUplink
function decodeUplink(input) {
  var bytes = input.bytes;
  var data = {};

  for (var i = 0; i < bytes.length; ) {
    var channel = bytes[i++];
    var type = bytes[i++];

    if (channel === 0x01 && type === 0x75) {          // battery (%)
      data.battery = bytes[i]; i += 1;
    } else if (channel === 0x03 && type === 0x67) {   // temperature (°C)
      data.temperature = readInt16LE(bytes, i) / 10; i += 2;
    } else if (channel === 0x04 && type === 0x68) {   // moisture, old resolution (%)
      data.moisture = bytes[i] / 2; i += 1;
    } else if (channel === 0x04 && type === 0xca) {    // moisture, new resolution (%)
      data.moisture = readUInt16LE(bytes, i) / 100; i += 2;
    } else if (channel === 0x05 && type === 0x7f) {    // electrical conductivity (µS/cm)
      data.ec = readUInt16LE(bytes, i); i += 2;
    } else {
      break;
    }
  }
  return { data: data };
}

function readUInt16LE(b, i) {
  return (b[i + 1] << 8) | b[i];
}
function readInt16LE(b, i) {
  var v = readUInt16LE(b, i);
  return v > 0x7fff ? v - 0x10000 : v;
}

Implemented from the published Milesight byte specification (Communication Protocol / User Guide).

Channel format: 01 75 battery (%), 03 67 temperature (INT16 little-endian, /10), 04 68 moisture (UINT8, /2) on older firmware or 04 CA moisture (UINT16 little-endian, /100) on newer firmware, 05 7F conductivity (UINT16 little-endian, µS/cm). The decoder handles both moisture resolutions. Sensor faults arrive as 0xFFFF / 0xFFFD on the affected channel, treat those as an error state in your rules. Implemented from the published Milesight byte specification. For ThingsBoard the same logic goes into an uplink converter.

Uplink (hex)

01756403671A0104CA9C0A057F2C01

Decoded JSON

{ "battery": 100, "temperature": 28.2, "moisture": 27.16, "ec": 300 }
From the field

Configuration & pitfalls

NFC setup

Keys, reporting interval and threshold alarms are set over NFC with the Milesight ToolBox before rollout.

Soil calibration mode

Pick the soil type / calibration curve in the ToolBox so moisture matches the real volumetric water content of your field.

Probe burial

Bury the IP68 probe at the target root depth with firm soil contact and no air gaps, air pockets read as falsely dry.

EC vs salinity

Conductivity is in µS/cm and tracks salinity and fertiliser level; document the baseline for your soil so dashboard readings stay traceable.

Your partner

How merkaio supports your EM500-SMTC

From sourcing to day-to-day operation, all from one partner on our own European infrastructure.

Pre-staging & provisioning

We configure the EM500-SMTC, set keys, intervals and alarms, and ship it ready to deploy.

Own decoder

Payload codec for ChirpStack v4 and ThingsBoard, implemented from the Milesight specification.

Dashboard integration

Data lands in your ThingsBoard or Grafana, with alarms and reports.

Operations & monitoring

We run the LoRaWAN stack and dashboards on European infrastructure, you just use the data.

Frequently asked questions

Yes. It is a standard LoRaWAN device, no Milesight gateway or cloud required. You add the codec to the device profile and provision it via OTAA.
Yes, for both ChirpStack and ThingsBoard, implemented from the published Milesight byte specification. The same channel logic goes into a ThingsBoard uplink converter.
Soil moisture (0 to 100 % volumetric), soil temperature (-40 to +80 °C) and electrical conductivity (0 to 20000 µS/cm), so you get moisture, temperature and salinity from one buried probe.
It is a Class A device on LoRaWAN port 85. Each scheduled uplink carries moisture, temperature and EC; the battery level is reported as a percentage.
Older firmware sends moisture on channel 04 68 as a UINT8 divided by 2, newer firmware sends 04 CA as a UINT16 little-endian divided by 100 for finer resolution. The decoder handles both so you do not need to change anything per firmware.
It ships with a 19000 mAh battery rated for many years of operation, depending on the reporting interval you configure over NFC.
Select the matching soil calibration curve in the ToolBox and bury the probe at root depth with firm soil contact, since air gaps around the probe read as falsely dry.
From the same series

Related devices

Let's discuss your infrastructure. Digital and on-site.

Whether it's IoT platform development, hardware selection, managed hosting for ChirpStack, ThingsBoard, Grafana or NetBird VPN, or migration from a self-hosted setup - we'll find the right solution for your use case. Book a free 30-minute consultation, no commitment required.

Timo Wevelsiep

Your contact

Timo Wevelsiep

Founder, merkaio

15 minutes, no commitment, directly with Timo.

By submitting, you agree to our Privacy Policy.

Decoder for ChirpStack v4. merkaio is an independent integrator and is not affiliated with Milesight.