Software is responsible for developing the programs that run Barracuda. There are two main projects: AVNavControl, which runs on the low-level control board, and EVA, which runs on the high-level BeagleBoard. In addition, software maintains a custom firmware for Barracuda’s IMU.
To manage complex software projects with many collaborators, we use GitHub, a website that specializes in hosting source-code repositories in the Git format. There are many advantages of distributed version-control systems like Git. First, each developer is given the ability to complete work asynchronously and without an Internet connection, leading to more flexibility and faster development. Second, the code is backed up on external servers and on each team member’s computer, and the underlying version control system, Git, allows the team to revert the source code to older states that are known to be functional. The combination of these two features encourages team members to experiment freely when adding new features. Lastly, GitHub’s Pull Request feature encourages discussion of software development, which is then archived. We hope that the records generated by Pull Requests will enable future club members to understand the reasoning behind implementations used in the code.