Skip to content

File structure overview

UW Orbital’s Firmware Repository is quite large. As a result the previous leads have constantly refactored it to where it is now. So let’s go through it! This write-up will only provide a brief overview. Consult other places in the documentation for more detailed explanations.

The following describes the general file structure of the repository

  • Directory.github Github files
  • Directorycmake Custom CMake files
  • Directorygs Ground station files
    • Directorybackend Ground station backend
    • Directoryfrontend Ground station frontends for MCC and ARO
  • Directoryhil Hardware-in-loop folder
  • Directoryinterfaces Any code used to interface from satellite to ground station
  • Directorylibs Any of the C libraries used throughout the codebase
    • Directorycserialport C serial port lib
    • Directorygnc_code GNC code
    • Directorylibcorrect Forward Error Correction + Reed Solomon lib
    • Directoryposix_freertos FreeRTOS lib
    • Directorytiny_aes AES128 encryption lib
  • Directoryobc
    • Directoryapp
      • Directorydrivers Board drivers
      • Directoryhal Hardware Abstraction Layer
      • Directorymodules FreeRTOS tasks
      • Directoryreliance_edge File system
      • Directoryrtos Scheduler configuration
      • Directorysys Core app utils
      • Directorytools
        • Directoryinterface_debug_tool Basic OBC tests with app
    • Directorybl
      • DirectoryF021_Flash_API API for writing to board’s flash memory
      • Directoryhal Hardware Abstraction Layer
      • Directoryinclude All the bootloader header files
      • Directorysource All the bootloader source files
    • Directoryexamples Barebones applications to test functionality
    • Directoryshared Any functionality shared between the app and the bootloader
    • Directorytools Tools used to communicate to the board
      • Directorypython Any python files used to create the tools
  • Directorypython_test Testing for all the ground station python code
  • Directoryscripts Scripts that help build the project
  • Directorytest Testing for all the interfaces