Contributing to the MeshCore Coverage map
What is this?
The goal of this project is to map out "effective" coverage of the Central West Florida MeshCore mesh.
The client app will already tell you whether a repeater heard your message, but that
doesn't really tell you much. Did it actually go anywhere? Did anyone else receive it?
By using MQTT data from prominent observer nodes, this helps visualize that places
where a sent message will be widely received.
The coverage map
is a crowd-sourced visualization of repeater coverage in the Central West Florida MeshCore mesh.
The main map has a few features:
- Dots indicate "pings" or "samples" from wardrivers.
-
- Pings are visible on the map for 1 day before being grouped into a "coverage"
tile (a box).
- Green dot - a ping was "observed" (by MQTT) at that location.
- Orange dot - a repeater was heard but the ping was not observed.
- Red dot - a ping was lost.
- Coverage tiles hold stats for the last 15 "groupings" of pings.
-
- Green box - the mesh was reachable in this region.
- Orange box - the mesh was not reachable, but pings were heard in this region.
- Red box - the mesh was not reachable in this region.
- Dashed line - links a green dot or box to its 1st hop repeater(s).
- Blue dot - repeater with an advert in the past 1 day.
- Light gray dot - repeater with an advert in the past 5 days.
- Dark gray dot - repeater without an advert in the past 5 days.
How it works
You send your location to #wardrive in the format "lat.xxxx lon.yyyy".
If your location is received, a new point is added to the map indicating
you can reach the mesh at that spot. If you want to also log places where you
can't reach the mesh, there's a helpful web app you can run on your phone to
automate the process. To be considered reachable, your message repeats have to
be observed by one of the following MQTT observers.
WA7JNJ Radio made a nice
video
overview
of the project and how to get started.
How you can contribute
The easiest way to contribute is to use the
Wardrive app.
It allows you to connect to your companion radio and send ping messages
automatically. It also sends your ping location to the service so that
misses are also automatically logged. You can send single pings or enable
'auto mode' which will send a ping when you enter a coverage tile that hasn't
been updated recently. The app will also listen for a repeat and send the
repeater and radio stats to the service. This allows you to find repeaters
that aren't getting repeated by the larger mesh.
Using the Wardrive app
It mostly "just works", but there are few things to know when using the app.
- You must allow access to Bluetooth and Location in your browser.
- Your companion radio must add the #wardrive channel. The app will help with that.
- It does not work in Safari or most vendor-modded Android browsers.
- On MacOS, use Edge or Chrome.
- On iOS, use the Bluefy app
- On Android use Edge
or Chrome.
- You have to disconnect from the MeshCore app in order to connect to your radio. BLE only allows one
connection.
- If you're using auto mode, the web page must be in the foreground and the screen unlocked.
- It tries to keep the screen alive while running, but I've only tested on iOS.
- Auto mode checks every 10 seconds if you're in a coverage tile that needs an update and only sends a ping if
needed (hasn't already been pinged in the past day).
- Don't spam the mesh or the service. The mesh is a shared resource -- be judicious.
- If you're using a mobile repeater (car-peater), use the "ignore id" function to exclude it from the path.
Otherwise coverage data will be inaccurate.
Host an instance for your region?
If you want to set up an instance for your region you have two good options.
- Host your own Cloudflare version by following the
setup instructions.
- Use the self-hosted fork from nullrouten0.
Privacy
The only thing the service stores is the location you send to #wardrive and the id of the 1st hop repeater.
The web app sends your location to #wardrive and to the service. That's it. Logging on the web app is stored
locally. You will be sending your companion radio's name with your location to #wardrive which is a public channel.