2025 Embedded Onboarding

Welcome to the Solar Car Team and the Embedded Subteam! Onboarding will consist of the following action items. Complete them in this order:

  1. downloading and configuring software
  2. learning about Git
  3. learning about some team-specific things
  4. the onboarding project

This page will serve as the hub for onboarding, similar to how this wiki is a hub for the Embedded Subteam’s info. You should familiarize yourself with the guides and datasheets in Documentation, so you know what is available there.

For the first month or so, PowerPoints will be presented at the start of the Sunday meetings to help bring new members up to speed. The goal of these presentations is not to teach new members everything they will need, but rather create a foundation so new members know how things work in general and know what questions to ask. These will be posted in Documentation afterwards.

New members should research the basics of C++ and Python if they are unfamiliar with these programming languages. Here are some helpful resources:

Downloading Software

  1. Create a GitHub account and Discord account, if you don’t already have one.
  2. Install Python
  3. Install VS Code.
  4. Complete the software installation and setup on this page. Complete all of Compiling, and complete Uploading and Monitoring software installation.
  5. Windows users: install USBipd
  6. Authenticate your GitHub account on Git: follow these instructions
    • after authenticating using gh, you still need to manually set your name and email in Git for GitHub to properly recognize your commits
        git config --global user.name "Your Name"
        git config --global user.email "your.email@example.com"
      

Learning about Git

Git is the industry-standard version control system which we use to collaborate effectively when coding. Work through this guide, completing the following sections:

  • Git Tutorial: all but Git Config and Git Tagging
  • Git and GitHub: from Pull from GitHub to Push branch to GitHub
  • Git Contribute: Git Clone from GitHub and GitHub Send Pull Request
  • Git Undo: Git Reset
  • Git Advanced: Git .gitignore and Git Submodules

Team Specific Learning

In the Development Guide read Project Architecture and CAN. Also skim through Precharge and Cruise Control.

Onboarding Project

The project will be a short exercise where new members can interact with the Embedded codebase. Every individual should complete their own project (but can ask others for help); this will probably be the only time you work on a project completely independently while on the team.

Directions

  1. Open the Rivanna3 project on your computer, switch branches to the onboarding_project branch (git checkout onboarding_project)
  2. make a new branch from this called onboarding_project_yourname (git branch onboarding_project_yourname) and switch to it using git checkout
  3. Open PowerBoard/src/main.cpp and go to the signal_flash_handler function
  4. Read the instructions in the comments, and implement the described logic
  5. When you have reached a milestone:
    • compile Rivanna3 to ensure your code in syntactically correct for C++; NOTE that other parts of the codebase will generate compilation warnings, but if compilation fails the issue is your code
    • commit and push the changes to your branch
  6. When you are done, create a pull request on GitHub to merge your branch into main. The request will be rejected, but this is to give you practice in making pull requests.

Solar Car Team at UVA