BeeRocketry 2024 Rocket Ground Station is a ground station written in Python designed to work with Python 3.10+. This code is specifically written for the Teknofest Rocket Competition 2024. Note that Python 3.12 has not been tested and is probably not supported by most libraries used in this project.
- Asynchronous Serial Communication: Enables the receiving and sending of data over serial ports asynchronously with 0% lag.
- Real-Time Data Visualization: Provides immediate feedback on various rocket parameters through live Matplotlib graphs.
- Formatted Communication: Adheres to the communication standards outlined in the Teknofest 2024 rulebook for data exchange with the judging computer.
- Enhanced Stability: Implements measures to increase the reliability of serial communications, minimizing data loss and transmission errors.
- Start, Stop, Reset Buttons: Provides start, stop, and reset operations implemented as buttons.
# Check the python version by running the following
# Python 3.10.x is suggested
python
exit()
# Clone and navigate to the repository
git clone https://github.com/btnrv/BeeRocketry_RocketGroundStation.git
cd BeeRocketry_RocketGroundStation
# Run the installation script to install necessary libraries from requirements.txt
install.bat
The ground station application requires customization before use.
First, customize the .env
file according to your desired data update frequency and given TEAM_ID
for the competition.
Next, you have to set up the Serial widget according to your serial communication structure. We used an array of values embedded into a string such as 0,0,0,0,0,0,0,0,... and later decoded it to extract values. In short, you must modify the SerialWidget code to suit your specific packet format, or data structure.
Once you have confirmed that your packet format is correct:
- Adjust your
Windows scaling settings to 100%
. See Known Limitations for more details. - Plug in your USB-TTL adapter and ground station COM device to receive data.
- Run the
main.py
file to start the application. - In the application, select the appropriate COM devices from the dropdown menus as well as the respective baudrates.
- Press the
Start
button to begin communication and graph visualization.
The application may not display correctly if Windows scaling is not set to 100%. Please adjust your display settings accordingly. PySide6 does not allow forcing the scaling to the window in the latest versions.
Stop the serial communication by pressing Stop
before closing the window, otherwise the serial communication keeps working. This is because I couldn't find a way to close it's thread properly alongside the window.
This project’s code is intended as a source of inspiration and should not be used by directly copying and pasting. If you decide to use any part of the code, please consider letting me know by emailing tanriverdiburak754@gmail.com. I would love to hear how my code have helped with your projects.
This project is licensed under the MIT License. For more details, please refer to the LICENSE file.