Custom Altimeter - MIDAS

Abstract

Spaceshot, a technical project from the Illinois Space Society, is aiming to be the first team to launch a fully student designed and built two-stage rocket to an altitude of 100km, reaching the edge of space and passing the Kármán line. A crucial aspect of the mission is having a flight computer capable of performing the necessary state estimation to verify altitude, initiate inflight events, and provide tracking for safe recovery of the vehicle. The goal of this project is to design and build MIDAS, the next generation of our flight computers. 

What makes MIDAS stand above our previous projects is its ability to initiate inflight events such as stage separation, motor ignition, and parachute deployment. Its compact design allows it to fit into 3 inch diameter vehicles while still maintaining the tracking and data logging functionality of our previous flight computers.

MIDAS will serve as the core component of any future avionics bay by including expandable I/O to allow for distributed zonal control and expansions such as higher powered radios, custom software based GPS tracking, 360° camera control boards, and a data acquisition system for enhanced ground testing. While not all of these expansion modules are outlined in the budget, prototype designs for an onboard camera control system are included.

Given the increased responsibility of initiating inflight events, MIDAS will undergo the most stringent software and hardware verification and validation testing we've performed as a team. We will be incorporating our Hardware-In-The-Loop and Software-In-The-Loop Simulators, a reusable pyrotechnic test stand for stress testing inflight event triggers, and a variety of vacuum chamber, vibration, and weather testing. The design also features redundancy via multi-stage firing mechanisms and manual arming switches. All core components are also automotive rated where possible for improved reliability. Integrated WiFi/BLE also allows for more streamlined troubleshooting via a phone web application. In addition to this safety-oriented design, MIDAS will fly alongside two commercial off the shelf rocketry altimeters as redundant backups this year, but once fully qualified may fly alone or with redundant MIDAS computers. The flight test plan includes multiple subscale launches and then a capstone launch in June 2024 at the FAR 51025 competition in California.

Outlook

MIDAS and its accompanying auxiliary equipment will become the backbone of our future avionics systems and serve as the first iteration of our 100km capable flight computers. Further iteration of MIDAS will continue throughout the next few years as the team further refines the design and begins to push higher altitudes. This year alone over 100 students will work directly or indirectly with MIDAS while working on our team's overall competition vehicle.

While MIDAS is intended as a rocketry flight computer, it has many features that are desirable in designing autonomous drones, rovers, and other robotics. Its modular design also allows it to serve as a potential flight computer not just for our Spaceshot vehicles but also our hybrid and eventually liquid rocketry teams. Through auxiliary boards MIDAS has the potential to also become an engine testing platform for these other ISS technical projects.

Looking beyond the scope of ISS, MIDAS has the potential to be one of the incredibly few advanced open source flight computers for the amateur rocketry community, but also for the greater drone, FPV, and RC communities.

Sneak Peek of MIDAS in the debugging stage

General Updates:

  • Successfully conducted first e-match ignition test

  • Moving to version MK1.1 revA to address minor design issues and make MIDAS flight ready

MIDAS Software:

Overall Design + Dataflow:

  • Using FreeRTOS as our real-time operating system, we use cooperative multithreading with each thread at the same priority level. Data is shared through a central data struct, with a pointer to this struct passed to each thread. Each sensor, external output, internal processing section, and data sink has its own thread. We also have an abstraction layer built around FreeRTOS so we can quickly migrate to a different RTOS/architecture.

  • We want to gather data from a variety of sensors (Altitude, acceleration, orientation, GPS, continuity, voltage, etc.) and store this data in onboard memory. We want to match the hardware sampling rate of each particular sensor so we gather as much data as possible.


Data Storage + Transmission:

  • Data is logged to an onboard SD card as well as an eMMC chip. We have developed our own file format as well as a parser to easily store data and convert it to a CSV/text file. 

  • We also utilize a LoRa radio module to send RF packets from the rocket to our ground station receiver, which decodes, displays, and graphs each packet in real-time.

In-flight Event Control:

  • The finite state machine is in charge of determining the current state of the rocket, whether that be idle on the pad, accelerating upwards, at its peak, and much more.It archives this using the current state as well as averaged sensor data (altitude, acceleration, and orientation) and backup timers.

  • If the FSM’s current state is in one of the “active” states, such as stage separation, sustainer ignition, drogue deploy, or main deploy, the associated pyro channel will fire, which will ignite an e-match to perform the desired function. There are arming and safety protections built in, as well as an orientation check to make sure the sustainer motor is not ignited off-axis.

Camera Control:

  • The camera control system also utilizes the FSM to determine when to toggle the cameras. In the idle state, messages are sent through CAN to the cameras to turn them on, and in the landed state, messages are sent to turn the cameras off.

  • The cameras will also send heartbeat messages back to MIDAS, which allows MIDAS to correct any errors as they arise.

  • The utilization of CAN allows us to further expand the abilities of MIDAS as we add more boards in the avionics stack.

Testing Infrastructure:

  • Kamaji is our hardware-in-the-loop testing system that allows us to replay flight data or simulated data on the physical hardware. We have a web and server application with github integration to run automated test and report back the run status. This is great for testing things such as the finite state machine, pyro channels, and cameras.

  • SILSIM is our software-in-the-loop testing system where we utitlize a physics engine to generate a new simulated flight profile, and we have real-time thread emulation to test this flight profile on our flight software.