You are not Logged In!

Difference between revisions of "Public:Electrical Onboarding 2021"

From Illini Solar Car Wiki
Jump to navigation Jump to search
m (Adityaj5 moved page Public:Electrical Onboarding 2021 to Electrical Onboarding 2021 over redirect)

Revision as of 23:28, 10 September 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:

Planned Dates/Deadlines

Mon., Sep. 6 - Introductions, brief electrical system overview, wiki + Github access, icebreakers

Wed., Sep. 8 - Electrical system overview

Sat., Sep. 11 - Install git + KiCad + MCUXpresso

Mon., Sep. 13 - Troubleshoot git/KiCad/MCUXpresso installations

Wed., Sep.15 to Wed., Sep. 29 - KiCad onboarding project 1

Wed., Sep. 29 to Wed., Oct. 6 - KiCad onboarding project 2

Wed., Oct 6 to Mon., Oct. 16 - Firmware onboarding project 1

For each end date above, we'd like the project to be done by the beginning of the meeting on that end date. To encourage people to stay on track during onboarding, we will only offer help for each project during its specified start/end period. If you finish the hardware/firmware projects early, that's great - we have some additional challenge hardware/firmware projects below.

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 :)

  1. 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.
  2. Look through Jarod's git youtube tutorials to get a better understanding of why we use git as well as a few basic commands
  3. If you'd like more practice with Git, checkout these other interactive tutorials to learn more:

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 :)

  1. Clone the GitHub PCB repository onto your computer by following the Initial Setup instructions here.
  2. Go through the KiCad First Time Setup instructions
  3. Follow Rahul's KiCad youtube tutorial series (only the first 3 videos for now) to complete the first introduction project to familiarize yourself with the software
  4. Start working on the Onboarding Projects below! We created a series of projects to act as goals to progress yourselves with KiCad. We have 2 intro projects planned out for now and a 3rd as an optional project. Depending on your pace we could add more. You don’t have to complete all of them. Just do your best :D
  5. 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
  6. After Completing the schematic for your first onboarding project watch the 4th video from the KiCad playlist and put your work on the PCB repository
  7. Finish the layout and push the changes to your branch to get more feedback
  8. Repeat with the rest of the onboarding projects

KiCad Onboarding Projects:

  1. 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
  2. Onboarding Goal 2: 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
  3. 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

  1. Clone the GitHub b-fw repository onto your computer by following the Initial Setup instructions here
  2. Go through the MCUXpresso setup instructions. Don't worry about setting up ARGO-fw, just b-fw is fine
  3. 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.

  1. What is firmware?
  2. More detailed explanation of firmware
  3. 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.
  4. Project 1 - LED blinking project
  5. Basics of communications protocols
  6. Project 2 - OLED Display project (Optional Challenge)