SEDS Avionics Team Full-Scale Flight Computer 2024-2025 Season Competiton Link for team placement: IREC 2025
- 10K COTS: 56th place out of 81 teams
- Overall: 86th place out of 142 teams
Microcontroller: Teensy 4.1
LIST FOR SENSOR DATA STORAGE/TRANSMISSION
- Github Library PENDING
- Datasheet
- DatasheetPENDING
- Github Library
- Standard Arduino SPI SD card library
- Main IMU (BNO055):
0x28 - Backup IMU (ASM330):
0x6A - Magnetometer:
0x30 - Temperature & Humidity Sensor (HTU20D):
0x40 - Barometer (MS5611):
0x77
- IGNORE .PIO Folder: ADD the
.pioto the .gitignore to not flood the git repository and add any sensor functions from the sensor library to a seperate header file
Please provide a detailed description of the issue you are reporting.
- I have created a new branch from the
mainbranch. - My branch name starts with either
fix/orfeature/followed by a descriptive name. - I have committed my changes and pushed them to the branch.
- I have performed a self-review of my code and tested it on my branch.
- I have deleted the branch after the pull request is merged into
main
- Single Main File: Ensure there is only ONE
.cppfile that containssetup()andloop()in yoursrcdirectory. Multiple files with these functions will cause compilation errors. - Archive Storage: If files are not intended for compilation, place them in the
archivefolder since only thesrcfolder is compiled. - Test Folder Usage: Unless you are actively testing, do not place any files in the
testfolder as it may cause errors. - Include Folder: Any custom header files should be placed in the
includefolder, which is recognized by PlatformIO as the location for header files.
This project uses C, C++, and Arduino code for embedded systems, and we adhere to a consistent commenting style to keep the codebase clear, maintainable, and easy to navigate.
- Format: Use Doxygen-style comments (
/** ... */) before each function. - Content:
- Briefly describe the function’s purpose, parameters, and return values.
- Use
@briefto summarize the function at a high level. - Use
@paramand@returntags to document function inputs/outputs. - For any known issues, planned work, or bugs, use
TODO(#issueNumber)orFIXME(#issueNumber). - Use
NOTE(name):to highlight non-actionable observations or temporary conditions.
Example:
/**
* @brief Fetches data from a sensor and processes the result.
*
* Reads from the specified sensor pin, applies filtering, and returns the
* processed value. This function is non-blocking.
*
* @param sensorPin The Arduino analog pin number where the sensor is connected.
* @return The filtered sensor reading as an integer.
*
* NOTE(alice): Currently using a simple moving average filter. See #45 for a discussion on implementing a Kalman filter.
* TODO(#101): Integrate a calibration routine to improve accuracy.
* FIXME(#102): Handle sensor saturation conditions more gracefully.
*/
int readAndProcessSensor(int sensorPin) {
// ...
}- Format: Use Doxygen-style comments (
//) before each comment. - Content:
- Briefly describe the purpose of the code
- (Case-by-case basis) Tag anyone who will work on this code
/// This is a single-line Doxygen comment.
/// It documents myOtherVariable.
int myOtherVariable;int myVariable // Place the comment hereUse TODO(#issueNumber)or FIXME(#issueNumber) to mark pending tasks, enhancements, or additional steps you plan to implement.
Conditions:
- If going to use in a function multi-line comment you can place it inside as noted in #1 Function-Level Comments
- If going to be single line then mark it as the following below:
int calculateChecksum(uint8_t data[], size_t length) {
int checksum = 0;
for (size_t i = 0; i < length; i++) {
checksum += data[i]; // TODO(#789): Handle overflow for large data arrays.
}
return checksum;
}or
bool connectToWiFi(const char* ssid, const char* password) {
bool success = WiFi.begin(ssid, password); // FIXME(#456): Implement retry logic for failed connections.
return success;
}- If needed for a multi-line
TODO/FIXMEcomment then use the syntax as following to not clutter the code and hinder readbility:
/**
* FIXME(#456): Implement retry logic for failed connections.
*/
bool connectToWiFi(const char* ssid, const char* password) {
bool success = WiFi.begin(ssid, password);
return success;
}


