Skip to content

Device identification#13

Open
fromalexx wants to merge 13 commits into
na7q:masterfrom
fromalexx:device-identification
Open

Device identification#13
fromalexx wants to merge 13 commits into
na7q:masterfrom
fromalexx:device-identification

Conversation

@fromalexx
Copy link
Copy Markdown

Summary

This PR adds device identification to APRSdroid so stations can show what kind of radio, app, or tracker they are using directly in the station list and object list.

Instead of only showing the callsign and comment, APRSdroid can now recognize many common APRS clients and display a readable device label such as:

  • Yaesu: FTM-400DR (rig)
  • Kenwood: TH-D74 (ht)
  • Open Source: APRSdroid (app, Android)

What this feature does

The new device identification feature helps you quickly understand what kind of station you are looking at.

It can identify devices from multiple common APRS mechanisms, including:

  • destination / TOCALL identification
  • Mic-E device markers
  • Kenwood-style comment suffix markers

This means APRSdroid can now recognize a wider range of radios, handhelds, trackers, and software clients, even when different devices encode their identity in different ways.

How it appears in the app

When a station or object has recognizable device information, APRSdroid shows an additional line in the station list/object list with the detected device.

Examples:

  • Yaesu: FTM-400DR (rig)
  • Kenwood: TH-D74 (ht)
  • APRS4R
  • Open Source: APRSdroid (app, Android)

The goal is to make the list more informative at a glance without requiring the user to inspect raw packets manually.

What kinds of stations this helps with

This is especially useful for:

  • users trying to see which radios nearby stations are using
  • identifying whether a station is a handheld, mobile rig, tracker, or app
  • understanding whether a station is coming from a dedicated radio or software client
  • spotting device differences in station/object views without leaving APRSdroid

How identification works

APRS clients identify themselves in different ways, so this feature supports more than one detection path.

1. TOCALL / destination-based identification

Many APRS clients identify themselves using the packet destination / TOCALL field.

APRSdroid can now read device definitions from the standard tocalls.yaml data and use that to identify radios, trackers, and software.

2. Mic-E based identification

Some devices encode identification using Mic-E suffix markers.

This allows APRSdroid to recognize devices such as some Yaesu and other APRS radios even when the TOCALL alone is not enough.

3. Kenwood comment-suffix identification

Some Kenwood radios identify themselves with suffix markers at the end of the raw comment.

This is important for devices like:

  • Kenwood: TH-D74 (ht)
  • Kenwood: TH-D75 (ht)

APRSdroid now preserves that identification at parse time so it is still available even after the app cleans up the displayed comment text.

How to use it

No special setup should be required for normal use.
Once running a build with this feature:

  1. open the station list or object list
  2. browse stations as usual
  3. look for the added device line under stations that can be identified

If the packet provides recognizable device metadata, APRSdroid will show it automatically.

Download tocall.yaml

Included in the change is a new menu option in Preferences called "Device Identification". In there, the user can specify the url to get the yaml file (I have seen issues where the file changes paths and project is no longer supported so it destroys the functionality in the app) and the ability to manually update it.

fromalexx and others added 13 commits April 7, 2026 10:57
- New DeviceIdentifier: parses tocalls.yaml line-by-line, matches tocall
  patterns (? and * globs) to device model names, caches in memory
- New DeviceDbUpdater: downloads tocalls.yaml on a background thread from
  a user-configurable URL (default: aprsorg/aprs-deviceid on GitHub);
  respects auto-update and WiFi-only preferences
- New DeviceIdPrefs activity: preference screen with auto-update toggle,
  WiFi-only toggle, editable URL, Reset to defaults, and Update now
- StorageDatabase: added tocall column (DB_VERSION 4→5, migration via
  ALTER TABLE), stores ap.getDestinationCall() in addPosition
- StationListAdapter: shows device name in yellowish text below course,
  hidden when tocall is unknown
- APRSdroid: calls DeviceDbUpdater.updateIfAllowed() on startup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@fromalexx fromalexx force-pushed the device-identification branch from bf590f0 to a9007d9 Compare April 9, 2026 13:00
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.

1 participant