Repository containing all firmware and drivers for the Flight Avionics System (FAS). The system comprises of 4 individual boards:
- AVI_FAS_FMC: Flight Management Computer (FMS) - STM32H755ZI
- Central computer responsible for processing data/telemetry, sending commands to and from all peripheral boards.
- AVI_FAS_PMS: Power Management System - STM32L4R5ZI
- Supplies power to entire FAS, supplying various voltage levels for diffrent systems.
- AVI_FAS_SPB: Sensor peripheral Board: STM32L4R5ZI
- Functions as data aquisition device for processing analog sensor data to be sent to FMC.
- AVI_FAS_APB: Actuator peripheral Board: STM32L4R5ZI
- Board responsible with interfacing with onboard actuators (Servos, solenoids, relays, etc.) upon command of FMC For more information FAS Hardware see here.
Bellow are the general steps to Contributing to the FAS project
- Fork the Repository: Start by forking our repository to your GitHub account. This creates a copy of the project for you to work on.
- Clone the Repository: Clone your forked repository to your local machine using
git clone
. - Create a Branch: Before making any changes, create a new branch for your feature or bug fix. This keeps the main branch clean and allows for easier review. Use a descriptive name for your branch.
- Make Changes: Now you're ready to make your changes! Write your code, add new features, or fix bugs. Ensure that your changes adhere to our coding standards and guidelines.
- Commit Changes: Once you're satisfied with your changes, commit them to your branch using
git commit
. Be sure to write clear and concise commit messages. - Push Changes: Push your changes to your forked repository on GitHub using
git push
. - Submit a Pull Request: When you're ready for your changes to be reviewed and merged into the main project, submit a pull request. Provide a detailed description of the changes you've made and any relevant information for the reviewers.
- Code Review: Your pull request will undergo a code review process. Be responsive to feedback and make any necessary changes.
- Merge: Once your pull request has been approved and all discussions are resolved, it will be merged into the main project.
The Development of the FAS firmware relies on the following development tools:
- STM32CubeMX
- Graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code.
Tip
It is recommended that contriubtors use Visual Studio Code with the following extensions to aide development process:
- Serial Monitor
- stm32-for-vscode
- Be sure to install the dependancies specified by the extension
- RTOS Views
- Embedded Tools
- Cortex-Debug
├── AVI_FAS_SBP
├── AVI_FAS_FMC
│ ├── Core
| | ├── build
│ │ ├── CM4
│ │ ├── CM7
│ │ │ └── Core
│ │ │ ├── Inc
│ │ │ │ ├── FreeRTOSConfig.h...
│ │ │ │ \\Header files go here\\
│ │ │ └── Src
│ │ │ ├── freertos.c
│ │ │ ├── main.c
│ │ │ \\source files go here\\
│ │ ├── Common
│ │ ├── Drivers
│ │ ├── Middleware
│ │ ├── Makefile
│ │ ├── .mxproject
│ │ └── AVI_FAC_FMC.ioc
│ └── ...
└── README.md
Note
It is recommended to always open the indidual board directory in VSCode rather than the root FlightAvionicsSystem
to ensure extensions function correctly and prevent issues during build.
As of March 2024, STM32-for-VSCode does not support dual core MCUs, thus, the project must be built manually. In order to build the project begin by opening a terminal at the following directory:
> cd C:/.../AVI_FAS_FMC/Makfile
Run the makefile using the following command:
> make
Build files (.elf, binaries, etc.) should now be avilable for each core under
> cd C:/.../AVI_FAS_FMC/Makefile/CM4/build
For the Cortex-M4 and
> cd C:/.../AVI_FAS_FMC/Makefile/CM7/build
For the Cortex-M7
The project can be built using the STM32-for-VSCode Extension by clicking build.
Alternatively, the project can be built manually using make
.
In order to build the project begin by opening a terminal at the following directory:
> cd C:/.../AVI_FAS_SPB
Run the makefile using the following command:
> make
Build files (.elf, binaries, etc.) should now be avilable under
> cd C:/.../AVI_FAS_FMC/build
To be populated
Simply selected the flash STM32 option with the board plugged in
- STM32 MCU developer resources
- CMSIS-RTOS V2
- FreeRTOS Developer Docs and API Reference
- Included for refrence. Not particularly useful as all FreeRTOS interfaceing is done via CMSIS API (See above)
- FAS Documentation Repository (WIP)
- STM32H745/755 and STM32H747/757 advanced Arm®-based 32-bit MCUs Reference Manual
- Relevant for the FMC MCU
- Description of STM32H7 HAL and low-layer drivers
- STM32F7 Series and STM32H7 Series Cortex®-M7 processor programming manual
- Relevant for the FMC MCU's Cortex®-M7 Core
- STM32L4+ Series advanced Arm®-based 32-bit MCUs Refrence Manual
- Relevant for the SPB/APB MCU
- Description of STM32L4/L4+ HAL and low-layer drivers