What defines a node as a Repeater?


Just setting up my Mesh network, I have an Argon and a few Xenons, they’re all connected and working. I’m interested to know, what defines a node as a repeater? For example, if I want to use the Argon as a gateway, and half of my Xenons as Repeaters how do I configure the Xenons?

Out of the box, Xenons are acting as repeaters. Thread protocol allows a device to NOT be a repeater but this is not an available setting on Xenons right now.

Thanks for the reply,

So does this mean they work as repeaters, regardless of what Sketch they’re configured with? If I’m running one as a temperature sensor for example, it will still act as a repeater at the back end? The documentation doesn’t seem to make this very clear…

Yes that is correct. However, it should be transparent to you/ your application.

The Xenon acting as a repeater or not only affects how your physically layout your mesh devices.

This would be really great to post in some obvious spot (like the documentation???) I’ve just spent hours looking for this. If you search on the particle.io site using the search bars on various pages, they never show this. Only a google search of “site:particle.io repeater” finally finds this one thread.
Especially since the blog post describing the Xenon says

"But this raises a big question, which of the two roles — repeater or endpoint — should a Xenon take? "

That sure makes it sound like it’s something the user needs to set, or that it’s at least exposed to the user…

Totally agree. There is nothing stating how the Xenon nodes behave by default (that I could find) and the Mesh 101 series of blog posts doesn’t clarify it at all.

this post has a bit more info,

i think repeaters just help get traffic through the network and endpoints serve the function of gathering data via sensors. so as to a default , it may depend on how the xenon is used within the network

That Particle Mesh 102 is where the quote I posted above is from. It just doesn’t say anywhere that they actually only function in repeater mode which is what @kennethlimcp said above

I’m over-simplifying here, but an easy way to think of this is a Repeater never sleeps.
A Endpoint node sleeps, so it’s not available to route mesh traffic.

There might be a distinction in the firmware between the (2) at a later date, but (I’m guessing) that’s not absolutely necessary. If a Xenon is awake, it will attempt to participate in the Mesh Service.

Think of a repeater like a switch in an ethernet network. The difference is that it can also run a user app. In a Particle Mesh, a repeater is (currently) an always-on Xenon. A “sleep node” Xenon will never act as a repeater in order to sleep to reduce power. Hence, careful consideration of a mesh’s topology will be necessary to use both repeaters and sleep nodes.


I’m clear on the concepts. The point I was trying to make is that it’s not clear how you switch these modes on/off. The documentation reads as though Xenons can be a repeater or and endpoint or both. It’s just unclear how you define their role in software/firmware.

Now the question is clear. :slight_smile:

tldr; you cannot change the behavior as of now but once that API is exposed, you will be able to do so.

I had a similar doubt/ question after reading the “Particle Mesh 102” article on “selecting a role for a device”. I had just started enrolling some Xenons with an Argon as gateway and I did not recall any option during the device setup for choosing the role of “repeater”/parent or “endpoint”/child. Nor did I find any possibility to change their (default) role, e.g. in the Console. So did I understand the discussion here correctly, that (at the moment) there is not any option, and no need for that matter, to select whether, say, an Xenon becomes a Router or Endpoint. Rather, one can say that their actual role will depend whether the firmware sends them to sleep or not. Correct?


you cannot change the behavior as of now but once that API is exposed, you will be able to do so.

Any idea when this API might be exposed? It is kind of limiting in designing end nodes that are battery powered and need to sleep to reduce power consumption.