You are not Logged In! |
Public:Electrical Onboarding 2021
This page is created to integrate all the electrical onboarding links onto a single page and help provide a flow for the onboarding process. In general, there will be 4 methods of accessing all the electrical team's information for onboarding:
- Slack (please check regularly!)
- GitHub
- Google Drive
- Wiki
Planned Dates/Deadlines
Spring onboarding will be a shortened and more self paced version of the typical fall onboarding process. This page contains all the tutorials and instructions needed to install all our software and complete the onboarding projects. Like always if you have any questions feel free to ask during meetings or on slack.
Monday 2/7: Finish Git setup, install and setup Kicad.
Wednesday 2/9: Finish Kicad Project Schematic and create PR
Saturday 2/12: Finish Kicad Layout
Monday 2/14: Setup MCUExpresso and finish Firmware project
Wednesday 2/16: End of onboarding info presentation, finish any remaining projects/installation
Saturday 2/19: Receive Mentors and Projects, first meeting as full members. Get OpenLab access by this date
As Spring onboarding is self guided and paced, these dates are a rough guideline of where you should be in order to be on track to finish everything by the end of onboarding. It is encouraged to work ahead if you are able to, or to take more time if needed.
GitHub Instructions
GitHub is a tool we use to share all of our work as a team. It is a great way to ensure all the current work stays updated and there are very little conflicts when working together. Most industry professionals use GitHub for code, however we also use it with our KiCad projects as well as code. Git is hard to learn so don't be upset if you don't understand how it works at the end of onboarding, you'll get more practice and become a pro later :)
- Go to the GitHub wiki page and ensure you have a working version of Git on your computer. Look through the Installing Git section of the page.
- Look through Jarod's git youtube tutorials to get a better understanding of why we use git as well as a few basic commands
- If you'd like more practice with Git, checkout these other interactive tutorials to learn more:
- Interactive tutorial: https://try.github.io/
- Git Branching: https://learngitbranching.js.org/
KiCad Instructions
KiCad is an electrical CADing software that our team uses to design the custom circuit boards (aka PCBs) for the solar car. All of our designs exist on the Illini Solar Car GitHub page in the PCB repository. You will clone this repository and any hardware contribution you make to the team will be in here forever :)
- First clone the PCB repository and set up KiCad following the instructions in Rahul's first KiCad youtube tutorial or the wiki instructions below.
- To clone the GitHub PCB repository onto your computer follow the Initial Setup instructions here.
- To setup KiCad follow the KiCad First Time Setup instructions.
- Follow Rahul's KiCad youtube tutorial series (only the next 3 videos for now) to complete the first introduction project to familiarize yourself with the software
- Start working on the Onboarding Projects below! We created a series of projects to act as goals to progress yourselves with KiCad. We have 1 required project and 2 additional harder ones for if you have extra time after completing the first. You don’t have to complete all of them. Just do your best :D
- While working on the onboarding projects take a look at these useful guidelines.
- KiCad Schematic Conventions - has information about specifics regarding each part of the schematic design from naming conventions to symbol creation to part selection
- KiCad Layout Standards - has information about the design guidelines for PCBs and illustrates what is allowed and what isn't
- After Completing the schematic for your first onboarding project watch the 5th video from the KiCad playlist and put your work on the PCB repository
- Finish the layout and push the changes to your branch to get more feedback
- Repeat with the rest of the onboarding projects
KiCad Onboarding Projects:
- Onboarding Goal 1: In this project, it will be much like the tutorial video, except with additional circuitry. You will require 2 buttons and 2 LED’s for this project.
- Requires 2 buttons, and 2 LEDs
- When button 1 is pressed, LED 1 turns on
- When both buttons are pressed, both LEDs are on
- When only button 2 is pressed, neither LED is turned on
- Onboarding Goal 2: (OPTIONAL CHALLENGE PROJECT): Create a 3-input NAND gate using 3 buttons and an LED
- Requires 3 buttons and 1 LED
- When all buttons are pressed, the LED turns off
- Else, the circuit remains turned on
- Onboarding Goal 3 (OPTIONAL CHALLENGE PROJECT): Create an XOR gate that is implemented using 2 inputs and 1 LED output. This project can be done in many more ways than the first two, so if you can think of a creative solution that bends the outline below a little bit, by all means try it out.
- 2 inputs and 1 LED output
- When both buttons are not pressed, the light is off
- When both buttons are pressed, the light is off
- Only one button can be pressed for the light to turn on
Firmware Instructions
In order to control our various hardware components, we write firmware code to allow various processes to happen. For example if the brake is pressed, we have a hall effect sensor that gets triggered which sends an enable signal to our Dash in order to turn on the brake lights. All of our firmware is written in C++ and we use MCUXpresso, an eclipse based IDE.
Setup
- Clone the GitHub b-fw repository onto your computer by following the Initial Setup instructions here
- Go through the MCUXpresso setup instructions. Don't worry about setting up ARGO-fw, just b-fw is fine
- Follow the Building and Debugging Code instructions to ensure you are able to setup the project files and build the skeleton code. Don't worry about the Flashing/Debugging Section for now; we'll work on getting that situated as you get your firmware project closer to being completed
Onboarding Project Goals
The firmware onboarding projects are meant to help you broaden your understanding of the basics of programming, the C++ language, and ISC's codebase so that you can start contributing to actual car firmware projects. You'll write code to do things like blink an LED or write a message to an OLED display, and in the process learn how to build, flash, and debug your own code.
Here are some links below to help you get started.
Project 1 is the only official firmware onboarding project. Project 2 is an optional (and harder) project, but recommend for people interested in writing more firmware.
- What is firmware?
- More detailed explanation of firmware
- Basics of C++ (with examples from our code) - the Intro, Variables, Operators, Macros, Conditionals, Functions, Basics of C++ Files, and Objects sections might be helpful for Project 1.
- Project 1 - LED blinking project
- Basics of communications protocols
- Project 2 - OLED Display project (Optional Challenge)