Github is our main source control program. This allows us to share code quickly and easily between teammates, enables collaboration, and keeps a log of recent changes if one needs revert to previous commits. Code can be open source on this platform which is one of the requirements of the project.
The Thunderboard EFM32GG12 is our main development board for the gathering of audio. This device can be connected to a computer and transfer data using serial communication in order to transfer audio samples to a desktop application. This device allows us to record audio for a cheaper price while maintaining the flexibility we require to develop it.
Simplicity Studio is the IDE that Silicon Labs provided to program and flash the Thunderboard EFM32GG12. This was selected because any alternative that we have found required a license over our budget. Simplicity Studio allows us to test our code on the board as well using the debugger supplied with the IDE.
MatLab's GUI builder is used to build the user interface. This GUI builder was selected because it is an easy to use drag and drop system that automatically generates the code needed to implement functions and widget objects such as buttons.
Python is used to build the backend of the application side and is used to gather and process the incoming audio samples. This was selected because Python is easy to implement modules and easy for our team to use, since we already have experience with this programming language.
PySerial is used to assist the backend of the application side to communicate with the board over a USB serial connection. We chose PySerial because it is the best documented and most supported serial I/O module for Python. This allows us to fufill the requirement of gathering data from the board.