Skip to content

Krushna-B/ground_control_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ground Control System

Real-time rocket telemetry visualization and monitoring

Node.js Python React TypeScript Docker License

FeaturesQuick StartDocumentation


Ground Control System Dashboard

Features

  • Real-time Telemetry — Live data streaming at 40Hz via WebSocket
  • Flight Visualization — Altitude, velocity, acceleration charts
  • System Health Monitoring — Battery, temperature, signal strength, flight state
  • Data Persistence — MongoDB storage for post-flight analysis
  • Modern UI — Clean, responsive dashboard built with React and Tailwind

Architecture

┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Radio 915mHz│───►│   Python    │───►│    Redis    │───►│   Node.js   │───►│    React    │
│  Telemetry  │USB │Serial Parser│    │             │    │   Backend   │ WS │  Dashboard  │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘
                                                               │
                                                               ▼
                                                         ┌─────────────┐
                                                         │   MongoDB   │
                                                         │   Storage   │
                                                         └─────────────┘

Quick Start

Prerequisites

1. Clone the repository

git clone https://github.com/Krushna-B/ground_control_system
cd ground_control_system

2. Configure environment

Update root .env with your settings:

MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/ground_control

Update ./serial_bridge/.env with your settings:

SERIAL_PORT = '/dev/tty.usbmodem12401'
BAUD_RATE = 115200
TIMEOUT = 100
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_TELEMETRY_CHANNEL = "Telemetry" 

3. Start the services

Terminal 1 — Docker services:

docker-compose up

Terminal 2 — Serial service:

cd serial_service
pip install -r requirements.txt
python main.py

4. Open the dashboard

http://localhost:3000

📁 Project Structure

ground_control_system/
├── backend/                 # Node.js WebSocket server
│   └── src/
│       ├── services/        # Redis, WebSocket, MongoDB services
│       ├── models/          # Database schemas
│       └── utils/           # Helpers and logger
├── frontend/                # React dashboard
│   └── src/
│       ├── components/      # UI components
│       ├── lib/             # Telemetry store and hooks
│       └── views/           # Page layouts
├── serial_service/          # Python USB bridge
│   ├── main.py              # Entry point
│   ├── parser.py            # Binary packet parser
│   └── serial_bridge.py     # Serial to Redis bridge
├
├── docs/                    # Documentation
│   ├── Telemetry_Protocol.md
│   
├── docker-compose.yml
└── README.md

Documentation

Document Description
Telemetry Protocol Binary packet structure, field definitions, flight states

License

This project is licensed under the MIT License — see the LICENSE file for details.


About

Real-time rocket telemetry visualization system with live data streaming, flight monitoring, and post-flight analysis.

Topics

Resources

License

Stars

Watchers

Forks

Contributors