otr_logo_grey OntarioTechRacing.github.io

welcome_to_es


Table of Contents

1 Introduction

👋 Welcome to the Embedded Software (ES) Department of Ontario Tech Racing!

This markdown file documents how our department operates, the typical workflow and beginning steps for all new members of ES.

All TODO steps are block quoted like this.


2 General Department Breakdown

Embedded Software (ES) is the department in charge of regions covering embedded systems, higher level programming and rapid systems prototyping.

2.1 Engineering Disciplines

Our department covers many aspects of engineering, primarily:

2.2 Types of Projects

Our primary projects fall within 6 main categories:

  1. 🔭 Sensors.
    • Collect and forward sensor data.
  2. 📈 Telemetry.
    • Process, visualize and interpret data.
  3. 🚀 Controls.
    • Control systems, command and manage control loops.
  4. ⚡ Hardware.
    • Design, build, test and integrate PCBs.
  5. 🎮 Interfaces.
    • Design interfaces primarily for driver(s).
  6. 🕹ī¸ Equipment.
    • Build equipment for testing, simulation, manufacturing, etc.

2.3 Department Cooperatives

Due to the nature of our department, we also work mostly with the following departments:


3 Onboarding

3.1 General Administrative Tools

Our department and wider OTR team uses a variety of tools to organize technical work and run efficiently:

Send your @ontariotechu.net email and GitHub account username / email to the department lead: daniel.jeon@ontariotechu.net. Accept and ensure you have access to the following once you receive the email invites.

  1. Google Drive: OTR Embedded Software Shared Drive.
    • Our administrative file storage solution for only ES.
      • Department budgeting.
      • Meeting Notes / Agendas.
      • Presentation slide decks.
      • Datasheets.
      • etc.
  2. Google Calendar.
    • Our general calendar and scheduling solution.
  3. GitHub Org: Ontario Tech Racing.
    • Our version control / devops solution for all ES work.
    • Also stores the majority of internal technical documentation.
  4. Google Sheets & GitHub Org ES Project
    • Our current high level project management solution.
    • Some legacy tracking might require Monday.com.
  5. TBDOntario Tech Racing Slack.
    • Our primary text based communication platform for all of OTR.
    • Legacy communications can be found on Ontario Tech Racing Slack.
  6. Google Meets
    • Our virtual meeting solution.

3.2 General Responsibilities & Policy

The following are the general responsibilities and policy for our department / OTR team.

Please take note of these!

  1. Participate in weekly ~1-hour "All electrical & software" meeting.
    • In person in ACE 5030 / ACE conference room, with backup Google Meets.
  2. Active contributions to assigned subsystem teams and engineering work.
    • All ES members must make progress and contributions tracked on GitHub.
    • This may entail more meetings and work sessions as applicable.
    • Work may be in-person, virtual or hybrid depending on the task.
  3. Active communications.
  4. Attend and support team-wide meetings, work sessions, etc.
    • ~2-4 meetings per month.

4 General Department Documentation

All technical documentation about our department can be found on the embedded repository or through the GitHub pages version at ontariotechracing.github.io/embedded/.

For new members there will be too much information to take in at once. We don't expect you to know it all from the get go, but the department repository should be a point of reference going forwards.


5 Projects & Tasks

From a high-level view of our department, each member manages various projects. The projects are assigned by member interest, skill-set and urgency.

Different projects follow different development cycles, you will be introduced to them towards the start of your first project contribution.


6 Technical Onboarding

Whether you are looking to focus on low-level hardware programming, high-level scripts, PCB design or anything in between, all ES members should ideally contribute to development of OTR FSAE race car(s).

6.1 Bare Metal Programming

Our low-level hardware runs on most commonly on STM32 microcontrollers. A STM32 beginner guide can be found here: stm32/getting_started.

Complete the STM32 getting started training.

6.2 PCB Design

PCBs allow for finalized packaging and development of more advanced circuits. Our current resources documentation can be found here: kicad.