Balloon Board

Published:

Nucleus : Balloon Board

Theory of Operation

The Balloon Board is attached to the balloon plug and controls the release of gas from the balloon as well as providing a sensor node collecting data from both inside the balloon and externally. It is connected to the rest of the HAB avionics through a cable harness to the backplane.

Main Processor

The Balloon Board, and other payload cards, has an STM32 microcontroller as its main processor. The STM32F407VET6TR is a single core, 168 MHz 32 bit Cortex M4 processor. A variety of features were desired from a microcontroller for the various payload cards, including Ethernet, USB, CAN, Timers and GPIO. The biggest driver for part selection was primarily the Ethernet and CAN requirements, as well as sharing the same microcontroller across all payload cards.

The balloon board uses the following options from the STM32F407VET6TR

  • 16x GPIO pins
  • 3x ADC inputs
  • 2x PWM Timers
  • USB Controller
  • CAN Controller
  • I2C Interface
  • JTAG Interface

All options are configured through STMicro’s CubeMX software and validated through said software to confirm no conflicts between I/Os and various modules. A Power estimate was also generated as an initial estimate for the power consumption of the microcontroller.

The 16 GPIO lines operate a handful of features including sensor interrupts and data ready flags, power management alerts and disable commands and finally GPIO from the MFC. ADC inputs accept E-Fuse analog current telemetry and the external thermistor analog voltage for conversion to their respective digital values. Two PWM timers are used for the two servo channel outputs available on the Balloon Board. USB was implemented to assist programming and debugging. JTAG was implemented for initial programming and loading a bootloader. CAN is implemented for off card communication, as described in the CAN Bus Implementation section. I2C is implemented to communicate with sensors located on the Balloon Board.

The design implementation of the microcontroller follows a hardware implementation guide provided by STMicro. The microcontroller has two oscillators: a high speed 25 MHz crystal used for the core clock and a low speed 32.768 kHz crystal used for a Real Time Clock. The 25 MHz clock generated is fed into a PLL within the microcontroller that drives the 168 MHz core clock and various other clocks used for other components within the microcontroller. There is one external resistor configurable setting on the microcontroller, the boot mode selection. As the intent is to use the main flash memory as a boot space the BOOT0 pin, pin 94, is tied to ground using a 10k pull down resistor. This also avoids any issues with user code interacting with the bootloader as the boot loader is stored in system memory, which is an available option for a boot location. The external reset, nRST, for the microcontroller is broken out to a button on the PCB and a two pin header for other uses. As this is an active low signal, the signal is pulled high through a 10k pull up resistor.

Finally the microcontroller is supplied by 3.3V for all voltage rails within the microcontroller, this includes the VDD, VBAT and VDDA/VREF rails. VBAT is used as a backup supply for the microcontroller but as there is no plans to use that feature it is tied to the same voltage rail that supplies VDD. All supplies follow guidelines for decoupling capacitors, including VDD which requires a larger 4.7uF bulk capacitor at the connection point to the 3.3V supply rail, which then supplies each of the VDD pins on the IC, i.e. each of the IC’s power pins connect not directly to the 3.3V supply but through a trace that goes to the 4.7uF capacitor first.

Communication and Control Interfaces

CAN Bus Implementation

The TCAN1051 CAN transceiver is responsible for driving the differential signal pair used as the physical layer of the CAN bus network. The TCAN1051 is present on all of the cards used within the HAB payload stack. Input to the TCAN1051 is data from the STM32 microcontroller and output is sent off-board to the rest of the cards. The rest of the network is implemented through a simple string of devices that terminates at the power management board as it is the last possible board slot available on the backplane. The “Silent” pin on the TCAN1051 is connected to the microcontroller, allowing the microcontroller to disable transmissions to the network by disabling the transmitter if necessary. The receiver portion is still active and the Balloon Board will continue to receive messages even if the silent pin is active. The transceiver is powered through two voltage rails: 5V is used as the main power rail, driving internal circuitry and 3.3V is used to drive the communication interface so as to be able to interface with 3.3V logic on the STM32 microcontroller.

The microcontroller has two CAN interfaces, of which only one is only used in this design. These support up to 1 Mbit/s and fully support the CAN 2.0A and B specifications.

USB

The STM32 Microcontroller has a USB 2.0 interface available as one of its communication outputs. The expected use case for the USB output is to directly interface with a computer for programming tasks as well as telemetry during development. The USB input as implemented on the PCB does not provide power to the system, only powering an LED to show good connection. USB functionality available after adding a bootloader to the microcontroller, i.e. after initial programming of the device after assembly.

GPIO Interface

The Balloon Board receives three GPIO lines from the MFC through the backplane, two discrete GPIO and the common GPIO pin used as a reset system for the HAB electronics. While the two discrete GPIO are routed to the microcontroller, they are also tied together using a zero ohm resistor. The intent with this is to act as a way to detect potential cable harness and connection issues to the balloon itself. the MFC will drive one of the GPIO lines to logic high (3.3V) and read back on the other GPIO. If the second GPIO is also at a logic high the Balloon Board should be properly connected to the backplane through its harness. Not detecting a logic high will quickly alert that there is some form of issue to be diagnosed.

Altitude Control

The Balloon Board will command and control the gas regulation and release portion of the altitude control system. Release of gas is done through a servo opening and closing a valve within the balloon plug. The Balloon Board controls the servo through a PWM signal as well as supplying power. Each servo channel is supplied a PWM signal directly from the microcontroller and the power supply to the servo must be enabled to operate the servo. This is implemented using a high side PMOS FET as a switch for each channel. The Balloon Board microcontroller drives these switches through NMOS FETs that drive the gates of the PMOS FETs. The Balloon Board will be commanded by the MFC on when to open and close the valve as dictated by the altitude control algorithm.

Balloon Monitoring

The Balloon Board will be capable of monitoring internal conditions of the balloon through the use of pressure and temperature sensors. The second of two pressure sensors on the Balloon Board is connected to the balloon through a small tube ran into a tap off the balloon plug. Providing an avenue to measure the internal pressure of the balloon from the sensor located on the Balloon Board PCB. Balloon pressure will be recorded through flight and may be used as a way to determine how much gas is released during altitude control operations. The MPRLS0015PA0000SA pressure sensor communicates with the microcontroller through I2C and two GPIO connections. These GPIO connections are an active low reset input from the microcontroller to completely reset the sensor and an active high output which can act as an interrupt to tell the microcontroller that the pressure sensor has finished the conversion of a pressure measurement and is ready to transmit. The sensor is supplied by the 3.3V rail.

There is also a temperature sensor located within the balloon, attached to the balloon plug and connected to the Balloon Board through a cable harness. This sensor is of the same family of thermistors used throughout the HAB avionics PCBs except in a different package, the TMP61 in a leaded LPG package (versus the surface mount versions elsewhere). The output of the thermistor is fed directly into an ADC input on the microcontroller. The temperature data will also be used in conjunction with the pressure monitoring to build a profile of the gas within the balloon during flight. The Thermistor is supplied by the 3.3V rail and is compatible with the 3.3V ADC voltage of the microcontroller, supplied by the same voltage rail.

Flight Control

In the event of an issue requiring flight termination the Balloon Board includes a pyro channel connected to a nichrome wire that will weaken the wall of the balloon neck causing the balloon to burst. The pyro channel is made up of two PMOS FETs acting as a set series switches, an arm and fire switch, connecting the 12V rail to the pyro output. The Balloon Board microcontroller drives these switches through two NMOS FETs that drive the gates of the PMOS FETs. The microcontroller will need to activate both switches in order to fire the pyro channel. The implementation approach requires a two step approach to activating the pyro channel, reducing potential for accidental misfires and also adds a form of protection in the event of a FET failure or other issues with the circuit.

Additionally, as a second method to terminate the flight, the altitude control gas relief valve can be commanded to open up and release all gas, and thus pressure, from the balloon. Resulting in a loss of buoyancy that will end the flight, however there is a slight risk of the balloon interfering with the parachute as the HAB returns to the ground.

Sensors

An ICM-20948 9 axis IMU was implemented to capture movement of the balloon during flight. The sensor is made up of a three axis accelerometer, gyroscope and magnetometer. This will allow for both positional/movement information of the balloon and allow for comparison against the similar data captured within the HAB payload box. The ICM-20948 is supplied from the 1.8V rail and communicates with the MCU through I2C. A GPIO acting as an interrupt is connected to the MCU for data ready and similar commands. The IMU’s I2C address is 0x68h.

A BMP388 is also part of sensor suite on the Balloon Board, this sensor will capture pressure values during flight and can act as an altimeter. Similar to the IMU this gives a second data point along with the payload box, allowing for better models of the HAB flight. the BMP388 is supplied from the 1.8V rail and communicates with the MCU through I2C. A GPIO acting as an interrupt is connected to the MCU for data ready and similar commands. The pressure sensor’s I2C address is 0x76h.

A TMP117 temperature sensor makes up the final sensor of the general set of sensors; the IMU, pressure sensor and this temperature sensor. This is a high accuracy digital temperature sensor, capable of +/- 0.1C measurements over a range of -20C to 50C. The TMP117 is supplied from the 3.3V rail and communicates with the MCU through I2C. An alert pin from the sensor to the microcontroller provides an interrupt for over temperature warnings or data ready signals. The temperature sensor’s I2C address is 0x48h.

As there are multiple sensors on powered through either the 1.8V or 3.3V rail and their respective I/O outputs from the same voltage rails, it was required to implement a level shifter for the I2C network on the Balloon Board. This was accomplished through the use of the PCA9306, a bi-directional level shifter designed for I2C networks. This allows for the 1.8V supplied sensors to communicate with the microcontroller without damaging their communication interfaces or causing errors due to not hitting the correct input high and low voltages to the microcontroller’s I2C interface.

To help gather data regarding flight conditions and to provide telemetry during flight, three NTC thermistors are included on the Balloon Board. These are located near expected “hot points” where the power dissipation will likely be highest. These thermistors are a novel design from TI and are actually silicon-based. They provide a linear resistance across temperature, eliminating the need for a linearization resistor and only requiring a pull up resistor to generate a voltage divider.

These thermistors are fed into a four-channel ADC, the TLA2024 from TI. The ADC is configured to have a full range of 4.096V as the thermistors are powered through 3.3V. In addition, the anticipated sample rate is three thermistors every 25ms; approximately 120Hz sample rate per sensor. The ADC can be configured to either 250hz or 490hz, taking Nyquist into effect to provide clean digitization of the signal, or if an additional sample rate is desired. On each input to the ADC, an RC low pass filter was implemented to reduce noise beyond the sample rate. Currently configured to 500Hz but is easily reconfigured as needed.

There are also three single-channel current monitors as part of the design. the INA219 is used to monitor the 6V, 3.3V, and 1.8V rails. Inflight telemetry will be used to confirm expected power consumption and generate models for future flights. The 3.3V and 1.8V rails use 240 milliohm shunt resistors and the 6V rail uses a 20 milliohm resistor. Input filtering in the form of a series resistor on each sense line with a coupling capacitor between the two lines was implemented, based on the recommended design in the TI datasheet.

Power Management

While the current monitoring portion of the power design is mentioned above in the sensors section, there are three switching regulators and and two E-Fuses implemented on the Balloon Board design. The TPS25942A is implemented both as protection for the card and as an additional way to reset the design through power cycling. For the fusing portion of the design, on the 5V rail, the overload trip current is set to 600mA; configured by a 150K ohm resistor. On the 12V rail the trip current is set to 2A, configured through an 44.2k ohm resistor. A shutdown control method is implemented per the datasheet recommended circuit, with a series string of three resistors to generate the UVLO and OVP values and a MOSFET to control the enable line in case of need to disable the IC. Overvoltage trip point was set to 5.5V, undervoltage lockout set to 4.5V for the 5V rail; 13.2V and 10.8V respectively for the 12V rail. For the E-Fuses, the NMOS FET is controlled by a GPIO on the microcontroller, and can be triggered to immediately disable power to the card. For the 5V E-Fuse, the MFC can also command the FET as part of the system reset through the common GPIO. The two inputs are part of a diode OR to avoid any crosstalk or backfeed from the two signals. PGOOD is used as a sink for an LED for status on both E-Fuses.

A pair of TI TPS6215x buck converters were used to supply the 3.3V and 1.8V rails required on the Balloon Board and are supplied by the 5V rail. A single TPS565201 buck converter was used to supply the 6V rail and is supplied from the 12V rail. Designs follow the recommended implementation of the datasheet and TI’s WEBENCH Power Designer software. A secondary check of the math was performed to verify the available tools. The TPS62151 is designed for a fixed output of 3.3V and TPS62152 for an output of 1.8V. Each regulator is expected to be at least 90% efficient. The TPS6215x are capable of 1A output and TPS565201 capable of 5A output. However, the expected output for the 3.3V and 1.8V rails is significantly lower, in the 100mA or less range. The 6V rail is expected to see between one and two amps max in pulse applications.

Electrical Implementation

Major components

Microcontroller - STM32F407VET6TR
CAN Transceiver - TCAN1051
Pressure Sensor - BMP388
External Pressure Sensor - MPRLS0015PA0000SA
Thermistors - TMP61
9 DoF IMU - ICM-20948
Temperature Sensor - TMP117A
Two/Four Channel ADC - TLA202x
Voltage/current monitor - INA219
E-Fuse - TPS25942A
5V Switching Regulators - TPS62151
12V Switching Regulator - TPS565201

Power Supplies

A list of devices per rail is provided below, as well as expected current requirements based on a power analysis of the hardware stack. The detailed analysis is available through the following google sheets link:
Hardware Stack Power Analyses

12V Power Rail

  • 6V Switching Regulator
  • E-Fuse
  • Pyro Channel

1272mA current draw

6V Power Rail

  • Servo Channels

510mA current draw

5V Power Rail

  • 3.3V Switching Regulator
  • 1.8V Switching Regulator
  • E-Fuse

56.7mA current draw

3.3V Power Rail

  • CAN Transceiver
  • Microcontroller
  • Temperature Sensor
  • External Pressure Sensor
  • Level Shifter
  • ADC
  • Thermistors
  • Current Sensor

66.8mA current draw

1.8V Power Rail

  • 9 DoF IMU
  • Pressure Sensor
  • Level Shifter
  • Current Sensor

4.5mA current draw

Power Considerations

Per the power analysis, it is expected that the Balloon Board will draw approximately 918 mW of power during nominal operation. This analysis also includes a 1A current flowing through the pyro channel and 250mA through each of the servo channels. These are initial estimates and will be updated during further documentation review and board testing

Design Implementation

The MFC is implemented as a four-layer PCB, following the stack-up provided from Macrofab as a starting point (Macrofab stackup). Copper weight is 1 oz, also following dimensions per the Macrofab stackup. Board dimensions are 70mm x 55mm, a requirement driven by the mechanical design of the balloon plug.

Connectors

There is one 10 pin Molex Milligrid right angle connector providing all interfaces to and from the Balloon Board to the Main Flight Computer through the Backplane.

Backplane

Molex Part #: 0430451000

109876
54321

Reference view for pinout of connector is from top edge of board looking towards connector.

Pin Number

Pin Function

Pin NumberPin Function
112V Power Rail
2Ground
3Ground
4GPIO-1 (connected to MFC - GPIO-19)
5CAN -
65V Power Rail
7Ground
8GPIO - Common
9GPIO-2 (connected to MFC - GPIO-20)
10CAN +