Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The firmware team is responsible for developing control software to drive all the electrical systems in our car. If you have

...

an interest in low-level programming, embedded systems development, or are just curious about how software in cars even works, this is the place for you!

There is no application process and you don’t need to have any experience when you join (many of our members don’t). All it takes to be a member is interest in what we’re doing, attending meetings twice a week, and putting in effort

...

to help us build the best software we can. Welcome to the team!

Member Responsibilities

  • Gain exposure to firmware and various

...

  • skills such as:

...

    • Firmware in C to run on ARM microcontrollers or emulated microcontrollers

...

writing software in python and C to create tools for validating firmware

...

    • Working with electrical engineers to debug boards

    • Writing validation and debugging toolkits in Python and C

    • Writing software in various languages for projects like our telemetry system or driver display

...

    • Unit tests for firmware and other software to validate your work

  • Attend twice weekly standups (mandatory)

Required Skills

  • Know the basics of programming

  • Understand your hardware

  • That’s pretty much it, you can learn as you go!

...

Leads

...

 

IMG_0689.jpgImage Added

Aryan Kashem - Firmware Lead

...

About: 3A CE. Been on the team since September 2019. Worked with in C++, Python, JS, Java, Bash

Ask me about: C/C++, Python, Java, setting up your dev environment, anything you’re stuck on, or if you just want to chat

Hobbies: Anime & Manga

...

 

...

Firmware Lead: Mitchell Ostler

About: I’m in 3A CE

Ask me about: General programming/embedded system questions, drivers, libraries, setting up dev environments, the meaning of life

Fun Facts: 5’4, Self taught piano player, sci-fi fan, I don’t play the bass

New Members

Join our Slack for all team communications. Team Communication

...

Make sure you join the #elec-firmware and #general channels! That is where all our firmware conversations and updates happen

...

[Optional] Add our google calendar for all meeting times Midnight Sun Calendar

...

About Me
Hey everyone! My name is Aryan and I just finished 1B CE. I will be leading firmware for FSGP 25 and ASC 26. This term I’m hoping to finalize our car’s firmware for Summer '25, and start work on our MPPT and Telemetry systems! Super excited to meet you all 🤠

Talk to Me About
Art, food, games, music or the meaning of life. I also wouldn’t mind talking about Electronics, BMS, motors, RTOS, or anything on the car. Feel free to reach out to me about anything!

IMG_1265.pngImage Added

Adel Chinoy - Firmware Lead

About Me

Hi! I’m Adel. I am old now I guess. I’m in my 3B term of Mechatronics and I’m one of the firmware leads. I’m really excited about our new projects this cycle and excited to work with you guys!

Talk to Me About

Video games, music, anything really. Please reach out about joining or anything else!


Advisors: Mitchell Ostler (Short king), Jarvis Weng, Kyle Chan, Shicheng Lu

New Members

  • Join our Discord for all team communications. https://discord.gg/jFvyFsKVu8

    • Change your server username to be [FIRST NAME] [LAST NAME]

    • Send a message in #fw-onboarding pinging @Firmware Leads to let us know you are starting the onboarding 🤠

    • Follow @uwmidsun on Instagram/LinkedIn!

  • Take a look at Intro to Solar Car Electrical Systems if you’re interested, to get an overview of the project we’re working on. Even though you’ll be working on firmware, it’s important to understand the context of the projects you work on.

...

...

Onboarding Process

To become an active member, there is an onboarding process that helps you get up to speed with the technologies we use and learn about what you’ll be working on. This consists of weekly training sessions on Saturdays at the start of every term

...

and a project associated with each session. The full process is covered below

Part 1 - First Steps

  1. Attend Firmware 101

    1. Every term we hold an introductory training session to tell people what we’re all about. If you’re still not convinced what team you want to be a part of, this is a great place to start. Check

...

    1. the discord events for updates on when this will be taking place, or take a look at previous notes (Firmware 101 - Getting Started ) if you want to get ahead

  1. Background learning

    1. There are several tools/technologies we use to help us run a mean, clean software organization. These are:

      1. Git

      2. Shell Environments (Linux)

      3. C

...

      1. Programming

      2. Basic circuits and Schematic analysis

    1. If you don’t have a lot of experience with these, luckily we have Midnight-Sun-specific Shell Environments, Git, and C Programming videos

...

    1. created by the legendary Arshan Khanifar (a retired firmware lead). Tutorial Videos There

...

    1. are also tons of resources in Firmware Resources

Part 2 - Setup and Learning our Systems

  1. Get your environment set up with Module 1 of Software 101. Setup

  2. Attend Firmware 102-

...

  1. 103 (held weekly):

    1. Each session has a live component (training session), as well as supplementary notes and homework. They are all contained in Firmware 102 - Intro to FreeRTOS and Firmware 103 - Embedded Systems. Feel free to read/work ahead if you’re feeling ambitious 🤩

Part 3 - Your first project and beyond!

  1. After you have completed Firmware

...

  1. 103 (and the homework) you are ready for your first task!

    1. Reach out to one of the leads, and they will assign you something

...

    1. cool and fun. You are now ready to start contributing!

Once you’ve completed these steps, pat yourself on the back, you’re now a fully onboarded Midnight Sun firmware member!