Familiarity with C/C++. Interest in Rust. Understanding of low level concepts like I2C, SPI, etc. is also highly desirable (not required).
Software is a vital part of our infrastructure. You may be familiar
with software running on computers and phones. But software runs on
many more devices as part of an embedded microcontroller in the
device, software running on embedded devices is often called firmware.
Examples range from toothbrushes, to appliances, to tools, and devices
in the so called internet of things (IoT).
For this project, we will be developing the actual firmware that runs
on a microcontroller board designed to interface with Mindstorm EV3
and NXT sensors and motors. This project includes learning and
understanding about low level programming (ARM Cortex
microcontrollers, I2C, SPI, GPIO, etc). Working on C/C++ and/or Rust.
This has some exposure to the hardware design engineers. This is an
early project, so you will have the opportunity of having a great
impact in the design and implementation of this firmware. All in all,
it is quite a challenging project, with great chances for learning
valuable and not mainstream skills.