Tektelic Home Sensor - missing 7 of 8 frames

We are using the Tektelic (Kona) Home Sensor.
We selected LoRaWAN MAC v1.0.2, Params B.
Gateway seems all good (Kona Mirco Gateway, also from Tektelic).
OTAA works as expected.
If we reset the Kona Home Sensor, it sends a Join Request and NS returns Join Accept.
After first data uplink (magnet/reed switch), it shows a Downlink that includes:
fOpts:
cid:LinkADRReq: chmask (0-15): false, chMaskCntl: 7 (all 125Khz bands off, mask applies to 64-71).
cid:LinkADRReq: chmask (0-7): true, chmask (8-15): false, chMaskCntl: 0 (mask applies to channels 0-15)
Does this leave channel 64 (500KHz) disabled?

We only see updates from the Home Sensors periodically. They are acting like they did not get the Channel Mask (LinkADRReq). When we do receive LoRaWAN frames, there are large gaps (3-10+) in our Uplink Frame Counter (fCnt).

Our loraserver is configured for channels 0-7 for US915.

Please help us find our missing LoRaWAN Frames.

Hi Kris,

we are also seeing similar issues and we have updated the enabled_uplinks command, but it appears to still push down all 72 channels to the device. Have you run into that with the home sensor not getting the correct channel plan after the loraserver.toml file has been updated?

thanks

I get this kind of DownLink sent every time my device sends in data: TxInfo seems good (Rx Channel mod 8 = Tx Channel).

    "downlinkMetaData": {
        "txInfo": {
            "gatewayId": "647fdafffe0085d9",
            "frequency": 925100000,
            "power": 20,
            "modulation": "LORA",
            "loraModulationInfo": {
                "bandwidth": 500,
                "spreadingFactor": 10,
                "codeRate": "4/5",
                "polarizationInversion": true
            },
            "board": 0,
            "antenna": 0,
            "timing": "DELAY",
            "delayTimingInfo": {
                "delay": "1s"
            },
            "context": "BUtVpA=="
        }
    },
    "phyPayload": {
        "mhdr": {
            "mType": "UnconfirmedDataDown",
            "major": "LoRaWANR1"
        },
        "macPayload": {
            "fhdr": {
                "devAddr": "011dbf00",
                "fCtrl": {
                    "adr": true,
                    "adrAckReq": false,
                    "ack": false,
                    "fPending": false,
                    "classB": false
                },
                "fCnt": 5,
                "fOpts": [
                    {
                        "cid": "LinkADRReq",
                        "payload": {
                            "dataRate": 0,
                            "txPower": 0,
                            "chMask": [
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false
                            ],
                            "redundancy": {
                                "chMaskCntl": 7,
                                "nbRep": 0
                            }
                        }
                    },
                    {
                        "cid": "LinkADRReq",
                        "payload": {
                            "dataRate": 5,
                            "txPower": 0,
                            "chMask": [
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false
                            ],
                            "redundancy": {
                                "chMaskCntl": 0,
                                "nbRep": 1
                            }
                        }
                    }
                ]
            },
            "fPort": null,
            "frmPayload": null
        },
        "mic": "36cd768b"
    }

So it seems to try to set the correct channel mask to the Home Sensor. First it says “disable all” then “enable 0-7” in Band1/2). I assume the Home Sensor is also expected to enable channel 64 (903000000 @ 500KHz for Uplink).

Are you able to post your toml file? and comment out any passwords or delete any postgresql sections. I am interested in what you have for the enabled uplink channels section. We only have channels 0-7, but our downlink looks alot different than yours, we only see all channels enabled.

Is your home sensor profile set for 1.0.2 and rev B? We do not seem to be getting the same result in our downlinks and we are using 8 channel gateways, but in our logs, the loraserver is sending enable channels 0-71 and we cannot seem to fix this issue. So our device is also missing uplinks from the home sensor

thanks

ubu1:~/dev/loraserver-docker/configuration/loraserver$ grep -Ev ‘^\s*#|^\s*$’ loraserver.toml

[postgresql]
dsn="postgres://loraserver_ns:loraserver_ns@postgresql/loraserver_ns?sslmode=disable"
[redis]
url="redis://redis:6379"
[network_server]
net_id="000000"
[network_server.band]
name="US_902_928"
  [network_server.network_settings]
  enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
[network_server.gateway.backend.mqtt]
server="tcp://mosquitto:1883"
[join_server.default]
server="http://appserver:8003"
[geolocation_server]
server="geoserver:8005"

Yes, we are using LoRaWAN MAC spec 1.0.2, Parameters B.

Started modifying the Min and Max data rate in the Service Profile and presto - now getting all LoRa frames from the sensor. Setting to Max Data Rate of 3, we very different LinkAddrReq frames from sensor (including an Ack?) and server. Tx Power is getting adjusted from the server.

More to report when I better understand how these data rates (aka Spread Factors) are best setup for the Home Sensor.

Here is the macPayload sent to the device after lowering the Max DR to 3 (not using the 500KHz uplink which is DR4).

        "macPayload": {
            "fhdr": {
                "devAddr": "00ccf31f",
                "fCtrl": {
                    "adr": true,
                    "adrAckReq": false,
                    "ack": false,
                    "fPending": false,
                    "classB": false
                },
                "fCnt": 0,
                "fOpts": [
                    {
                        "cid": "LinkADRReq",
                        "payload": {
                            "dataRate": 0,
                            "txPower": 0,
                            "chMask": [
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false
                            ],
                            "redundancy": {
                                "chMaskCntl": 7,
                                "nbRep": 0
                            }
                        }
                    },
                    {
                        "cid": "LinkADRReq",
                        "payload": {
                            "dataRate": 3,
                            "txPower": 0,
                            "chMask": [
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                true,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false,
                                false
                            ],
                            "redundancy": {
                                "chMaskCntl": 0,
                                "nbRep": 1
                            }
                        }
                    }
                ]
            },
            "fPort": null,
            "frmPayload": null
        },
        "mic": "83231c93"
    }

Note the dataRate: 3

Now the Sensor responds with acceptance of those LinkADRReq commands:

            "macPayload": {
                "fhdr": {
                    "devAddr": "00ccf31f",
                    "fCtrl": {
                        "adr": true,
                        "adrAckReq": false,
                        "ack": false,
                        "fPending": false,
                        "classB": false
                    },
                    "fCnt": 5,
                    "fOpts": [
                        {
                            "cid": "LinkADRReq",
                            "payload": {
                                "channelMaskAck": true,
                                "dataRateAck": true,
                                "powerAck": true
                            }
                        },
                        {
                            "cid": "LinkADRReq",
                            "payload": {
                                "channelMaskAck": true,
                                "dataRateAck": true,
                                "powerAck": true
                            }
                        }
                    ]
                },
                "fPort": 10,
                "frmPayload": [
                    {
                        "bytes": "wWvveO4TpA=="
                    }
                ]
            },
            "mic": "39aa8511"
    }

Note: LinkADRReq: channelMaskAck: true, dataRateAck: true, powerAck: true
Both commands are Acked; set all channels off, set on channels 0-7.

Note subsequent LinkADRReq from NS are used to change (adapt) the txPower (and presumably dataRate if needed).

                "macPayload": {
                "fhdr": {
                    "devAddr": "00ccf31f",
                    "fCtrl": {
                        "adr": true,
                        "adrAckReq": false,
                        "ack": false,
                        "fPending": false,
                        "classB": false
                    },
                    "fCnt": 1,
                    "fOpts": [
                        {
                            "cid": "LinkADRReq",
                            "payload": {
                                "dataRate": 3,
                                "txPower": 2,
                                "chMask": [
                                    true,
                                    true,
                                    true,
                                    true,
                                    true,
                                    true,
                                    true,
                                    true,
                                    false,
                                    false,
                                    false,
                                    false,
                                    false,
                                    false,
                                    false,
                                    false
                                ],
                                "redundancy": {
                                    "chMaskCntl": 0,
                                    "nbRep": 1
                                }
                            }
                        }
                    ]
                },
                "fPort": null,
                "frmPayload": null
            },
            "mic": "bebd6cdb"
    }

So is the problem fixed (for now).
We set the Max Data Rate to 3 in the Service Profile.

Now we see LinkADRReq Acks in the UpLinks.

thanks Kris!

we were able to determine that there was a error in the toml file with the enabled uplinks command and everything is working now