Overview
Dates: November 2019 to March 2020
This was a board I constructed for Portland State Aerospace Society. This board controls the electro-mechanical recovery system of the rocket LV3.1. It controls a DC motor, a linear actuator, and uses a microcontroller to do so. It also detects when the rocket’s nose cone has been separated so that a parachute release can be timed properly. The board interfaced with the rocket’s avionics computer in order to time drogue (nosecone separation), and parachute release properly.
My Role
I designed the board’s layout with help from the experienced electrical engineers who were also industry advisers at PSAS, and worked with the recovery team to establish that the requirements of the board were met. I then assembled the first revision of the board for testing, and wrote the firmware in C++. Then after learning from the mistakes of the first revision, I redesigned the board to make revision 2.0. Due to the COVID-19 Pandemic, I was unable to stuff the second revision and test it out. This task has been carried out by students at PSAS.
Process
Electrical Design
I designed the schematic under the tutelage of Andrew Greenberg, the director of PSAS. This was my first board that involved a microcontroller, so I needed to become familiar with how they work at the register level. The MCU we used was an STM32F0. Once I knew the board’s electrical characteristics had been solidified, I worked on the firmware that would run on this MCU. I wrote the firmware in C++.
recover_board_schematic_rev2.0Firmware Design
The firmware needed to control a linear actuator and a DC motor, as well as read photodiode sensor readings and use that information to make decisions. I used a state machine software design pattern in order to accomplish these tasks. The code can be found on the PSAS GitHub.
recovery_board_firmwareOutcome
The rocket nosecone will undergo a drop test in order to test the board’s fidelity. It will be dropped off of a high bridge in Eastern Oregon.