Possible Fix for Mesh Reconnect Issue based on RSSI values

Background:

If you have a Particle Mesh device that is say perfectly stable at a line of sight distance of 300 m, and then it becomes disconnected, presently that device needs to be moved about 200 m closer to the gateway to reconnect. (Take these measurements with a grain of salt.)

Solution:

Test the (lets call it the MLE) OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN which is normally set to a value of 10, why doesn’t Particle try lower values say 7 to 3.

The MLE value of 10 is the difference between the RSSI value and background noise allowed for a device to re-connect.

This value is in the Particle github at https://github.com/particle-iot/openthread/tree/master/src/core inside the file openthread-core-default-config.h at line 1652 a fixed link to the file commit is here

Why test the Particle version of OpenThread with different values?

See this openthread-users group blurb about the RSSI values. Here is a quote from the thread:

The OPENTHREAD_CONFIG_MLE_LINK_REQUEST_MARGIN_MIN configuration represents a tradeoff between link stability and range. Of course, weighing the tradeoff can depend on a variety of factors, including hardware platform and operating environment.

RSSI values are a range: -1 Strong Signal -------> -99 Weak Signal

An MLE was very sensibly set by OpenThread so that for reconnection the Thread only looks at signals from -1 to -89 for perfect (no) background noise and a lower range for really bad background noise. Which makes lots of sense, until you see the RSSI values when working with the Particle Mesh. The best value I could get without Antennae and the 2 devices touching was -19, and that value dropped off dramatically within the first 2 meters. (2 meters between a Xenon and and Argon and my RSSI values could easily be -60)

However my Xenons are perfectly stable with an RSSI value of -98, perhaps the Particle hardware is more stable than what OpenThread was designed to work with!

Anyway, since the Particle Cloud is not Open Sourced (as far as I can tell). I can’t test this information out, so I can’t really help Particle with some of it’s connection issues. (If someone wants to contact me about how to make my own Particle Cloud I would be very interested. :grinning: and then I could spend hours testing to see if this does help)

So this is out of my hands and just a suggestion for Particle to try.

Since po-util.com gives access to the Particle and OpenThread firmware code, this feature is accessible. See post Local Build Argon using po-util with OpenThread

I will post some code when I get it working.

4 Likes

My devices, even before making any changes, have become too unstable, not sure why, so for now their is no point trying to do any distance testing inside. I will have to test things outside (line of sight) and see if the stability gets any better.

A few weeks ago I was easily getting 60 meters inside and 600 meters outside, presently barely getting 10 m inside. Not really sure why.

Maybe new sources of 2.4GHz interference nearby?

1 Like