UBCSailbot / com-module-firmware

UBC Sailbot's firmware for Communication Modules on project Polaris.
https://www.ubcsailbot.org/
MIT License
1 stars 1 forks source link

Communication Module Firmware (COM Module)

The Communication Modules are microcontrollers with the specific purpose of providing bidirectional communication between a device/sensor on the boat and the main computer. It processes these messages and provides low-level interfacing and control of individual hardware devices on the boat. Examples such applications include rudder and wingsail controls, and data aquisition from various sensors on the boat.

This repository consists of multiple firmware projects from the electrical team working on the project Polaris at UBC Sailbot. All of the firmware is written for the STM32U5 Nucleo-144 boards.

Current projects include:

  1. Base communication module library
  2. Rudder controller firmware
  3. Wingsail controller firmware

High-level diagram of communication system

COM Module High-level Design

The COM Module is split into two parts: The Nucleo board and the breakout board (BOB). Each hardware device on the boat has it's own custom BOB designed specifically for it's needs, while the Nucleo board hardware is the same in all COM Modules.

alt text

Firmware Design Diagram

image

Repository Structure

projects/
    base-library/
        project/
            Core/
                Inc                        - Contains base library header files
                Src                        - Contains base library source files
        tests
        README.md                          - Base library user instructions
    rudder-controller
    template                               - Template to be copied for teams writing their own code
shared-docs
tutorials/
    STM32F407_demo/                        - Comprehensive demo project
        README.md                          - Start here for the demo
    setup.md                               - Tutorial for STM32CubeIDE setup
    testing.md                             - Tutorial for how to create tests
.gitignore
LICENSE
README.md                                  - Relevant background info on COM Modules (you're here right now)

Where to Get Started

If you are looking to write your own firmware for your team, then you have come to the right place. After looking over this page, navigate to projects -> base-library -> README.md for another README, this time with specific instructions on what you need to know. As you can see above, there are multiple other files that are worth looking at.

Prerequisites

List of tools required to get started:

If you have not setup your working environment yet, follow the setup instructions. For information on working with GitHub, consult the github instructions.