overview
As an Avionics Software Member on the Student Organization for Aerospace Research, I am responsible for taking on tasks whether it be related to embedded systems with STM32 microcontrollers and FreeRTOS, front-end web development in the context of our Rocket Control Unit (RCU) GUI with Figma and Svelte, or back-end development for the RCU server with Python and Pocketbase. Below I will go into more detail about the projects I have worked on.
refactoring
I came onto the team with years of experience with web development in javascript. Upon examining the codebase for our Rocket Control Unit (RCU) GUI, I noticed that improvements regarding code quality and modularity could be made. I seperated pieces of code that could be reused and abstracted into dedicated hooks in order to encapsulate state and logic. The major area I refactored was how theme transitions were handled. Instead of having a duplicate icon and background for each theme, I created a single icon and GUI diagram background that would change based on the theme using CSS variables.
However, with the introduction of binding CSS variables to specific parts of the various SVG elements in the background, it made it harder to make changes to the background. To solve this, I wrote an SVG pre-processor in Rust specific to our use case that would take in a base SVG file, a base CSS file, and a config file and then output a Svelte component that could replace the unmodified Svelte component. This automated the tedious find and replace process and made it easier to make changes to the background.
integrating_qspi
Currently, my main task is to write an abstraction layer for Quad-SPI in anticipation of new microcontrollers that will be used in the future. Additionally, the goal is to allow easier integration of new QSPI peripherals and to make the codebase more modular. However, since the team is currently waiting on the new microcontrollers to arrive, progress has been limited as I am solely reliant on the datasheets and the STM32 HAL documentation.
nafe11388_driver
My secondary task is to write a driver for an Analog Front-End (AFE) specifically, the NAFE11388. The primary purpose of it will be to use it as an Analog to Digital converter. While we do not have the hardware for this component currently either, I feel more confident in writing the driver for it as I have some experience with SPI which this device uses.
gui_images
Below are some images of the Rocket Control Unit (RCU) GUI. The data being received from the server is simulated and does not reflect real data.



The above image is a screenshot of the loadcell calibration screen. The user can pause the calibration process at any time and resume it when they are ready. This is a user experience feature that I implemented.