Surprisingly perhaps, the Espressif ESP8266 and, more recently now the ESP32, both have official support for Wi-Fi mesh networking. In a mesh network, nodes can self-organise and dynamically talk to each other. Any node in the network is able to transmit data to any other node within range, which can then forward packets through the network to their final destination. If nodes are removed from the network, it should self-heal, and route around the damage.
The idea the Bluetooth too could act in a mesh arrived much more recently with the Bluetooth 5 standard, and right now has fairly minimal real world support. Which means that yesterday’s announcement of support for BLE Mesh networking on the ESP32 is actually far more important than it might seem on the surface.
Yesterday’s release is very much a beta release and, as such, Espressif has made a temporary BLE Mesh branch of their official IoT Development Framework for the ESP32 for people to take a look at it. So be warned, this isn’t production ready code, at least not yet.
Right now the temporary branch supports provisioning, along with relay, and segmentation of the mesh network, as well as proxies, and a range of generic client models such lighting and sensors. Built on top of Zephyr BLE Mesh stack the ESP SDK supports network provisioning and node control as well as node features like Proxy, Relay, Low Power and Friend.
If you’re interested in getting started with BLE mesh networking on the ESP32 you should grab the beta branch of the Espressif IDF, which supports mesh networking, and take a look at the code and examples. But make sure to file any issues you have with the beta, so that the team at Espressif can take a look at them.