Skip to content

Conversation

@fifieldt
Copy link
Member

@fifieldt fifieldt commented Aug 1, 2025

This patch makes two major changes to address the current complexity of GPS Configuration.

GPS Profile

GpsProfile, a new enum in PositionConfig we will use to configure a pre-tuned selection of GPS settings. The aim is to replace the current 5 configuration options with a single user-friendly label that is tailored to real-world Meshtastic use cases.

Based on a users selection of pedestrian, vehicle, or fixed position, we will apply different settings to GPS Update Interval, Position Broadcast Interval, Smart Broadcast Min Interval, Smart Broadcast Min Distance, and Position Flags in firmware. This should allow the apps to drastically simplify the position configuration shown to users.

The profile will also allow us to support new features in firmware to improve the accuracy of our position information. For example, taking advantage of advanced features in GPS hardware specific to each case. We should also be able to discard some erroneous positions based on physically impossible movement.

ENUM 0 corresponds to no profile, which should mean an easier transition, and also support the 'manual' use case for people like cynfab/gpsfan, and balloons/aircraft/boats.

More information about the selections anticipated for each use case is available in this google sheet

PositionFlags

This patch deprecates PositionFlags, which will now be selected in firmware based on the GPS Profile.

PositionFlags has long been seen as a complicated and confusing burden in the apps. We determined that very few users use them, with the majority happy with the default set, and some of the 'advanced' flags don't even work.

Checklist before merging

  • All top level messages commented
  • All enum members have unique descriptions

@github-actions
Copy link

github-actions bot commented Aug 1, 2025

The latest Buf updates on your PR. Results from workflow pull-request / build (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed❌ failed (28)Oct 8, 2025, 10:40 PM

This patch makes two major changes to address the current complexity of GPS Configuration.

GpsProfile, a new enum in PositionConfig we will use to configure a pre-tuned selection of GPS settings. The aim is to replace the current 5 configuration options with a single user-friendly label that is tailored to real-world Meshtastic use cases.

Based on a users selection of pedestrian, vehicle, or fixed position, we will apply different settings to GPS Update Interval, Position Broadcast Interval, Smart Broadcast Min Interval, Smart Broadcast Min Distance, and Position Flags in firmware. This should allow the apps to drastically simplify the position configuration shown to users.

The profile will also allow us to support new features in firmware to improve the accuracy of our position information. For example,  taking advantage of advanced features in GPS hardware specific to each case. We should also be able to discard some erroneous positions based on physically impossible movement.

ENUM 0 corresponds to no profile, which should mean an easier transition, and also support the 'manual' use case for people like cynfab/gpsfan, and balloons/aircraft/boats.

More information about the selections anticipated for each use case is available in this [google sheet](https://docs.google.com/spreadsheets/d/1-f9z5zx2VCYqE6ivYXm-XqtLeVZSGMKpC3G3wma6-vw/edit?gid=633840990#gid=633840990):

This patch deprecates PositionFlags, which will now be selected in firmware based on the GPS Profile.

PositionFlags has long been seen as a complicated and confusing burden in the apps. We determined that very few users use them, with the majority happy with the default set, and some of the 'advanced' flags don't even work.
fifieldt added a commit to fifieldt/meshtastic-firmware that referenced this pull request Nov 2, 2025
This patch makes two major changes to address the current complexity of GPS Configuration.

GpsProfile, a new protobuf we use to configure a pre-tuned selection of GPS settings.
The aim is to replace the current 5 configuration options with a single user-friendly label that is
tailored to real-world Meshtastic use cases.

Based on a users selection of pedestrian, vehicle, or fixed position, we apply different settings to
GPS Update Interval, Position Broadcast Interval, Smart Broadcast Min Interval, Smart Broadcast Min Distance,
and Position Flags in firmware.
This should allow the apps to drastically simplify the position configuration shown to users.

In this patch we take advantage of the profie to support new features in firmware to improve the accuracy of our
position information. For example, taking advantage of advanced features in GPS hardware specific to each case.
Because of this, some erroneous positions will be discarded based on physically impossible movement.

More information about the selections for each use case is available in this [google sheet](https://docs.google.com/spreadsheets/d/1-f9z5zx2VCYqE6ivYXm-XqtLeVZSGMKpC3G3wma6-vw/edit?gid=633840990#gid=633840990)

As part of the config screen simplication, this patch deprecates PositionFlags,
 which will now be selected in firmware based on the GPS Profile.

PositionFlags has long been seen as a complicated and confusing burden in the apps.
We determined that very few users use them, with the majority happy with the default set,
and some of the 'advanced' flags don't even work.

Depends on: meshtastic/protobufs#749
@thebentern
Copy link
Contributor

Tagging the app / client folks, but I'm definitely in favor of killing the position flags in favor of a simple list of profiles like this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants