← Back to Harvestree
Harvestree v5 LoRaWAN documentation

LoRaWAN at a glance

FPorts, uplink sketch, and where to dig deeper — without reading the whole protocol book.

FPort 1Application uplink ≤ 51 B
FPort 2Command ACK uplink
FPort 4Remote commands downlink

The device transmits application payloads on LoRaWAN. Payloads include a compact header (reserved byte, serial, temperatures, voltages, status) followed by measurement data for each active port. Port configuration codes determine how bytes are interpreted.

Uplink header (FPort 1)

b00xFF reserved
→
b1–4port types
→
b5–7serial LE
→
b8–9temps
→
b10–12V · status
→
b13+port data
BytesContentNotes
0reservedAlways 0xFF — not in decoded JSON
1–4port1..port4Configuration code per external port
5–7serial_number24-bit little-endian
8–9boardTemperature, baseTemperature°C = byte − 40
10–12Packed voltages + statusStorage and thermogenerator voltages; status nibble
≥13Measurement dataConcatenation of active port payloads
status & 0x03MeaningJSON notes
0KeepaliveNo port measurement keys
1NormalPort keys present
2Alarm+ alarm_source_port / alarm_source_system when applicable

Paired decode examples

Hex and JSON below are paired: JSON is the output of the reference decoder on that payload (alarm_source_* only when status = 2).

Keepalive — hex FF 00 00 00 00 40 5A 00 38 55 2C D1 00

{
  "serial_number": 23104,
  "boardTemperature": 16,
  "baseTemperature": 45,
  "storageVoltage": 3600,
  "thermogenVoltage": 52,
  "status": 0
}

Normal (PT1000 on port 1) — hex FF 01 00 00 00 4E 5A 00 3F 46 2C C5 10 FA 00

{
  "serial_number": 23118,
  "boardTemperature": 23,
  "baseTemperature": 30,
  "storageVoltage": 3600,
  "thermogenVoltage": 49,
  "status": 1,
  "pt_1": 25.0
}

Alarm (PT1000 threshold on port 1) — hex FF 01 00 00 00 4E 5A 00 3F 46 2C C5 60 54 03

{
  "serial_number": 23118,
  "boardTemperature": 23,
  "baseTemperature": 30,
  "storageVoltage": 3600,
  "thermogenVoltage": 49,
  "status": 2,
  "alarm_source_port": 1,
  "alarm_source_system": 0,
  "pt_1": 85.2
}
Units

Decoder outputs engineering units. Do not re-scale in your ingest layer.

Downlink

Remote commands use LoRaWAN downlinks on FPort 4 (ACK on FPort 2). See Downlink commands for commands, parameter IDs, encodings, limits, and workflow. Initial commissioning (JoinEUI, AppKey, region, port types) remains Toolbox / USB only.

Full payload & JSON keys · LNS onboarding