Best Architecture for a 45-Xenon Mesh?


#1

Hi All,

We are looking to setup a mesh of Xenons with 45 Xenon nodes; each will be collecting data from sensors over I2C and publishing this (four float values as a csv) to the Particle Cloud on a period of around 120 seconds. We have 9 Argons on hand too. A couple of question areas:

  1. a) What is the best architecture, i.e. number of Xenons per Argon?
    b) What is the limit of Xenons per Argon?
    c) Would we be best to have 9 meshes of 1Argon and 5Xenon?
    d) is inter-mesh interference an issue?
    e) Is it even worth having multiple accounts as 45+9 nodes in one app could be quite unwieldy? Is there a node limit per account?

  2. To publish the data to the cloud would we be better using:
    a) particle.publish() from each Xenon node directly to the Cloud (I understand this has a greater overhead than mesh.publish(), is there a limit of number of messages for a given time period that a single mesh/Argon can support?
    b) mesh.publish() from each Xenon, with the Argon(s) subscribed to the relevant topic. The Argon then aggregates the info and does it’s own particle.publish().

I hope the questions make some sense! Thanks!!!


#2

A point you have not mentioned is if the Xenon nodes are sleepy or not? I say this because building a mesh network with sleepy end nodes is considerably more complicated than with continuously powered ones!

Another point you haven’t mentioned is time stamping your sensor data readings. If your Xenons are all Particle cloud connected then this isn’t a problem - if they are just on the mesh then the Xenons will need to have their local time sync’d with the gateway (which will be internet connected and can sync itself with the Particle Cloud time).

There isn’t a RTC on Gen3 devices so you may need to either have a regular mechanism to sync with the Gateway or fit them with a RTC (I am using a DS3231).

With regards the mesh networks size and number of gateways - I might be wrong but at the moment there is no hard data from Particle about the exact memory usage per node and for the gateway. I am certain you will be OK with 10 Xenons per Argon and you may also be fine at 45 - you will need to experiment.

Lastly, you will need to implement a message publish queue on the Argon/Gateway - try https://build.particle.io/libs/PublishQueueAsyncRK/0.0.5 This basically buffers your outgoing events because you will need to immediately service incoming mesh events in your subscribed event handler.


#3

Thanks for the reply!

The nodes are all powered, so sleepy node is not an issue. I also do not need to timestamp the messages, as we are only interested in the “latest” message. As a result time sync is not important: thanks for the heads-up on the lack of RTC though.

Through this part of your response, you highlight an interesting point relating to connecting to Particle cloud. We have struggled to provision around 15 Xenons (7 via one Argon and 8 via another Argon), and we speculate that this is due to poor Wi-Fi/backhaul performance as they are all in automatic mode and (unnecessarily, in fact) are connecting to Particle cloud. What is the best way to make them mesh-connected and not Particle-cloud-connected? Do I run them in “manual” mode, and then simply not call “Particle.connect()”?

I’ll report back about how we get on with scaling to 45 node.

Thanks for the info about the message publish queue - will certainly implement this.


#4

@armor - do you know about the current pricing policies, and whether this allows more than 10 Xenons per Mesh? Please see:


#5

There is currently no limit or extra cost on how many Xenons you can add to a Mesh network. More than 10 is OK.


#6

However, this may change as High Availability becomes available. You would not plan a commercial product around current conditions so you should discuss with the Particle folks. Also, there is still a 100 device cap for free devices.


Multiple Gateways for Mesh Network
#7

Beaten to the draw by @RWB and @peekay123!


#8

Great!! Thanks guys. We’re just doing some short term prototypes for now, so no problem.

When “High Availability” is available we will be able to have multiple Argons in a mesh too, if I understand correctly. That will be awesome too!