MCPcopy Index your code
hub / github.com/arpanghosh8453/open-dronelog

github.com/arpanghosh8453/open-dronelog @3.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.3.0 ↗ · + Follow
1,073 symbols 2,509 edges 65 files 285 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://github.com/arpanghosh8453/open-dronelog/raw/3.3.0/src-tauri/icons/icon.png" alt="Open DroneLog" width="96" />

OPEN DRONELOG

<a href="https://github.com/arpanghosh8453/open-dronelog/releases">
    <img src="https://img.shields.io/badge/Download-Latest%20Release-1a7f37?style=for-the-badge&logo=github" alt="Download Latest Release" height="48"/>
</a>
&nbsp;&nbsp;
<a href="https://opendronelog.com">
    <img src="https://img.shields.io/badge/opendronelog.com-blue?style=for-the-badge&logo=globe" alt="Visit Website" height="48"/>
</a>
&nbsp;&nbsp;
<a href="https://app.opendronelog.com">
    <img src="https://img.shields.io/badge/Launch-Webapp-red?style=for-the-badge&logo=globe" alt="Launch Webapp" height="48"/>
</a>

A high-performance application for analyzing drone flight logs (DJI and Litchi CSV formats). Available as a Tauri v2 desktop app or a Docker-deployable web app. Built with DuckDB and React.

[!IMPORTANT] DJI is a registered trademark of SZ DJI Technology Co., Ltd. DroneLogbook® is a registered trademark of DroneAnalytics Inc. Litchi is a trademark of VC Technology Ltd. Airdata or Airdata UAV is a trademark of Airdata UAV, Inc. This project is independent and is not affiliated with, sponsored by, authorized by, or endorsed by SZ DJI Technology Co., Ltd., DroneAnalytics Inc., VC Technology Ltd., Airdata UAV, Inc., or their affiliates.

[!NOTE] This project repository is dynamically mirrored in Codeberg as a backup. An alternative docker image is available at codeberg.org/arpanghosh8453/open-dronelog.

Contents

Features

  • High-Performance Analytics: DuckDB-powered queries with automatic downsampling for large datasets. Free, open source, no subscription required.
  • Multi-Format Support: Import DJI logs (.txt), Litchi CSV, and Airdata CSV exports with automatic unit detection. Third-party apps (Dronelink, DroneDeploy) supported. Optional external parser plugins can be configured via parsers.json.
  • Smart Deduplication: Prevents duplicate imports based on drone serial, battery serial, and start time.
  • Interactive Flight Maps: 3D terrain, map-type selection (Satellite, Topographic, OpenStreetMap), flight replay with speed control (0.5x-16x), live telemetry overlay, and RC joystick visualization.
  • Telemetry Charts: Height, speed, battery, cell voltages, attitude, RC signal, GPS, distance-to-home, velocity, battery full capacity, and battery remaining capacity with synchronized drag-to-zoom, per-profile telemetry color customization, and collapsible panel controls.
  • Local-First Storage: All data in a local DuckDB database. No cloud upload required (except DJI key fetch during first import).
  • Smart Tags: Auto-tagging (Night Flight, High Speed, Low Battery, etc.) and offline reverse geocoding for location tags. Manual tags and bulk operations supported.on.
  • Filters & Search: Date range (calendar + typed YYYY-MM-DD start/end quick entry), drone/battery/controller/color filters, duration/altitude/distance sliders, tag filter, map area filter, and filter inversion.
  • Overview Dashboard: Aggregate stats, activity heatmap, pie charts by drone/battery/duration, time-of-day radial chart, cluster map with optional heatmap layer, and top-flight highlights.
  • Battery Health: Per-battery health bars with cycle count tracking, serial renaming, per-minute usage history with zoom, and battery capacity history chart with multi-select battery dropdown showing full-charge capacity trends over time.
  • Maintenance Tracking: Configurable thresholds with color-coded progress bars and date-based maintenance recording.
  • Exports: CSV, JSON, GPX, KML, and Summary CSV export. FlyCard generator for shareable 1080x1080 social media images.
  • HTML Report: Generate a configurable, print-ready flight regulation report (A4 layout) with selectable field groups, weather data, and day-by-day grouping. Can be printed as PDF via Ctrl+P. Pilot name and field preferences can be customized and will persist across sessions.
  • Manual Flight Entry: Record flights without log files with optional coordinates and metadata.
  • Multi-Language Support: Full internationalization with 11 language locales (English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Chinese) and locale-aware number and date formatting.
  • Progressive Web App (PWA): Optionally install the application directly from the browser for a native-like experience on desktop and mobile.
  • Backup & Restore: Export/import full database across desktop and Docker instances.
  • Profile System: Create multiple profiles to separate flight data by pilot, drone fleet, or purpose. Each profile has its own database, config, uploads, and sync folder.Optionally lock any profile (including the default) with a password.

Accessing flight log files

You first need to collect the supported flight log files that you can import to this application.

Automated Sync (Windows/Mac)

You can sync your DJI flight logs directly from the mobile (Android/iPhone) or RC/RC-2/RC-Pro directly and seamlessly using the Litchi Hub Bridge companion app on your Windows/Mac desktop or laptop. This is a free application that lets you sync your flight logs from the phone's DJI Fly app or the RC devices directly to a local folder.

image

Download Here - Windows | MacOS

After installation, run it and check the tray menu (it usually gets minimizedto tray after start) - Right click on tray icon and pick settings - Check the Start with Windows in General tab and go to Flight Logs Sync tab to pick a local folder where the logs will be synced. Select the Auto-sync when a device connects for a seamless experience. After this setup, as soon as you plug in your RC or Android/iPhone (should be unlocked and mounted to your desktop/laptop) which you use to fly your drones, it will automatically search for the relevant folders and copy the .txt logs from there to your selected local folder.

image

[!TIP] After you set up Open Drone Log, you will have an option to pick a Sync folder from where the application (Open Drone Log) syncs files on startup for new log files. If you select the same log folder for both application, you will not have to find or copy new logs manually anymore - it syncs automatically with your Oopen Drone Log application!

Manual Log collection

This project supports modern DJI log files in the .txt format. For DJI fly apps on Android or RC remotes, they are usually in Internal Storage > Android > data > dji.go.v5 > files > FlightRecord. For iOS, Connect your iPhone/iPad to a computer, open iTunes/Finder, select the device, go to the "File Sharing" tab, select the DJI app, and copy the "Logs" folder. If you are already using other online sync applications, you can download the original logs files directly from there too.

You can find more details resources from this simple google search

Litchi flight logs can be exported as CSV files from the Litchi app. Litchi-imported flights are automatically tagged with "Litchi" for easy filtering.

Airdata Exports

If you use Airdata to sync your flight logs, you can export the original DJI log files directly from the Airdata website:

  1. Go to your Airdata flight logs and click on my account
  2. In the left sidebar, under My Data secction, pick Download my data
  3. Click Request Export and wait for their email with zip containing the .txt files

Airdata Export Guide

These exported log files can then be imported directly into Open DroneLog.

Setup and installation (Windows/MacOS)

There is no installation step if you want to use the standalone binary builds, just visit the latest release page, and download the appropriate binary for Windows or MacOS and run them.

[!WARNING] For macOS, there are additional steps required before you can use the application.

[!IMPORTANT] When you are copying from RC or mobile device, you can NOT directly drag and drop the files to the interface. This is because these external devices are mounted differently and only accessible to the file manager. Please copy the files to a local folder or the device sync folder before trying to upload or sync.

[!TIP] Explore the full manual if you want to have a comprehensive overview of all the available options and features inside the app.

Windows (64-bit)

  • Open.DroneLog_(version)_x64-setup.exe: Standard installer. Best for most users.
  • Open.DroneLog_(version)_x64_en-US.msi: Enterprise installer. For IT admins deploying to multiple PCs.

macOS

(Files available for both aarch64 / Apple Silicon and x64 / Intel) * ...dmg: Standard disk image. Best for most users (drag and drop to Applications). * ...app.tar.gz: Compressed app bundle. A quick, alternative way to download the app without mounting a drive. * open-dronelog_darwin_...: Command-line binary. For advanced terminal users only.

Linux (64-bit)

  • Open.DroneLog_(version)_amd64.deb: Package for Ubuntu, Mint, and Debian systems.
  • Open.DroneLog-(version).x86_64.rpm: Package for Fedora, CentOS, and Red Hat systems.
  • Open.DroneLog_(version)_amd64.AppImage: Universal portable app. Runs on any Linux distro without installing.
  • open-dronelog_linux_x86_64: Command-line binary. For advanced terminal users only.

Android APK Releases

Recommended for most users: * open-dronelog_(version)_android-universal.apk: Universal APK that works on most Android devices.

Advanced / smaller download option: * open-dronelog_(version)_arm64-v8a_android.apk: Modern 64-bit ARM phones/tablets (most current Android devices). * open-dronelog_(version)_armeabi-v7a_android.apk: Older 32-bit ARM devices. * open-dronelog_(version)_x86_64_android.apk: 64-bit x86 devices/emulators. * open-dronelog_(version)_x86_android.apk: 32-bit x86 devices/emulators.

If you are unsure which one to use, install the universal APK.

General / Verification

  • checksums.txt: Security file. Use to verify your downloaded files aren't corrupted or tampered with.

Try the Webapp First (No Installation Required)

Want to quickly test the tool before committing to a full installation? Try the hosted webapp. Please only use it for evaluation and temporary visit.

Launch Webapp

  • Zero setup – just open the link in your browser
  • Perfect for evaluation – see if the tool fits your needs before installing
  • Single flight visualization – upload and analyze one flight log at a ti

Extension points exported contracts — how you extend this code

TelemetryFieldDef (Interface)
Definition of a telemetry field that can be plotted
src/components/charts/TelemetryCharts.tsx
ImportMetaEnv (Interface)
(no doc)
src/vite-env.d.ts
FlightTag (Interface)
(no doc)
src/types/index.ts
FlightState (Interface)
(no doc)
src/stores/flightStore.ts
HtmlReportFieldConfig (Interface)
(no doc)
src/lib/htmlReportBuilder.ts
SafeAreaInsets (Interface)
(no doc)
src/hooks/platform/useSafeAreaInsets.ts
ChartPanelConfig (Interface)
Configuration for a single chart panel
src/components/charts/TelemetryCharts.tsx
ImportMeta (Interface)
(no doc)
src/vite-env.d.ts

Core symbols most depended-on inside this repo

err_response
called by 91
src-tauri/src/server.rs
getTauriInvoke
called by 61
src/lib/api.ts
tr
called by 60
src/lib/htmlReportBuilder.ts
esc
called by 54
src/lib/htmlReportBuilder.ts
fetchJson
called by 50
src/lib/api.ts
lock
called by 45
src-tauri/src/tauri_app.rs
db_authenticated
called by 39
src-tauri/src/tauri_app.rs
isWebMode
called by 38
src/lib/api.ts

Shape

Function 743
Method 166
Class 81
Interface 78
Enum 5

Languages

TypeScript59%
Rust41%

Modules by API surface

src-tauri/src/server.rs114 symbols
src/lib/api.ts98 symbols
src-tauri/src/tauri_app.rs83 symbols
src-tauri/src/database.rs77 symbols
src/components/dashboard/Overview.tsx68 symbols
src/components/dashboard/FlightList.tsx61 symbols
src/components/dashboard/FlightImporter.tsx43 symbols
src/components/charts/TelemetryCharts.tsx39 symbols
src-tauri/src/parser.rs37 symbols
src/lib/htmlReportBuilder.ts30 symbols
src/components/dashboard/SettingsModal.tsx25 symbols
src-tauri/src/models.rs25 symbols

For agents

$ claude mcp add open-dronelog \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page