Every release, both platforms, no marketing gloss. Full commit-level history lives in the iOS and Android release pages.
Landed on main — in the next builds
iOSiOS 2.44.0 is in App Store review. MBTiles overlays draw after import: the map switches to 2D and frames the tiles, and a file that holds vector tiles is refused with a clear message instead of showing as a blank layer (#131).
iOSAn MBTiles overlay whose file has gone missing stays in the list, is marked, and can be deleted (#130).
iOSMarker list: one tap does one thing. Tapping broadcast could delete the marker before. Swipe a marker to delete it, with a confirmation (#118).
iOSMeshtastic: the radio now tells the app when data is waiting, so mesh traffic no longer depends on a once-a-second poll and keeps arriving while OmniTAK is in the background.
Android 0.45.0
AndroidOctober 4, 2026
Meshtastic over Bluetooth recovers by itself, real node list values, position and marker switches
Meshtastic over Bluetooth: the link comes back by itself after a drop or a radio reboot. After one connect that timed out at the wrong moment the app could stop making connection attempts while still counting them, and only a force-stop cleared it. A session that stops answering is now ended and reconnected instead of sitting on "Connected". In reboot tests on a Heltec V3 and a Pixel 6a the link came back every time. Reported from the field (#203).
A reflashed or updated radio connects without being forgotten first. Android kept an old copy of the radio's service list and never asked the radio again, so the board showed as unsupported. The app now refreshes that list on every connect (#203).
Full speed after a reconnect. The phone could stop answering signal strength reads, and each unanswered read held everything else up for a second: downloading the radio's config took 189 s in that state and takes about 6 s now. Data-ready notifications from the radio are switched on too, so traffic no longer waits on a once-a-second poll (#203).
Entering a pairing PIN is no longer cut off after 15 s, and the BLE pane says what to do when it can tell: radio not answering, pairing request waiting in the notifications, Bluetooth off (#203).
"Copy diagnostics" no longer includes raw radio traffic. In 0.44.0 the copied text could contain channel keys, positions and messages; it now carries sizes only (#203).
The mesh node list shows real values. Nodes from the radio's own database showed "20731d ago" and absurd SNR, with no battery or position, because the app read the wrong fields. Last heard, SNR, hops, battery and position now match what the radio reports (#238).
New switches. "Report my position" in Settings stops your position going out to servers and the mesh, with a "PPLI OFF" chip in the top bar while it is off. "My marker" in Layers hides your own marker on the map without changing what is sent. The mesh relay has one switch per direction, mesh to server and server to mesh. From the field list (#211, #210, #212).
No position is sent before a live fix. After a restart the app could send the position it remembered from the last session before the phone had a fix (#205).
The server list shows what is really connected. Each row shows its actual state, and the top bar count (for example 1/2) turns amber with a dot per server when some are down (#209).
Fixed two crashes of the background connection service on Android 15 and later, and the Skip button on the first-run screens no longer sits under the status bar (#223, #229, #221).
iOS 2.43.0
iOSOctober 3, 2026
Callsigns back on the 2D map, enrollment saves the right host
Callsigns are back on the 2D map. On recent iOS versions contact markers could be drawn cut off, without their callsign, or with ??? in its place. Callsigns are now drawn as map labels under each marker. Reported from the field (#132).
A teammate's marker no longer carries a question mark. Units that report no specific type get a plain frame.
Enrolling with a full address such as https://tak.example.com:8446 saves the right host. Before, the server stayed on Connecting after a successful enrollment. Reported on GitHub (#138).
Enrolling again with a server you had enrolled with before now connects, a port typed into the address in the plain TCP form is used, and IPv6 addresses are read correctly.
Android 0.44.0
AndroidOctober 3, 2026
Field fixes: self marker, zoom limit, landscape, BLE diagnostics
Self marker drawn once. On phones with a compass it was drawn twice, one copy rotating with heading. The same change fixes the most common crash in 0.43.1, a cold-start race when location switched on before the map finished loading. Reported from the field (#204, #197).
The map stays drawn at maximum zoom. Each basemap now carries its real tile limit and the camera stops two levels past it, instead of zooming into tiles that do not exist. A visible MBTiles overlay with deeper zoom raises the limit (#206).
Landscape: About, the ONVIF camera screen, the QR scan permission prompt, the empty Servers state and the Tools sheet now scroll, so nothing is cut off on a phone turned sideways (#207).
Meshtastic BLE diagnostics: the BLE pane shows the last failure (phase, reason, bond state, failures in a row), "Copy diagnostics" puts the recent BLE log on the clipboard for a bug report, and a verbose logging switch adds detail without a restart. First step on the BLE drop reported from the field; the fix itself is in 0.45.0 (#203).
The Meshtastic link state shows the radio's name instead of its Bluetooth MAC (#208).
Released on GitHub as a sideload APK. On Google Play these changes arrive with 0.45.0.
iOS 2.42.0
iOSSeptember 21, 2026
Trust toggle honored for Mission Sync, direct messages fixed on ATAK, Marti port in setup
"Trust untrusted certificates" now applies to the Marti REST connection (Mission Sync, Data Sync), not just the CoT stream. Servers enrolled through the app always carry a truststore, which used to shadow the toggle; the explicit opt-in now wins, and the app logs which trust mode each server uses. Reported on GitHub (#127).
Direct messages land in the sender's thread on ATAK and iTAK. The chat CoT is keyed by the recipient's UID the way ATAK expects; before, the other side saw a room named after itself. Reported on GitHub (#125).
Marti API port during setup: the enrollment screen has the field next to the enrollment port, and enrollment QR links accept apiport. Reported on GitHub (#126).
Android 0.43.1
AndroidSeptember 21, 2026
Direct messages land in the right chat on ATAK
Direct messages are keyed by the recipient's UID the way ATAK expects, so the other side files them under the sender instead of a room named after itself. Parity with iOS 2.42.0 (iOS #125).
iOS 2.41.0
iOSSeptember 8, 2026
Server setup gets flexible: Marti API port, TCP Quick Connect, custom basemaps
Per-server Marti API port. Edit Server gets a "Marti API Port" field next to the streaming and enrollment ports, so Mission Sync and Data Sync work against servers that run their REST API off 8443. Saved servers and shared profiles carry on unchanged. Reported on GitHub (#114).
Quick Connect over plain TCP. The Streaming Protocol row is now a real TCP | SSL selector: TCP mode skips enrollment, defaults to port 8087, warns that traffic is clear-text, and connects directly. Reported on GitHub (#103).
Custom XYZ/WMTS tile basemap: point the 2D map at any tile server, live traffic overlays included. Android parity.
Paired-radio split: a phone plus its paired Meshtastic radio no longer shows as two drifting dots, standalone trackers stay visible. Toggle under Meshtastic settings.
Mesh link-state dot on the Mesh tab: green connected, amber connecting, red failed, grey no device.
Radial menu floats directly on the map, no backdrop, matching Android.
Done buttons on Settings and Servers return to the map.
Android 0.43.0
AndroidSeptember 1, 2026
Community QoL: BLE auto-reconnect and more map
OmniTAK's first external code contribution — every feature in this release was contributed by a field tester who runs OmniTAK at live MilSim events.
Meshtastic BLE auto-reconnect — a dropped radio (battery swap, walked out of range, power cycle) reconnects on its own within ~20 seconds of coming back, screen off included. Tapping Disconnect still means disconnect.
The bottom toolbar auto-hides on the map tab — tap the bottom edge to bring it back — and now draws as an overlay, so showing or hiding it never resizes the map. Every other tab keeps it always visible; Settings toggle to turn off.
New top-info-bar toggle collapses the status row down to just the server connection dot — for phones mounted horizontally on a plate carrier, where every row of map counts.
Mesh node list now shows how long ago each node was last heard, beside SNR and hop count.
Smaller download — a dependency had been silently disabling code shrinking for the whole app; fixed, APK drops 81 MB to 70 MB.
Android 0.42.2
AndroidAugust 31, 2026
Meshtastic radio control fix
In-app channel create/set now actually takes effect on the radio — admin messages are addressed to the attached radio instead of broadcast, which the firmware's admin module ignores.
Position broadcast interval setting now reaches the radio (was written to a deprecated field).
Non-Latin device names (Chinese, etc.) no longer fail silently — names are clamped in UTF-8 bytes.
Android 0.42.1
AndroidAugust 28, 2026
Field-tested: background PPLI and radio visibility
Background PPLI fixed — position keeps flowing with the screen locked, for server and mesh-only devices alike. Driven directly by field-test feedback from a 50-operator MilSim prep.
Paired-radio visibility — radios paired to a TAK client no longer double up their operator's dot; standalone trackers (vehicles, mission objects) stay visible. A link-state dot on the Mesh tab shows connection health at a glance.
LAN server discovery — TAK servers advertising over Bonjour/mDNS show up in Add Server, tap to prefill.
Echelon / unit-size modifiers on MIL-STD-2525 symbols (Team through Corps).
Geofencing — circle and polygon fences with entry / exit / dwell events — plus elevation-profile and line-of-sight foundations, ported from iOS.
Now targets Android 16.
iOS 2.40.0
iOSJune 25, 2026
Off-grid mesh takes a big step forward
Dropped markers now share over the mesh — points propagate to other OmniTAK devices over Meshtastic/MeshCore with no TAK server required.
In-app Meshtastic settings: view, create, and share channels by QR, set broadcast interval, role, and rebroadcast scope — no stock Meshtastic app needed.
Standard TAKPacket encoding for interop with ATAK's Meshtastic plugin.
CoT point age + data-source indicators — see how old a contact's position is and whether it came from the server or the mesh.
Meshtastic connect times out cleanly instead of hanging on “Connecting.”
Landscape map chrome no longer eats the map (plate-carrier orientation).
Certificate enrollment parses /Marti/api/tls/config with a real XML parser — servers emitting attributes in any order now enroll with the correct subject DN.
Android 0.40.0
AndroidJune 26, 2026
Big mesh + situational-awareness update
Off-grid mesh marker sharing over Meshtastic/MeshCore (TAKPacketV2, port 78).
Full radio setup in-app: channels with link + QR sharing, device role, broadcast interval, rebroadcast scope, LoRa region + modem preset, and device name.
Mesh ↔ TAK-server relay (gateway mode) — optional and off by default, bridges CoT both ways, loop-safe and throttled.
CoT point age, optional on-map staleness overlay, and per-point data-source indicator.