Complete rocket telemetry system with LoRa transmission, ground station, and dual-redundant data logging for rocket flight data acquisition.
This system consists of three main components:
- Transmitter (TX): Arduino/Feather M4 on the rocket. Collects sensor data, logs to the onboard SD card, and transmits telemetry via LoRa.
- Receiver (RX): Arduino receiver at the ground station. Receives LoRa packets and forwards them via USB to the host computer.
- Ground Station Software (GDS): Python software for real-time visualization, dashboard display, and data recording.
- Real-time Dashboard: Live visualization of altitude, orientation, and signal strength.
- Dual-Redundant Logging: Saves data to both the Ground Station (CSV) and Onboard SD Card simultaneously.
- GPS Tracking: Live latitude/longitude streaming for recovery.
- Flight Metrics: Automatic tracking of Apogee and Max G-Force.
- Battery Monitoring: Real-time voltage monitoring for the onboard Lithium Ion battery.
Transmitter:
- Open
firmware/slugsight_tx/slugsight_tx.inoin Arduino IDE. - Select board: Adafruit Feather M4 Express.
- Upload to the rocket Feather M4.
Receiver:
- Open
firmware/slugsight_rx/slugsight_rx.inoin Arduino IDE. - Select board: Arduino Uno (or your receiver board).
- Upload to the receiver Arduino.
It is recommended to use a virtual environment:
cd gds
# Create virtual environment
python -m venv venv
# Activate (macOS/Linux)
source venv/bin/activate
# Activate (Windows PowerShell)
.\venv\Scripts\Activate.ps1
# Install dependencies
pip install -r requirements.txtpython slugsight_gds.pyOnce running, open http://127.0.0.1:8080 in your web browser.
Before heading to the launch site, run the integration test suite. This verifies that the parser handles data correctly and that CSV logging is working.
python test_integration.pyExpected Output: OK (All tests passed).
The project is organized as follows:
slugsight_telemetry/
├── README.md # Main system documentation
├── FLIGHT_GUIDE.md # Flight day checklist and procedures
├── firmware/ # Arduino Source Code
│ ├── slugsight_tx/ # Rocket Transmitter Code
│ │ └── slugsight_tx.ino
│ └── slugsight_rx/ # Ground Receiver Code
│ └── slugsight_rx.ino
└── gds/ # Ground Station Software
├── requirements.txt # Python dependencies
├── slugsight_gds.py # Main Ground Station Application
└── flight_data/ # Telemetry Logs (Auto-generated)
└── slugsight_YYYYMMDD_...csv
IMPORTANT SAFETY INFORMATION:
- Radio Regulations: Verify the 915 MHz ISM band is legal for use in your specific region.
- Flight Safety: Adhere to all NAR/TRA safety codes and local regulations.
- Range Testing: Always perform a ground range test of the LoRa system before flight.
- Backup Systems: Avionics should be considered a secondary payload. Always use backup recovery systems (e.g., motor ejection or redundant altimeters).
- Battery Safety: Monitor Lithium Ion battery voltage closely. Do not fly if voltage is below 3.7V. Ensure batteries are secured and protected from impact.
This project is dual-licensed:
- Firmware (
firmware/): The Arduino transmitter and receiver code is licensed under the GPLv3 (GNU General Public License v3.0) to comply with the RadioHead library dependency. - Ground Station (
gds/): The Python ground station software and documentation are licensed under the MIT License.
Developed for the UCSC Rocket Team (SlugSight Avionics). For issues, please utilize the GitHub Issues tracker.