Skip to content

ESW Overview

Guthrie edited this page Apr 14, 2023 · 11 revisions

Embedded Software

The embedded software team of MRover (ESW) writes the driver code that allows the other programming subteams to utilize the electronic equipment on the rover. ESW works primarily with libraries in C, Python, and C++ to abstract the functions needed by the other teams for easy use. To do this we use different communication protocols such as I2C and UART to transmit and receive relative data from sensors.

This page will list all the systems that the ESW sub-team must write code for. If you are interested in helping out or in any of these systems or offering suggestions for improvement, please reach out! You can do this via by sending a message on Slack or by submitting a GitHub issue ticket.

If you want to jump straight into the starter project, click here.

A lot of the driver code can be found in the embedded-testbench repository.

Wiki has been updated as of April 14, 2023.

Quick Summary of Systems

Brushless motors (for the drive system and parts of the arm) are driven by moteus brushless motor controllers.

Brushed motors (for parts of the arm, the ISH system, the SA system, and the mast gimbal) are driven by two STM32 chips located on the MCU board (one of our custom PCBs).

The science system is primarily controlled by a different STM32 chip also located on the MCU board.

The camera system is run on the Jetson to stream camera feed.

System Block Diagram

Below is a system block diagram. In includes systems such as the brushless motors (moteus), brushed motors, science, and camera systems.

ESW System 2023 drawio

Clone this wiki locally