P19104: HABIP-BioX
/public/

Software Detailed Design

Table of Contents

Introduction

The software team is responsible for writing the software that will run on all of the different boards. The software currently only includes C code written to run in a FreeRTOS environment, but will eventually include Linux applications written in other languages.

Projects

BioCell

The first major board that needs custom software is the BioCell, which consists of a MSP432, a collection of sensors, and some peripheral devices for controlling the cell.

The software on the MSP432 will be running FreeRTOS, which will handle the scheduling of all the different tasks that the BioCell needs to perform. Between these different tasks communication will be carried out through the use of shared variables. Shared variables are effective in this application because all of the shared data is only updated by a single process since most of it will be either sensor data or sample rates.

In addition to the application code, the BioCell software will also rely on some serial libraries that mostly exist outside of FreeRTOS and will be implement with a combination of custom code and calls to libraries provided by TI.

BioCell System Software

BioCell System Software

Most of the tasks that need to be implemented for the application are pretty simple and flowcharts representing sample implementations so some of the BioCell's programs are shown below.

BioCell Example Flowcharts

BioCell Example Flowcharts

Of these flowcharts the only one that is likely to involve any significant amount of work is the taking of the picture, which could involve some configuration of the camera before it is possible to take an image.

Power Management Board

Much like the BioCell, the Power Management Board (PMB) also uses a MSP432 running FreeRTOS, meaning that it's overall system is very similar to the BioCell.

PMB System Software

PMB System Software

The flowcharts for the PMB are very similar to those of the BioCell, except that the PMB doesn't actuate any control and doesn't need to take pictures.

PMB Example Flowcharts

PMB Example Flowcharts

Cluster Breakout Board

The Cluster Breakout Board (CBOB) is a board designed around a PocketBeagle running Linux. This changes the system's organization because the different tasks being run are complete programs within the operating system and resources such as the serial I/O's and file-system will be controlled by that operating system.

CBOB System Software

CBOB System Software

Data Acquisition Board

The Data ACQuisition (DACQ) board is very similar to the CBOB in that it is also based around a PocketBeagle running Linux and as such all of it's I/O will be done through the operating system instead of directly via a function call.

DACQ System Software

DACQ System Software

Communications Board

The communications (comms) board is the most complicated board and is based on designs from previous senior design teams. This board will include a Raspberry Pi Zero running Linux that will be connected to the DACQ, the CBOBs, a radio transceiver, and several other peripherals.

Because the board is complicated, the accompanying software is complicated too. Instead of having several small independent programs, the comms board will run a single monolithic program based on the program used in previous years. A flowchart showing the operation of this program is shown in the image below.

Comms Board Program Execution

Comms Board Program Execution

Dev Ops

In addition to the diagrams that were created in order to describe the different software systems, there was also a code review in order to ensure the quality of our code stays high and also to help make sure that teams members who aren't currently writing code can get familiarized with the code base and how it works. A screen capture from the code review is shown below.

Code Review

Code Review


Home | Planning & Execution | Imagine RIT

Problem Definition | Systems Design | Preliminary Detailed Design | Detailed Design

Build & Test Prep | Subsystem Build & Test | Integrated System Build & Test | Customer Handoff & Final Project Documentation