Messaging
Goal: send your first message and see it confirmed, then add group chat and translation.
No matching section — try another keyword.
No matches elsewhere in the guide.
Send a message#
- Open the Messages tab → new conversation (or “send message” from a station detail — it fills the callsign).
- Enter the recipient callsign (with SSID; the addressee field is space-padded to 9 characters, a fixed APRS101 field) and your text.
- Watch the bubble: ✓ confirmed = the other client returned an ACK; spinner = waiting; ✗ = timed out.
- History is persisted and Chinese text works (UTF-8 / GBK decoded automatically).
A message frame looks like this (from afsk_test; after :: comes the
addressee field, right-aligned and padded to 9 characters):
BG7LZQ-9>APALOC::BA7KSM :Hello from APRSlocus
Two hard limits#
The UI pre-checks both — remember them:
- 67 characters — the APRS101 message-text cap. Most clients read beyond it; a few truncate or reject.
- 512 bytes — the APRS-IS line cap. Over that the server may drop the whole frame, header included.
UTF-8 makes every non-ASCII character cost more than one byte, so long messages hit the 512-byte line first. The composer pre-checks both limits.
Group chat#
- Messages → new → Group → name it and pick members.
- The app generates a group callsign and invites everyone — later posts broadcast on it.
- Groups live in the same conversation list as direct chats, marked with an icon and unread badge.
Group broadcast is unavailable in RF (TNC) mode and single messages are capped at 67 characters there too — the channel is shared and one broadcast occupies everyone’s frequency.
Two-way translation#
Path: Settings → Translation. Several engines, a free endpoint by default, no API key required.
- Translate to: pick the target language (Chinese by default).
- Engine: “auto” picks for you, or pin Google public / MyMemory / LibreTranslate / Baidu / custom. Public instances that need a key are highlighted; a self-hosted Libre can stay empty.
- Enable auto-translate: incoming messages show a translation next to the original; outgoing text can be translated before sending.
- Hit test translation to confirm the path works — results are validated, so a provider echoing the source back cannot fake success.
Translation requests leave from the app side only; native surfaces like home-screen widgets never see your API keys — they only receive snapshots the app pushes to them.