Thread Network Diagnostics Cluster always reports very low LQI

I've been struggling with Thread connectivity on a custom PCB, powered by a MinewSemi ME54BS03 module (with IPEX connector)

I'm using an external 2.4GHz antenna and I'm supplying the module with 2.5V.

I have set the TX power to 20

CONFIG_OPENTHREAD_DEFAULT_TX_POWER=20

I have added a Thread Network Diagnostics Cluster and when I query it, I *always* seen LQI values of 3 or less.

Is the LQI value being reported correctly? How is it being calculated?

Any help here would be great as I'm struggling to determine the source of my connectivity issues and was hoping the Diagnostics Cluster would help!

Thanks.

Parents Reply Children
  • Sorry for the late reply but yes that is what it is . Link quality is derived from link margin and then bucketed to 0-3 with hysteresis. This is aøso documented here

      /**
         * Returns the current one-way link quality value. The link quality value is a number 0-3.
         *
         * The link quality is calculated by comparing the current link margin with a set of thresholds (per Thread spec).
         * More specifically, link margin > 20 dB gives link quality 3, link margin > 10 dB gives link quality 2,
         * link margin > 2 dB gives link quality 1, and link margin below or equal to 2 dB yields link quality of 0.
         *
         * In order to ensure that a link margin near the boundary of two different link quality values does not cause
         * frequent changes, a hysteresis of 2 dB is applied when determining the link quality. For example, the average
         * link margin must be at least 12 dB to change a quality 1 link to a quality 2 link.
         *
         * @returns The current link quality value (value 0-3 as per Thread specification).
         *
         */
        LinkQuality GetLinkQuality(void) const { return mLinkQuality; }

Related