Job Title
Firmware Developer Co-op
Job Summary
A bit about the team: UW Orbital is a student design team at the University of Waterloo participating in the Canadian Satellite Design Challenge (CSDC), a competition that involves a dozen universities from across Canada and runs every two years. Teams design a 3U CubeSat with unique missions and payloads and attempt to pass launch readiness evaluations such as vibration testing. We won our last competition and are now working on further development for our systems such as making space-grade improvements to our satellite with the ultimate aim of launching into space. If you are interested in firmware work and passionate about space, this could be the position for you!
The firmware team has two possible projects that you can pick to work on:
- Over The Air Software Updates
- Hardware In the Loop Testing
Job Responsibilities
What work will you be doing:
You will be working alongside with one of our leads. You’ll become familiar with the C language, and learn about embedded/firmware concepts such as Real-Time Operating Systems (RTOS), communication protocols, peripheral drivers, security, and writing tests to validate your code.
Depending on the projects, your responsibilities will vary.
- Over The Air Software Updates
You will be responsible in designing a system that will allow us to send a software update to our satellite in space. You will be working with our UART bootloader and modifying it so that it can read a software update stored on an SD card via the SPI protocol. You will be additionally responsible in writing firmware responsible for communicating with our microcontroller to send commands and download to the SD card as well as adding security measures in our firmware and ground station to ensure a safe and robust system.
- Hardware In the Loop Sysytem
Hardware-in-the-loop (HIL) test infrastructures are commonly used in the industry as a technique for developing and testing complex real-time embedded systems. In this setup, the satellite will be connected to a test system, such as a Raspberry Pi, which sends various signals to the satellite, simulating the different environments the satellite's sensors might encounter. This infrastructure allows developers to run automated tests without requiring a physical test environment.
You’ll be researching ways to send stimulus and read signals from our onboard computer, creating a prototype and implementing the software/firmware framework on the prototype.
Required Skills
- Pursuing bachelor's degree in engineering or a related discipline.
- Proven track record in coding either through prior experience, coursework, or projects.
- Demonstrated ability to learn quickly and work both in a team and independently.
Preferred:
- Experience with the C and Python programming languages