Releases: gridbasedotnet/meshcore-TAK
Release list
1.0.0 — MeshCore TAK
First public release. Signed by the TAK Product Center third-party pipeline and confirmed running on retail ATAK-CIV.
Install: download the -TAKSIGNED.apk below, then follow docs/INSTALL.md. Requires retail ATAK-CIV 5.6 or newer.
sha256 42494583aae68c93fa6cd70b8767e6c78aaceb142f49aa5c1611f6b1f5b96a11
First release distributed to testers. Signed by the TAK Product Center third-party pipeline
and confirmed loading and running on retail ATAK-CIV.
Added
- MeshCore companion-protocol client over BLE (Nordic UART), with session handshake,
firmware-version gating, offline-queue drain, and unattended reconnect — ~7 s after a link
drop, ~1.4 s to reattach after an ATAK restart. - MCTAK wire format, specified normatively in
docs/payload-spec.mdwith golden fixtures
byte-verified on every test run: a 10-byte common header, 28-byte position reports, GeoChat
with gated receipts, IDENT/WHO identity kinds, and a systematic LT fountain code for
arbitrary objects. - Position both directions. Inbound reports become map markers; outbound beacons on an
operator-selectable timer taken from ATAK's self marker, so the radio needs no GPS.
Beaconing is suppressed without a usable fix rather than reporting a wrong location. - Chat both directions through ATAK's own GeoChat, including real 1:1 conversations and
delivery receipts that draw ATAK's tick. - Mesh peers as ATAK contacts with the native chat bubble and presence, and repeaters
rendered as map infrastructure. - Encrypted channel management from the pane — list, select, create — with SHA-256 key
fingerprints so two operators can confirm they hold the same key without exchanging it. - Airtime governor. LoRa time-on-air computed from the radio's own SF/BW/CR and spent from
a token bucket, with priority classes perdocs/payload-spec.md§8. - Refusal to transmit MCTAK on channel slot 0 (Public) by design.
Fixed
- Closing the plugin pane silently froze the entire plugin. Inbound datagrams, chat
injection, receipts and the reconnect timer were posted through the pane'sView, which
parks runnables until the next attach; reopening replayed a 15-minute backlog at once. Now
on a main-looper handler. - Release builds loaded zero extensions. The 4.6-era ProGuard configuration renamed the
IPluginclass thatassets/plugin.xmlnames by fully-qualified name for ATAK's reflective
lookup. Debug builds do not minify, so every hardware test to date had passed. Adopting the
5.x template's ProGuard rules fixed it. - The plugin refused to install on ATAK 5.6 hosts. The manifest declared a 5.8.0 API
floor; lowered to 5.6.0, which is as far back as tak.gov retail goes. ATAK's loader is a
minimum-version gate, so one artifact covers 5.6 and newer. - Mesh peers rendered with a plug icon and no way to open a conversation — replaced the
PluginConnectorwith aGeoChatConnector. - Replies to a mesh peer went out as broadcast rather than direct, which meant they could
never come back as a delivery receipt. - The position-interval picker rendered no choices, then only two of six.
Known issues
- Peer markers use a fixed 300 s stale window while the beacon interval is selectable up to
900 s, so at the longer intervals a peer greys out between beacons. - Voice and imagery are deliberately not implemented — see
docs/FEATURES.md.
Earlier signed builds
Three pipeline-signed artifacts preceded 1.0.0 and are tagged in this repository. None should
be used. signed-cab89db (ATAK 5.5) and signed-e7ff7fb (ATAK 5.8) both carried the
minification defect above and load zero extensions. signed-5d833dc fixed it and was the
first build confirmed running on a retail host, but declares a 5.8.0 floor and will not
install on 5.6 or 5.7.