Skip to content

A more bare bones edition of my fully fledged Ground Control UI for model rockets.

License

Notifications You must be signed in to change notification settings

abhignay/GroundControlUI-v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Ground Control UI v2

About

This is a Ground Control UI for model rockets. It's a more bare-bones version of my older Ground Control UI that can be found here.

This UI displays and updates basic telemetry data sent from your rocket in real time.

The front end for the UI is written in Python with the PyQt5 library. Unlike the original Ground Control UI, this version omits the rapidly updating graphs and cuts down on the amount of data displayed.

You will need to install the following Python libraries:-

  1. PyQt5
  2. Python DateTime
  3. PySerial

Untitled

Code Explanation

The GUI class has all the functions that create the main GUI window, create the boxes that display data, and update it with telemetry data. The def init(): function creates and starts QTimer and runs the window setup function. The window_setup(): function creates the GUI window and runs all the other functions. Your telemetry packet should follow the order mentioned on line 290.

Sending Commands

The Command Vehicle section of the GCS can be set up to do whatever you want. Fire parachutes, change your flight computer's state, offset sensors, etc. For my rockets, I need my GCS to send commands to power on or off the cameras, fire pyros, and change the vehicle's state, so that is what it is set up to do.

Basically how it works is that when the button is clicked a hex value is printed to serial, the ground control hardware will read the received bytes, and after that, you can use an if-else statement to send different bytes to your vehicle based on the bytes received.

Here's an example of how I've done it:-

if (Serial.available()) {
    char data = Serial.read();

    // turn cameras ON
    if (data == 0xAB){
      cameraState = 1; // or any another value
      Transciever.write(cameraState); // this is dependent on how your telemetry is set up
    }
}

A couple of other things

I've only tested this GUI on Windows 11, so let me know if you have any problems using it with other platforms (Mac and Linux)

If you're using the UI on a laptop and see that all the text is overlapping try changing your display scale to 100% instead of 150%.

Feel free to open up an issue if you have any questions, comments, or feedback.

License

Code in this repository is licensed under the terms of the MIT license.

About

A more bare bones edition of my fully fledged Ground Control UI for model rockets.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages