Cool idea, but I believe a WiFi mesh would be untenable under our given power constraints.

Since we are using the ESP's WiFi antennae for client connections, we would like to focus the WiFi signal into a building (maybe it could mesh it's way down from the roof if necessary?). That would leave little signal left to mesh with neighboring buildings, meaning the nodes would have to be _very_ high density in order do any sort of valuable meshing.

We did play around with WiFi meshing on the ESP8266 here, https://github.com/sudomesh/disaster-ping-pong, which was intended to be part of the garden mesh project, https://github.com/sudomesh/gardenmesh/. Essentially, it would have been a reimplementation of BlackEdder's painlessMesh written in Lua for the nodeMCU firmware.

The premise of both disaster-ping-pong and painlessMesh (if I understand it correctly), is that ESPs switch off roles as clients and servers, temporarily connecting as client of one, exchanging information about nearby nodes, then disconnecting and connecting to the next nearby node, so on and so forth until the mesh has converged and each ESP has a complete psuedo-routing table. This strange client-to-server exchange is why it is not true ad-hoc TCP/IP networking and why they use chip IDs (which correspond to the MAC address of the ESP's WiFi interface) instead of IP addresses. It is a very bizarre and hacky way of building a mesh and that is part of the reason we've avoided it. Not to say cool things couldn't be done with it. If we revisit gardenmesh, I would consider rewriting it in Arduino and use painlessMesh.

Thanks for the thoughts,
-grant

On Tue, Jan 2, 2018 at 2:22 PM, <samuk@disroot.org> wrote:
So thinking about the limitations of mesh networks in general, and wondering how your LoRa network would scale.

I'm guessing that in common with WiFi mesh reducing the traffic would help, particularly if you ended up with a fairly high node density and a well-used & congested network.

So I was wondering if it would be possible to pass off local traffic to a WiFi mesh? (Run on the same hardware) So if I want to communicate with my neighbour two streets away it goes over WiFi, if it's someone on the other side of town it would go over LoRa?

In this implementation: https://gitlab.com/BlackEdder/painlessMesh/wikis/home
"painlessMesh does not create a TCP/IP network of nodes. Rather each of the nodes is uniquely identified by its 32bit chipId which is retrieved from the esp8266/esp32 using the system_get_chip_id() call in the SDK.  Every node will have a unique number.  Messages can either be broadcast to all of the nodes on the mesh, or sent specifically to an individual node which is identified by its `nodeId."

So could the node could look in its list of connections: https://gitlab.com/BlackEdder/painlessMesh/wikis/home

If it has a route over WiFi then send the packet that way, if there is no route over WiFi (Or it's more than X hops away) then broadcast it over the LoRa interface instead.

I'm guessing this long range mode is incompatible with the 'Painless mesh' but it could be interesting to look at that too.
https://blog.honzamrazek.cz/2017/08/testing-the-wifi-range-of-esp32/


I guess using wifi & LoRa would have power implications?

Thanks

Sam
_______________________________________________
DisasterRadio mailing list
DisasterRadio@lists.sudoroom.org
https://sudoroom.org/lists/listinfo/disasterradio