Class-c downlink removed from queue but Never transmitted

Viewed 4

Hello,

I am using a local ChirpStack instance on a Seeed SenseCAP M2 gateway (EU868).

My Aqua-Scope KFRLWE02 joins successfully via OTAA and sends uplinks correctly on FPort 10. The device profile has Class C enabled.

The manufacturer confirmed:

  • 0700 = close valve
  • 0764 = open valve
  • 17 = request status
  • FPort = 10
  • no extra Class-C activation is required on the device

Problem:

When I enqueue an unconfirmed downlink, e.g.

  • FPort 10
  • payload 17 or 0700

the queue entry is accepted and then disappears. The downlink frame counter increases.

However:

  • the motor does not react
  • no application downlink appears in the device LoRaWAN frames
  • no PULL_RESP or TX_ACK appears in the SenseCAP LoRa packet-forwarder log

Normal protocol downlinks do work. After a ConfirmedDataUp, ChirpStack sends an UnconfirmedDataDown with:

  • f_port: null
  • empty frm_payload
  • ack: true

So the gateway and downlink path appear to work in principle.

Question: Why would a Class-C application downlink be removed from the queue and increment the downlink counter, but never reach the gateway as PULL_RESP / TX_ACK?

Is there any additional ChirpStack Class-C configuration I should check on a local SenseCAP M2 setup?

thanks
friedrich kronemeyer

1 Answers

Question: Why would a Class-C application downlink be removed from the queue and increment the downlink counter, but never reach the gateway as PULL_RESP / TX_ACK?

ChirpStack will only remove the downlink from the queue on TX_ACK from the gateway. See: