Introduction

Welcome to Orbital's Firmware Onboarding Challenge (for OBC Firmware Developers)!

Please carefully read this entire document as there are many helpful tips provided throughout. There’s a lot of information in this document, but don’t feel overwhelmed. Most of the provided information is just context so you can develop a deeper understanding of embedded systems.

The goal of this onboarding challenge is to develop a peripheral driver for a temperature sensor, as well as a thermal management task.

This challenge will teach you the skills needed to develop firmware on our design team. It’s designed to be similar to the type of work you’d do on the team (and even on co-op) and will give you a deeper understanding of embedded systems.

However, it’s also a much harder onboarding challenge compared to most design teams. We expect members to struggle at various points of this challenge. It’s expected that you’ll have questions to ask, so we’ve even set a requirement that you must ask at least 2 questions throughout the onboarding process in the Firmware #fw-onboarding channel on Discord. It’s very important to us that you’re able to ask questions when you don’t understand something.

That being said, once you complete this challenge, you’ll be ready to join the firmware team. Feel free to list this project on your resume once you complete it.

The challenge repository can be found here: https://github.com/UWOrbital/OBC-Firmware-Onboarding. The challenge is in the level3 branch.

Our coding style guide can be found in the repository’s README. It goes over our general rules on how to format/style your code.

Challenge Objectives

Preparation

Before you begin the challenge, there’s some prerequisite knowledge you’ll need to learn. Do not try the challenge until you’re familiar with the following concepts.

C Programming

If you’re unfamiliar with C, you may want to go through this tutorial. You can also check out this video tutorial.

If you’ve never coded before in any language, there will be a learning curve. However, don’t let that deter you from finishing the challenge. There’s tons of stuff to learn (and put on a resume). The other Firmware members/leads will be here to help whenever you need it. We can also provide further resources if needed.