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(a)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(a)lists.sudoroom.org
https://sudoroom.org/lists/listinfo/disasterradio