This project is a graphical simulator for a model satellite mission, designed for the Teknofest 2025 competition. It simulates the flight, separation, and telemetry of a multi-stage payload, with a focus on real-time visualization, telemetry broadcasting, and system failure scenarios.
This app is developed by the Research and Development team of Bamantara EEPISAT.
- 3-Column GUI: Built with Tkinter, the interface includes a simulation canvas, control panel, and telemetry/plotting area.
- Physics Simulation: Models ascent, descent, separation, wind drift, and parachute failures.
- Telemetry: Real-time telemetry is displayed in the GUI and broadcast via UDP/WebSocket for integration with ground station software.
- Alarms & Failures: Simulate and visualize various system failures (e.g., actuator, pyro, parachute).
- 3D Plots: Uses Matplotlib for 3D trajectory and attitude visualization.
- Settings: Adjustable simulation parameters (rates, altitudes, wind, etc.) via a settings window.
- IoT Simulation: Simulates two IoT sensors with random data.
- LNLN Filter Command: Simulate camera filter changes using a 4-character code.
- Interactive Attitude Control: Adjust pitch, yaw, and roll interactively in the GUI.
- Telemetry Logging: View and export recent telemetry packets.
Add your screenshots here for better visualization!
- Python 3.12.6
- Tkinter (usually included with Python)
- uv (for fast dependency installation)
Install dependencies with:
uv pip install -r requirements.txtRun the simulator:
python main.py- Launch: Start the simulation.
- Calibrate: Reset the simulation.
- Force Sep: Force separation at any time.
- Settings: Adjust simulation parameters.
- Apply Filter: Change camera filter using a code (e.g.,
4R5G). - Start/Stop Telemetry Server: Toggle UDP/WebSocket telemetry broadcasting.
- Payload Telemetry Log: Shows recent telemetry packets.
- Container/IoT Telemetry: Shows container and IoT sensor data.
- 3D Trajectory: Visualizes the flight path.
- Attitude Control: Visualizes and interactively controls pitch, yaw, and roll.
- Toggle system flags and simulate failures from the control panel.
- Alarm indicators show the current system status.
- UDP: Simulator sends telemetry to
127.0.0.1:8766. - WebSocket: Broadcasts telemetry to clients on
ws://localhost:8765.
- Change team name, base coordinates, rates, and other parameters in the settings window.
main.py: Main simulator code and GUI.README.md: This documentation.requirements.txt: Python dependencies.screenshots/: Folder for screenshots (add your own for documentation).
MIT License (add your own license if needed).


