meshtastic / firmware

Meshtastic device firmware
https://meshtastic.org
GNU General Public License v3.0
3.61k stars 899 forks source link

Location Ambiguity #3092

Closed Ferretdog closed 8 months ago

Ferretdog commented 10 months ago

Coming from using APRS in the ham radio world, I often enable Position Ambiguity which rounds off the last x digits of my lat/long. This gives people a rough idea where I am, but not an exact location, which is sufficient for many purposes. I might be happy to have people know roughly where I live without knowing the exact house, or knowing what town I'm in, but not much more than that.

For example a decimal lat/long to 4 or more decimal places locates a specific house. -37.8929, 145.1524

But if I drop it back to 3 decimal places I'm still pretty close without disclosing which house I'm in, 2 places is quite adequate or even 1 place is plenty for what part of town or what suburb you're in which is often enough on a shared channel.

crypto-smoke commented 10 months ago

I like this, but it's also probably best changed in the firmware repo and then implemented in the various UIs

garthvh commented 10 months ago

Are you not able to reduce location accuracy in android settings? This is an option for any app using location on iOS.

Ferretdog commented 10 months ago

Are you not able to reduce location accuracy in android settings? This is an option for any app using location on iOS.

Not reliably. In some areas it will still be very accurate, depending on local cell and wifi networks.

But you're assuming I'm not using my phone gps for anything else, like navigation.

This function is built in to APRS equipped hand held ham radios as I've described it, with ambiguity based on lat.long decimal places, and it is very effective. It's lso used in android apps which interact with APRS radios.

Screenshot_20240114-052507

geeksville commented 9 months ago

This issue has been mentioned on Meshtastic. There might be relevant details there:

https://meshtastic.discourse.group/t/adjustable-gps-precision-for-privacy/9513/3

jp-bennett commented 9 months ago

I've started work on this. Currently using a binary bitmask, so we just set the bits of precision.

jp-bennett commented 9 months ago

PRthis feature is at https://github.com/meshtastic/firmware/pull/3248, and support in the Python app is at https://github.com/meshtastic/python/pull/487 If anyone is interested in these features, and wants to test, I'd be very interested to hear how that goes. Full precision for a channel is 32, and at 0 location data is fully disabled for the given channel.

dougle03 commented 8 months ago

Will we see this in the web and Android app? - Perhaps for security purposes ambiguity over position should be the default with the option to increase accuracy.

jp-bennett commented 8 months ago

@dougle03 It's already in the iOS and Android app source code, and will roll out with the next release of both. It's not in the web app yet, but I expect that to happen before too long.

Firworksyt commented 8 months ago

Is this only for cellular device GPS forwarding or also for the hardware GPS on a node? I'm hoping it's for both so we can anonymize a little bit but still show the general location.

jp-bennett commented 8 months ago

@Firworksyt it's both now. We've added the code in the firmware routine that generates location packets. So regardless of the source, the location gets protected.