I have little project to use ESP32 mesh to enable 2 Raspberry Pi Zeros to act like "walkie-talkies".
So each RPi is a WiFi AP hotspot and has a piggybacked ESP32 board (which acts as a bridge from the mesh to the RPi's AP, using painlessMesh). That part works fine.
But the RPi+ESP mesh of the one side ignores the RPi+ESP mesh of the other side, even though they're both configured similarly (mesh prefix, password, port, channel, etc). If I add standalone ESP32 mesh nodes into the mix, they integrate (arbitrarily) into one side's mesh or the other side's mesh, never both.
So how to configure the mesh to allow for active 2 roots? Or how to bridge the 2 mesh networks?
Or is there another way to do this?
Bridging the 2 mesh networks?
Re: Bridging the 2 mesh networks?
Here's an interesting observation...
I have ESP32 mesh node A bridged to an AP (192.168.0.5), and mesh node B bridged to another AP (192.168.0.10). The mesh network config for both A and B is identical:
When a new standalone (non-AP-bridged) ESP32 mesh node, configured as above, is added in the middle, it displays these log messages:
This acts like it's seeing 2 identical-but-different mesh networks, as if a mesh network that has a node that's bridging to an AP automatically becomes the "de facto" root node for the mesh. In my case I have 2 mesh nodes bridging to APs, so it sees 2 "different" mesh networks, even though they're otherwise configured identically.
Somehow there has to be a way of uniting the 2 meshes, or running a mesh network bridged to multiple APs!
I have ESP32 mesh node A bridged to an AP (192.168.0.5), and mesh node B bridged to another AP (192.168.0.10). The mesh network config for both A and B is identical:
Code: Select all
#define MESH_PREFIX "WalkTalkMesh"
#define MESH_PASSWORD "somethingSneaky"
#define MESH_PORT 5555
The new node then integrates arbitrarily into one WalkTalkMesh and ignores the other. Its messages go only to one AP node.CONNECTION: stationScan(): WalkTalkMesh
CONNECTION: eventScanDoneHandler: ARDUINO_EVENT_WIFI_SCAN_DONE
CONNECTION: scanComplete(): Scan finished
CONNECTION: scanComplete():-- > Cleared old APs.
CONNECTION: scanComplete(): num = 90
CONNECTION: found : WalkTalkMesh, -31dBm
CONNECTION: found : WalkTalkMesh, -38dBm
CONNECTION: Found 2 nodes
GENERAL: encodeNodeID():
GENERAL: encodeNodeID():
This acts like it's seeing 2 identical-but-different mesh networks, as if a mesh network that has a node that's bridging to an AP automatically becomes the "de facto" root node for the mesh. In my case I have 2 mesh nodes bridging to APs, so it sees 2 "different" mesh networks, even though they're otherwise configured identically.
Somehow there has to be a way of uniting the 2 meshes, or running a mesh network bridged to multiple APs!
Re: Bridging the 2 mesh networks?
Okay, so it turns out that this behavior is a bug with the current version of the ESP32 chip. With the current ESP32s, an ESP-MESH network can connect to at most to only one AP; if a 2nd AP is actively connected to, the mesh network bifurcates into two meshes, each with one AP, and the two meshes can't intercommunicate. This is a hardware, not architectural, limitation. So hopefully the next gen ESP chips won't have this restriction. But until then it looks like a no go...
Who is online
Users browsing this forum: No registered users and 16 guests