You are not Logged In!

Public:Electrical Onboarding 2021

From Illini Solar Car Wiki
Revision as of 17:27, 24 August 2021 by Dking32 (talk | contribs) (edited linked section)
Jump to navigation Jump to search

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:

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 (insert dates)
    • 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 (insert dates)
    • 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)
    • 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 firmware projects that make the car run. 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. If you're familiar with C++, you can probably skip links 1 and 3 - I'd still recommend going through link 2 as it provides a reasonably detailed explanation of ISC firmware.

  1. What is firmware?
  2. More detailed explanation of firmware
  3. Basics of C++ (with examples from our code)
    1. For those not familiar with C++/OOP, 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 (WILL ADD LINK)
  5. Basics of communications protocols
  6. Project 2 - OLED Display project (CHALLENGE) (WILL ADD LINK)