RF24Mesh  V1.0.3b
A user friendly mesh overlay for sensor networks using RF24Network and nRF24L01 radio modules
Setup And Config

The initial testing version of RF24Mesh is built as a simple overlay for RF24Network.

Users currently need to be familiar with the basics of sending and receiving data via RF24Network, but do not need to understand the topology, routing or addressing systems. RF24Mesh will attempt to construct and maintain a mesh network, keeping all nodes connected together.

Requirements

Hardware Requirements:

Software Requirements:

Installation

  1. If not installed, use the Arduino Library Manager, or download and install the RF24, RF24Network, and RF24Mesh libraries per the above links

  2. Configure and test the hardware using examples from RF24 and RF24Network prior to attempting to use RF24Mesh
    a: In Arduino IDE: File > Examples > RF24 > GettingStarted
    b: RPi: Follow the RF24 instructions on GitHub

  3. Once testing is complete:
    a: Arduino IDE: File > Examples > RF24Mesh > RF24Mesh_Example
    b: RPi: Run 'make' from the examples directory. Then 'sudo ./RF24Mesh_Example_Master' to begin as the master node

  4. Once configured and running, the Master Node will begin to assign addresses to the sensor nodes, which will find their way onto the network, and display incoming data from the sensor examples. Usage is very much the same as RF24Network, except for address assignment and network management.

Configuration

As per the examples, nodes are configured with a unique value between 1 and 255. This allows them to change positions on the network, while still being identified.

For pre-configuration of the mesh, only a few options are available by editing RF24Mesh_config.h prior to compiling:

#define MESH_MAX_CHILDREN 4

The max_children option restricts the maximum number of child nodes/node and limits the number of available addresses on the network. Max: 4

#define MESH_NOMASTER

The nomaster option reduces program space and memory usage. Can be used on any node except for the master (nodeID 0)