Software

Overview

The Software IPT is a part of the Electronics Department and is in charge of developing both the on-board software and the ground station system which collects and displays the telemetry throughout the mission. One of our main activities is programming from the ground-up the firmware for both the rocket’s avionics and computer system which controls the air brakes deployment, nose cone ejection, parachute deployment and flight data logging. The ground station software is meanwhile developed to be simply able to interact with the rocket itself. We also prepare the code for all sorts of tests: whether that be stress measurement, aerodynamic evaluation in the wind tunnel, or static fire tests for our hybrid motor.

On-Board Software

Our team develops all of the avionics’ software and uses a custom real-time operating system called Miosix, developed at Politecnico di Milano. We prepare all components drivers, down from the more minute details all the way to the high level logic controlling all flight phases, including the implementation of the algorithms designed by the Control Systems IPT.
After the rocket’s launch, the successful completion of the mission is in the hands of the software by itself, which is in charge of:

  • Detecting the apogee
  • Ejecting the nose cone and deploying the main parachute
  • Logging the data from all on-board sensors
  • Estimating the rocket’s attitude and driving the air brakes
  • Receiving commands and sending all gathered data to the Ground Station

Testing

During the development phase of our projects, all the subsystems and singular components need to be tested to ensure their correct operation. For example, when the flight computers are first produced , we run a suite of benchmarks to check that every peripheral is working properly. Furthermore, all our members get a chance at hand-on experience while preparing all our tests in the field, which include for instance wind tunnel tests to verify the air brakes and parachutes drag coefficients, or the telemetry apparatus to ensure a correct functioning of the radio link.

Ground Station

The Ground Station’s main purpose is to enable our team members to monitor the state of the rocket and all its subsystems, as during all phases of the mission it decodes the received data and displays it, allowing us to have real-time feedback from the rocket. Analyzing such data is also useful for post-flight analysis, in case something goes wrong and the data logged by the on-board avionics cannot be recovered. Furthermore, the Ground Station allows us to send remote commands back to the rocket to perform the required integrity checks before launch.

Requirements

Base:

・Work autonomy and resourcefulness
・Willingness to work even in presence in
  Milan
・Familiar with the C language (pointers,
  memory management, bitwise operations)
・Knowledge of object-aimed programming
  concepts
・Knowledge of the fundamentals of
  computer architectures
・Familiarity with the development of
  graphical interfaces / web apps

Advanced:

・Knowledge of the C++ language
・Basic knowledge of an embedded system
・Previous experience with Arduino,
  Raspberry Pi, ESP32, STM32 or others
・Principles of software engineering and
  design patterns
・Familiarity of the Qt framework
・Knowledge of operating system and
  concurrency concepts
・Basic use of Git