OpenAthenaAndroid
OpenAthena allows common drones to spot precise geodetic locations
Install / Use
/learn @Theta-Limited/OpenAthenaAndroidREADME
OpenAthena™ for Android
OpenAthena for Android
An Android version of the OpenAthena project
OpenAthena™ instantly calculates the ground location of any single pixel from any single drone image.
🖼️👨💻 + 🧮⛰️ = 🎯📍
NOTICE: OpenAthena for Android is no longer open source to the general public, following a license change from Theta Informatics LLC. While no longer open source, it will remain available as a free app download on Google Play.
U.S. Government, Military, and other trusted end users can request source code access by emailing support@theta.limited.
<a href="https://github.com/mkrupczak3/OpenAthena"><img width="540" alt="OpenAthena Drone Camera Terrain Raycast Concept Diagram" src="https://github.com/mkrupczak3/OpenAthena/raw/main/assets/OpenAthena_Concept_Diagram.png"></a>
<a href="https://play.google.com/store/apps/details?id=com.openathena"><img width="200" alt="OpenAthena arbitrary point location demo gif" src="./assets/tap_to_locate_demo_small.gif"></a>
<a href="https://play.google.com/store/apps/details?id=com.openathena"><img width="586" alt="OpenAthena Android splash screen demo" src="./assets/App_Open_Demo_landscape.png"></a>
<img width="586" alt="OpenAthena™ Android Target Calculation demo using cobb.tif and DJI_0419.JPG, output mode WGS84" src="./assets/DJI_0419_Target_Res_Demo_landscape.png"> <img width="586" alt="OpenAthena Android DJI_0419.JPG target shown in Google Maps satellite view" src="./assets/0419_maps_screenshot.png"> <img width="586" alt="OpenAthena for Android triggers a waypoint to show in Android Team Awarness Kit at the calculated location" src="./assets/ATAK_OpenAthena_CoT_Demo_landscape.png"> <img width="586" alt="OpenAthena for Android MGRS coordinate output for a target on the Pioneer Runway range, Fort Huachuca AZ" src="./assets/MGRS_Screenshot_Huachuca.jpg">License
Copyright (C) 2025 Theta Informatics LLC
Install
<a href='https://play.google.com/store/apps/details?id=com.openathena&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img width="216" alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/></a>
Operation manual
Quickstart
1. Select an Image 🖼:
To being, tap the '🖼' button to select and load a drone image.
This app is compatible with images taken by most DJI, Skydio, Autel, Parrot, and Teal drone models. The drone's position and its camera's orientation are automatically extracted from image EXIF and XMP metadata.
OpenAthena will automatically select and/or download a Digital Elevation Model (DEM) for the area around where your selected drone image was taken.
<img width="586" alt="OpenAthena™ Android User is prompted to allow automatic download of a Digital Elevation Model for use with their selected drone image" src="./assets/0699_download_DEM_prompt.png">2. Calculate a target 🎯:
Tap anywhere within the displayed image to calculate the corresponding ground target location. You can tap the result display box to copy the result text to your clipboard, or open the position in the maps app of your choice by clicking on the blue hyperlink:
<img width="586" alt="OpenAthena™ Android Target Calculation demo using cobb.tif and DJI_0419.JPG, output mode MGRS 1m" src="./assets/MGRS_demo_thompson_park.png"> <img width="586" alt="OpenAthena Android DJI_0419.JPG target location text copied to clipboard" src="./assets/0419_text_copied_to_clipboard.png">3. ATAK Cursor on Target
When the "✉️" button is pressed, OpenAthena will send a Cursor on Target multicast UDP packet to udp://239.2.3.1:6969 to all devices on the same network. This will cause a marker to show up in ATAK at the target location for all recipients:
<img width="586" alt="OpenAthena™ Android Target Calculation demo using cobb.tif and DJI_0419.JPG, output mode WGS84" src="./assets/DJI_0419_Target_Res_Demo_landscape.png"> <img width="586" alt="OpenAthena for Android triggers a waypoint to show in Android Team Awarness Kit at the calculated location" src="./assets/ATAK_OpenAthena_CoT_Demo_landscape.png">Change the marker to its appropriate type (friend, suspect, hostile) in ATAK, then send the updated target to other networked users.
Arbitrary Point Selection
OpenAthena allows users to tap any point in the image to locate it. Tapping on any point in the image will move the marker and calculate the new location. A new Cursor-on-Target message will not be sent to ATAK until the "✉️" button is pressed:
<img width="586" alt="OpenAthena for Android demo of arbitrary point selection for raycast calculation" src="./assets/DJI_0419_Target_Res_Arbitrary_Point_Demo_landscape.png"> <img width="586" alt="OpenAthena for Android demo of a cursor on target message calculated for an arbitrary point selected in a drone image" src="./assets/ATAK_OpenAthena_CoT_Arbitrary_Point_Demo_landscape.png">Tips for best results:
Troubleshooting
Certain error conditions may occur during regular use of this software. For troubleshooting information and a detailed description of the cause of possible errors, review the following document TROUBLESHOOTING.md:
https://github.com/Theta-Limited/OpenAthenaAndroid/blob/master/TROUBLESHOOTING.md
Setup for drone flight
Compass sensor 🧭 calibration
It is strongly suggested that you should calibrate the drone's compass sensor for the local environment before taking photos to be used with OpenAthena. Consult your drone's operation manual for this procedure. The image metadata from an un-calibrated drone can be several degrees off from the correct heading. This can result in dramatic target-resolution inaccuracies if the sensor is not calibrated. Always verify a target match location from OpenAthena before use!
E.g.:
<img width="586" alt="OpenAthena Android an example of a bad target resolution due to an un-calibrated magnetometer compass sensor" src="./assets/magnetometer_fail.png">Optional: use the "Manual Azimuth Correction" slider to correct bad compass data
If you find your aircraft's compass sensor is still not providing correct heading information, you can use this slider to manually apply a configurable offset anywhere in the range of [-15.0°, +15.0°]. This offset will be added to your aircraft's camera heading before target calculation is performed:
<img width="330" alt="OpenAthena Android Manual Azimuth Correction Slider" src="./assets/Settings_Manual_Azimuth_Correction_Demo.png">NOTE: This value is NOT for setting magnetic declination! Magnetic declination is already accounted for by your drone's onboard digital World Magnetic Model (WMM). Improper use of this Manual Offset setting will result in bad target calculation output.
Your selected manual correction value is saved automatically between launches of the app. To reset the value, tap the "RESET" button in the Settings screen or move the slider to the middle.
Let your drone acquire GPS lock before flying
For the best results for target calculation, it's important to let your drone sit at the launch position until it can get an accurate GPS fix. This is important for it to be able measure altitude correctly during flight.
On DJI drones, this indicator shows the number of GPS satellites visible to the drone:
<img width="586" alt="A screenshot of the UI for DJI Go 4 during flight of a Mavic 2 Zoom drone. The GPS connection indicator is highlighted" src="./assets/dji_good_gps_lock_ex.png">Wait until at least 6 GPS satellites are visible (or you can confirm the GPS fix is good) before starting flight.
Application Settings (optional) ⚙:
OpenAthena for Android supports multiple output modes for target calculation, including:
- Latitude, Longitude (standard WGS84)
- UTM (Universal Transverse Mercator)
- Nato Military Grid Reference System (MGRS) 1m, 10m, and 100m
- CK-42 Система координат Latitude Longitude (an alternative geodetic system commonly used in slavic countries)
- CK-42 Система координат Gauss-Krüger Grid: Northing, Easting (an alternative military grid reference system used by former Warsaw pact countries)
To change the ouptut mode of OpenAthena for Android, tap the kebab menu icon (three dots) at the top-right corner of the screen and select "Settings":
<img width="270" alt="OpenAthena™ Android 🎯 Output Modes Activity demo WGS84" src="./assets/Settings_WGS84_Demo.png">Select your desired output mode by pressing its button in the list:
<img width="270" alt="OpenAthena™ Android 🎯 Output Modes Activity demo NATO MGRS 10m" src="./assets/Settings_MGRS10m_Demo.png">Then press the back button or again tap the kebab menu icon (three dots) to return to the "Calculate" screen:
<img width="270" alt="OpenAthena™ Android Target Calculation demo using cobb.tif and DJI_0419.JPG, output mode NATO MGRS 10m" src="./assets/DJI_0419_Target_Res_MGRS10m_Demo.png">The app also supports selection between Meter and US Foot as the Distance Unit for the apps's output.
Telemetry and localization from live video feed
The end goal of this project is to enable UAS operators to perform terrain-raycast localization from any point within a live video feed. The target resolution engine of this application is hig
Related Skills
node-connect
352.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
Security Score
Audited on Apr 1, 2026
