Skip to content

Releases: gridbasedotnet/meshcore-TAK

1.0.0 — MeshCore TAK

Choose a tag to compare

@gridbasedotnet gridbasedotnet released this 03 Aug 18:08

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.md with 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 per docs/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's View, 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
    IPlugin class that assets/plugin.xml names 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
    PluginConnector with a GeoChatConnector.
  • 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.