Firmware Overview

Our firmware lives on three Arduino Uno microcontrollers that interface between the hardware (motors and sensors) and the Raspberry Pi. We initially wanted to use microROS on Raspberry Pi Picos to communicate with the software system using ROS protocol. With such an ambitious project we decided to pivot to Arduino Unos and communicate over serial. We decided to have different Arduinos for receiving motor commands and passing along sensor data to simplify serial communication. For sensors without specific open source libraries such as the buttons, encoders, and strain gauges, we wrote our own custom libraries.