Project Caelus Avionics System

Project Caelus is a non-profit rocketry organization I helped start in high school. The team aims to be the first high school rocketry team to develop a liquid-fueled rocket engine and launch it to the edge of space (100km above the Earth’s surface). Over my three-year tenure with the team, I helped develop the engine test stand, a testing platform that allowed us to validate our engine design, flight software, and electrical systems.

In particular, as the head of the Avionics sub-team, I led a team of four to develop an avionics system that could support the processing needs of our flight software; make accurate pressure, temperature, and fuel measurements; and automatically toggle various solenoid valves to control the fuel/oxidizer outputs to the engine. The system also needed to be able to allow human operators to manually override the flight software and abort from a safe distance.

Design Overview

At the heart of the system is a two-layer copper PCB that hosts a Teensy 3.6 flight computer running C++ flight software. The system can simultaneously:
  • Take measurements from:
    • 12 Pressure Transducers
    • 5 Thermocouples (temperature sensors)
    • 3 Load Cells (force/weight sensors)
  • Actuate up to 12 solenoid valves
  • Transmit all sensor measurements / valve states / additional telemetry to ground station
  • Provide hardware override for ground station operators in need of abort
With the onboard batteries, the system could be powered continuously for up to three hours, which was necessary for long-duration tests. All parts were conformal coated, protecting them from dust, moisture, and extreme temperatures.

Design Process

After getting design requirements and constraints from the Propulsion team, the Avionics team got to work designing the system in KiCAD, a PCB-designer software.

Pressure Transducers (PTs)

Each PT provides three wires: Red (5V+), Black (GND), and Green (Signal). The sensor outputs a 5V signal that needs to be attenuated to a 3.3V signal for our Teensy 3.6 microcontroller. To achieve this, every signal input is routed through a voltage divider that cuts the signal by a third. Due to high power losses across the resistors, future iterations will utilize Inverting Op-Amps with a fractional gain to achieve the attenuated signal.

Thermocouples

Each K-type, ungrounded thermocouple requires an amplifier to make the millivolt output readable by the Teensy 3.6 flight computer. For this, we chose the Adafruit MAX31856 amplifier due to its compatibility, reliability, and affordability. The MAX31856 communicates with the FC via the SPI serial protocol.

Load Cells

Load cells are essentially electronic strain gauges, so they can be used to measure the weight of our tanks and the thrust generated by our engine. Similar to the thermocouples, each load cell outputs a millivolt signal which needs to be amplified for the FC. For this, we use the SparkFun HX711 amplifier which communicates with the FC via serial communication.

Data Transmission

All sensor measurements, valve states, and flight software variables are transmitted to the ground station via an Xbee radio. Data packets are sent 10 times a second, allowing for ground station operators to get a comprehensive view of the state of the entire system at any moment.

Solenoid Actuation

Solenoid valves are relatively simple devices – internally, they contain a coil of wire attached to a plunger that opens and closes the valve when a current is applied. The Teensy 3.6 cannot supply enough current to actuate these valves; thus, the FC controlled Arduino Relays, which supplied power from our 6S Lipos to open/close the valves. In future iteratios, the Arduino Relays will be replaced by power transistors which consume less power during operation.

However, to allow for groundstation override capabilities via the Launchbox (explained later), each relay needs to be connected to both the FC and the groundstation. To achieve this, every relay signal line was attached to a DG419 IC (essentially an electronic switch) that allows the relay to be controlled by both input sources. When the Launchbox is enabled, the enable pin for each DG419 is toggled HIGH, thereby connecting each relay to the groundstation and allowing for manual override.



Power Distribution Board

As mentioned in the Solenoid Actuation section, every solenoid valve needs to be powered via an external battery source (in our case, a 6S lipo). The Power Distribution Board (PDB) provides multiple 24V and 12V terminals to power the various solenoids on the test stand. The board is powered via a 6S Lipo (24V battery) that runs through an external step-down converter to power the 12V terminals. Future iterations of the board will include built-in XT-60 connectors instead of solder pads to allow for better wiring organization and easier connections.