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:
- đ¤ Mechatronics Engineering.
- Bare metal programming, embedded systems, system design, control systems, etc.
- ⥠Electrical Engineering.
- Circuits, electronics, digital systems, semiconductors, etc.
- đģ Software Engineering.
- Version control, algorithms, data structures, networking, etc.
- âī¸ Mechanical Engineering.
- Enclosures, vibrations, control systems, electromechanical systems, etc.
- And more!
2.2 Types of Projects
Our primary projects fall within 6 main categories:
- đ Sensors.
- Collect and forward sensor data.
- đ Telemetry.
- Process, visualize and interpret data.
- đ Controls.
- Control systems, command and manage control loops.
- ⥠Hardware.
- Design, build, test and integrate PCBs.
- đŽ Interfaces.
- Design interfaces primarily for driver(s).
- đšī¸ 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:
- Hardware and Electronics (HE).
- Designing and building our PCBs, completing the hardware for our projects.
- Electric Drivetrain (EDT).
- Engineering all high voltage and drivetrain aspects of our team.
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.
- 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.
- Our administrative file storage solution for only ES.
- Google Calendar.
- Our general calendar and scheduling solution.
- GitHub Org: Ontario Tech Racing.
- Our version control / devops solution for all ES work.
- Also stores the majority of internal technical documentation.
- Google
Sheets & GitHub Org ES Project
- Our current high level project management solution.
- Some legacy tracking might require Monday.com.
- TBD
Ontario Tech Racing Slack.- Our primary text based communication platform for all of OTR.
- Legacy communications can be found on Ontario Tech Racing Slack.
- Google Meets
- Our virtual meeting solution.
- It is highly recommended bookmark the pages above.
3.2 General Responsibilities & Policy
The following are the general responsibilities and policy for our department / OTR team.
Please take note of these!
- Participate in weekly ~1-hour "All electrical & software" meeting.
- In person in ACE 5030 / ACE conference room, with backup Google Meets.
- 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.
- Active communications.
- 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).
- Our primary goal is to support engineering on the FSAE vehicles.
- Currently, high level programming (automation, CI/CD devops, ML, etc) are not priority.
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.
- Note: We are currently transitioning from Altium and the current KiCad workflow and devops processes will likely change / update in the near future.