This project represents the ground station for the Aurora Rocketry Team. It is designed to visualize real-time telemetry data from the rocket during flight and simulations.
The application is built with Svelte (Frontend) and uses a Python bridge to handle data ingestion from various sources (Serial, CSV replay, or Random generation) and broadcast it via WebSockets.
- Real-time Dashboard: Visualize critical flight data including:
- Acceleration, Velocity, and Altitude plots.
- Sensor data (IMU, Barometers, Accelerometer).
- Current flight stage status.
- Command Center: Interface for sending commands to the rocket.
- Flexible Data Sources:
- Serial: Connect directly to the ground station hardware via USB.
- File Replay: Replay flight data from CSV files for analysis and testing.
- Simulation: Generate random synthetic data for UI testing.
- Dual Connection Mode: Supports both WebSocket connection (via Python bridge) and direct Web Serial connection.
aurora-ground-station/
├── public/ # Static assets
├── src/
│ ├── lib/ # Svelte components
│ │ ├── CommandCenter.svelte
│ │ ├── Counter.svelte
│ │ ├── Dashboard.svelte
│ │ ├── Header.svelte
│ │ └── utils.js
│ ├── assets/ # Project assets
│ ├── App.svelte # Main application component
│ ├── bridge.py # Python WebSocket telemetry bridge
│ ├── main.js # Entry point
│ └── simulation_data.csv # Sample data for simulation
├── index.html # HTML entry point
├── package.json # Node.js dependencies and scripts
├── svelte.config.js # Svelte configuration
└── vite.config.js # Vite configuration
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm (usually comes with Node.js)
- Python 3.8+
-
Clone the repository:
git clone https://github.com/AuroraRocketryTeam/aurora-ground-station.git cd aurora-ground-station -
Install Frontend Dependencies:
npm install
-
Install Python Dependencies: You will need
websockets,pyserial, andpandas.pip install websockets pyserial pandas
To run the full ground station, you typically need to run both the Frontend (UI) and the Backend Bridge (Data Source).
Start the Vite development server:
npm run devOpen your browser and navigate to the URL shown (usually http://localhost:5173).
The bridge.py script acts as a server that feeds data to the frontend. It supports multiple modes:
Mode A: File Replay (Default) Replays data from a CSV file. Useful for debriefing or testing with real flight data.
python src/bridge.py --source FILE --file src/simulation_data.csvMode B: Random Simulation Generates random data to test the UI responsiveness.
python src/bridge.py --source RANDOMMode C: Serial Connection (Real Hardware) Reads data from a connected USB device (e.g., LoRa receiver).
python src/bridge.py --source SERIAL --port COM3Note: Replace COM3 with your actual serial port (e.g., /dev/ttyUSB0 on Linux/Mac).
In the Frontend UI:
- Select Connection Type:
- WebSocket: Connects to the
bridge.pyscript (defaultws://localhost:8765). - Serial: Connects directly to a serial device using the Web Serial API (Chrome/Edge only).
- WebSocket: Connects to the
- Click Connect.