Skip to content

Derive LAT/LON from Maidenhead grid locator in AetherModem Beacon panel #3671

Description

@ea5wa

Request preparation

  • I used an AI assistant to help structure this request
  • I checked for existing issues covering the same feature

What would you like?

Problem

The APRS Beacon panel exposes MANUAL LAT and LON fields for station
coordinates, but requires the operator to enter decimal degrees manually.
Most amateur radio operators know their Maidenhead grid locator
(e.g. IM99sc) but not their precise decimal coordinates.

Proposed Solution

Add a GRID QLineEdit field to the Beacon panel. When the operator
enters a valid Maidenhead locator (4- or 6-character), the application
computes the corresponding decimal latitude and longitude (center of the
grid square) and populates the existing LAT and LON fields automatically.

Behaviour:

  • Accepts 4-character (field+square, e.g. IM99) and 6-character
    (field+square+subsquare, e.g. IM99sc) locators.
  • Input is case-insensitive; normalised to mixed-case on display.
  • LAT/LON fields remain manually editable — GRID auto-fill does not
    lock them.
  • If the GRID field is cleared or contains an invalid locator, LAT/LON
    are left unchanged.
  • Conversion is pure arithmetic (no network call or external dependency).

Implementation

This feature is fully implemented and tested in
ea5wa/AetherSDR. A PR will follow
this issue.

Screenshots

Acceptance Criteria

  • Entering a valid 6-char locator (e.g. IM99sc) fills LAT ≈ 39.104
    and LON ≈ −0.458 (center of subsquare).
  • Entering a valid 4-char locator fills LAT/LON at center of the
    larger square.
  • Invalid input (wrong length, illegal characters) is silently
    ignored — no crash, no error dialog.
  • LAT and LON remain editable after auto-fill.
  • Setting persisted via AppSettings (e.g. AprsBeaconGrid).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementImprovement to existing feature

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions