Launching MESH Networks on Pycom

So, we’ve been busy over the last few months implementing a brand-new MESH solution. This works on all our development boards (LoPy4 and FiPy) and OEM modules (L01 and L04) that support LoRa and it’s an industry first we think!

To give you a bit more insight, we interviewed one of our developers who has been instrumental in the delivery of this new solution. Here we give you a bit more info about the MESH implementation and what’s possible with it. Here’s what we asked and what he said:

What has the implementation been based on and why?

The implementation of LoRa MESH is based on open-source project OpenThread (https://openthread.io) actively developed and supported by industry leaders. Although, Thread is based on 802.15.4-2006, the high flexibility and layered architecture allowed us to port it on LoRa Radio.

Lots of features are already ready out-of-the box, such as IPv6, 6LOWPAN (packet fragmentation), UDP, DHCP, PING and security.

What amazing things can people do with it?

MESH networks allow users to decentralise the network architecture, basically they don’t need to care about radio links anymore. The network will create, adapt and heal itself.

For example, for covering a large area, the user can deploy LoRa nodes, which will need at least one radio connection to connect the MESH network. Next, a designated LoRa node will be the Border Router, taking all MESH-traffic to the Internet (for example by relying packets on WiFi backhaul).

Moreover, the nodes’ position may vary, and with our implementation, the MESH network will auto-configure based on Radio signal strength.

Each device from the MESH network can communicate with any other node. And all of them can communicate to Internet (through Boarder Router).

What are the limitations?

This makes the Thread network to have a bigger delay, in network discovery and propagating changes. This is compared with a hardware 802.15.4 MAC capable Radio modem.

In this development build, nodes are FTD (Full Thread Device), by default, they will always listen and rely packets. The MTD (Minimal Thread Device) can be obtained with an additional build (recompile).

What will come with next releases and when?

At the moment, the basic data transfer mechanisms are implemented (UDP Socket, PING, IPv6). We intend to add a solid Border Router functionality and additional data security which will be audited and improved soon.

Based on feedback from our community we would like to enrich our current MicroPython Loramesh library.

A new release is targeted for mid-August 2018.

The main message for me here is that we need lots of community feedback. It’s going to be interesting to see everyone gets up to with a new Lora MESH network.