https://github.com/arnavballincode/drone_web_interface_909
Telemetry Dashboard for MAVLink Drones ππ A real-time web interface built with React to visualize MAVLink telemetry data. It fetches JSON logs generated by pymavlink and displays critical drone parameters like attitude, battery status, and sensor readings. Includes a Python backend for handling telemetry data streams
https://github.com/arnavballincode/drone_web_interface_909
css flask flask-api flask-application html mavlink pymavlink python react typescript
Last synced: 3 months ago
JSON representation
Telemetry Dashboard for MAVLink Drones ππ A real-time web interface built with React to visualize MAVLink telemetry data. It fetches JSON logs generated by pymavlink and displays critical drone parameters like attitude, battery status, and sensor readings. Includes a Python backend for handling telemetry data streams
- Host: GitHub
- URL: https://github.com/arnavballincode/drone_web_interface_909
- Owner: ArnavBallinCode
- License: other
- Created: 2025-04-04T15:01:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-07T16:33:59.000Z (about 1 year ago)
- Last Synced: 2025-04-07T17:39:02.154Z (about 1 year ago)
- Topics: css, flask, flask-api, flask-application, html, mavlink, pymavlink, python, react, typescript
- Language: TypeScript
- Homepage:
- Size: 2.14 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Drone_Web_Interface_909
**An advanced telemetry and monitoring system for real-time MAVLink data visualization.**
## π₯ Overview
Drone_Web_Interface_909 is a cutting-edge web-based **UAV telemetry dashboard**, designed for real-time data visualization from drones using **MAVLink**. The system integrates with **Jetson and Pixhawk** and now features:
- **3D Data Visualization** π
- **Full TypeScript & React-based UI** π¨
- **Real-time MAVLink telemetry processing** β³
- **Optimized for both mobile and desktop** π»π±
---
## π **Project Evolution: From Basic Web UI to TypeScript & 3D**
### π **Previous Versions which were also built for ISRO IROC-U (HTML, CSS, JavaScript)**
Before transitioning to TypeScript and 3D visualization, the project was a **basic web interface** built using:
β
HTML, CSS, JavaScript
β
Simple data polling from JSON files
β
2D telemetry displays (tables, simple graphs)
π **Repository Link:** [IROC_WEB_INTERFACE](https://github.com/ArnavBallinCode/IROC_WEB_INTERFACE)
---
### π **Current Version (Web_Interface_909 - TypeScript & 3D)**
The new version is a **modern, interactive telemetry system**, with:
β
TypeScript + React for a modular UI
β
**Three.js for 3D telemetry visualization**
β
WebSockets for live data updates
β
Improved file-based JSON data fetching
π **Repository Link:** [Web_Interface_909](https://github.com/ArnavBallinCode/Drone_Web_Interface_909)
---
## βοΈ **How It Works**
### π― **System Architecture**
1οΈβ£ **Telemetry Data Flow**
- A **Python script (`listen.py`)** reads MAVLink telemetry and writes `.json` files in `public/params/`.
- The React-based frontend reads these JSON files and updates the UI dynamically.
2οΈβ£ **Frontend (React + TypeScript)**
- Fetches and processes telemetry from `/public/params/`.
- Uses **Three.js** for **3D drone movement & attitude representation**.
- Displays real-time battery, altitude, and position data.
3οΈβ£ **Backend (Python + MAVLink)**
- Uses `pymavlink` to listen to drone telemetry.
- Converts MAVLink messages into structured `.json` files.
---
## π **Installation & Setup**
### π **1. Clone the Repository**
git clone https://github.com/ArnavBallinCode/Drone_Web_Interface_909.git
cd Drone_Web_Interface_909
---
## π **2. Setting Up the TypeScript Project**
### β
**For Windows (PowerShell/Command Prompt)**
1οΈβ£ Install **Node.js** (latest LTS) from [nodejs.org](https://nodejs.org/)
2οΈβ£ Install dependencies:
```sh
npm install
```
3οΈβ£ Start the React development server:
```sh
npm run dev
```
4οΈβ£ Open `http://localhost:5173/` in your browser.
---
### β
**For macOS (Terminal)**
1οΈβ£ Install **Homebrew** (if not installed):
```sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
2οΈβ£ Install Node.js & dependencies:
```sh
brew install node
npm install
```
3οΈβ£ Start the development server:
```sh
npm run dev
```
---
### β
**For Linux (Debian/Ubuntu)**
1οΈβ£ Install **Node.js**:
```sh
sudo apt update && sudo apt install -y nodejs npm
```
2οΈβ£ Install dependencies:
```sh
npm install
```
3οΈβ£ Start the development server:
```sh
npm run dev
```
---
## π° **3. Running MAVLink Telemetry Data Collection**
1οΈβ£ Connect Pixhawk/Jetson via USB (`/dev/tty.usbserial-0001`)
2οΈβ£ Run the Python script:
```sh
python3 listen.py
```
3οΈβ£ Data will be written to `public/params/`.
---
## π‘ **4. Viewing the Telemetry Dashboard**
Once the frontend server is running:
- Open **`http://localhost:5173/`** in your browser.
- You will see **real-time drone telemetry, battery status, GPS, IMU data, and a 3D model** representing the droneβs movement.
---
## π **Previous Versions & Related Repositories which were also used in ISRO_IROC_U challenge **
| Repository | Description | Link |
|------------|-------------|------|
| `IROC_WEB_INTERFACE` | Original UI (HTML, CSS, JS) | [View Here](https://github.com/ArnavBallinCode/IROC_WEB_INTERFACE) |
| `ISRO_IROC_Web` | Backend scripts (Python + MAVLink) | [View Here](https://github.com/ArnavBallinCode/ISRO_IROC_Web) |
| `ISRO_IROC_Webinterface` | Older telemetry interface (Python-based) | [View Here](https://github.com/ArnavBallinCode/ISRO_IROC_Webinterface) |
---
## π― **Upcoming Features**
β
WebSocket-based real-time updates (instead of polling JSON files)
β
AI-powered anomaly detection for UAV telemetry
β
Enhanced **3D mapping using LiDAR & SLAM data**
---
## π¨βπ» **Contributing**
1οΈβ£ Fork the repository
2οΈβ£ Create a new branch (`feature-xyz`)
3οΈβ£ Commit your changes (`git commit -m "Added XYZ feature"`)
4οΈβ£ Push and submit a PR π
---
## License
This project is **not open-source**. All rights are reserved by the author. No part of this repository may be used or reproduced without explicit permission from **Arnav Angarkar**.
---
## π **Contact & Support**
If you need help, open an issue in the repo or reach out via:
π§ **Email:** 24bcs015@iiitdwd.ac.in