Skip to content

UBC Sailbot's firmware for Communication Modules on project Polaris.

License

Notifications You must be signed in to change notification settings

UBCSailbot/com-module-firmware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • STM32CubeIDE - Used to generate initial code and peripherial configurations using the in-built STM32CubeMX.
  • Visual Studio Code - Alternative IDE for editing code (rather than CubeIDE).
  • Putty - Used for serial communication between host and STM32U5 board.
  • Git - For version control.

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

About

UBC Sailbot's firmware for Communication Modules on project Polaris.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages