CTS-SAT-1-era software team onboarding guide
Please install the following software:
- STM32CubeIDE
- Git Bash (for Windows only)
- GitHub Desktop
- Visual Studio Code (optional, recommended)
You require at least the following hardware:
STM32L4R5ZINucleo-144 dev kit- Micro-USB Cable
- Must support data transfer. Please bring one from home if you can.
The following software is required:
- STM32CubeIDE
- VSCode
- A serial terminal if you don't already have one. Several options are available:
Please complete the following tutorials:
- The GPIO pin number for the builtin LD2 LED is PB7, LD1 is Pin PC7, and LD3 is Pin PB14.
- Task 1: Use LPUART1 (Pins PG7 and PG8) to communicate via the ST-Link USB connection.
- Task 2, if assigned: Practice using UART by getting a USB-to-Serial converter, and connecting it to the pins on the dev kit.
- Write firmware that sends UART messages out on the dev kit's TX pin, and is received by a serial terminal through the UART converter's RX pin.
- Stretch goal: Write firmware that received UART messages on the dev kit's RX pin, and then echos them back to the USB-to-Serial converter.
- No I2C practice right now
- (If assigned) STM32 - FreeRTOS Guide - Video
- After you get the tutorial working, modify the threads so that each thread blinks a different LED at a different rate.
- For example, make LD2 blink every 3 seconds, and LD1 blink every 1.3 seconds.
Please complete Item 1. Item 2 is a helpful read, which is essentially a review of Item 1, with more practice.
- Please follow along with the video for practice.
- Git and GitHub Desktop - Reading (optional)
- In your test repo, try Branching.
- Git CLI - Presentation (optional)
- Short Title (under 50 characters)
- Concise Description
- Testing used to verify the change
Example:
Improve empty string error handling in hex parser
The function parse_hex_string() would return a garbage value when given an empty string.
Changed the function to now output a zero value and return an integer error code.
Added an empty string case to the unit test.
Download and Install GitHub Desktop (link above)
- Log in to your GitHub account
- Select your repository (or clone it from Git)
If you have made changes, GitHub Desktop willl look something like this:

- Select the boxes which associate with the files whose changes you would like to push forwared onto the repository.
- Write a description of your commit. Generally speaking, it should be short and concise.
- Press the commit button on the bottom left. This is prompted a change but pushed the change onto the repository (the change is pushed to your local repository)
- Now, push the
push originbutton on the top right.
If you have any questions about this, or if you find yourself in a tricky or confusing situation with git, please ask a lead. Just trying things can often make things worse.
- Look over the code and also the commit message. Ensure changes are not out of the scope of the commit message
- Leave comments for any questions or things you think need changing
- If you think it's good to submit, comment "Approved"
- If you think it's not good to submit, comment "Revise"
For CalgaryToSpace, if you are not an expert in the github command line, using GitHub Desktop is strongly recommended.
GitHub Desktop's easy-to-use GUI allows for easier review and inclusion of files for commits. Identifying which files should be comitted in a change is important, as STM32CubeIDE sometimes changes/regenerates files that you do not intend to change.
Click to expand
- Update your local repo with
git pull origin main - Create a working branch with
git checkout -b MyNewBranch - Make your changes on your branch and stage them with
git add .to stage all changes. - Commit your changes locally with
git commit -m "description of your commit" - Make as many commits as needed to implement the change/feature
- Upload the changes (including your new branch) to GitHub with
git push origin MyNewBranch - Go to the main repo on GitHub where you should now see your new branch
- Click on your branch name
- Click on "Pull Request" button
- Click on "Send Pull Request" to development/main
- Have Pull Request reviewed by 3 people
- Pull request is good to submit after 3 Approvals
- Open a PR using GitHub online.
- Make changes and stage them with
git add . - Then use
git commit –-amend --no-editto modify the previous commit without changing the commit message - Upload the changes (including your new branch) to GitHub with
git push origin MyNewBranch - Update the pull request with the new changes