Skip to content

Getting Started

Eli Carlin-Coleman edited this page Feb 4, 2021 · 12 revisions

Welcome to the Firmware Team!

  1. What we do
  2. Project 2.1. Overview 2.2. Hardware we use 2.3. Software we use
  3. Step-by-step guide to running the codebase for the first time
  4. Workflow
  5. Extra readings and references

1. What we do

We are the firmware subteam, part of the UBC Sustaingineering Electrical Team. If you are new to Sustaingineering, check out the Welcome Package.

The firmware team is working on the Enicalsa Solar Pumps project, trying to collect data on the operation of solar-powered water pumps to monitor their function and allow engineers to detect and fix issues rapidly.

An example of a solar-powered water pump that Benito is responsible for

We are using microcontrollers to read data from sensors and relay the information back to a server, where the data is uploaded to the internet. This document will help you understand the software and hardware we use to do this, and put you on your way to contributing to this project.

2. Project

2.1. Overview

High-level network diagram for the Firmware team

Above is a high-level network diagram of the information flow. The solar panels are installed by Benito, and are external to our system. They are the source of our data, but their operation is outside of the scope of this project. A microcontroller will collect data from the solar panels, using the sensor suite developed by our team. Typically this will be the cheaper ESP32, which communicate with each other via LoRa, but there must be at least one Particle board per network. The particle acts as the gateway between the ESP32 network, and the outside world. It sends data between the farm network and the internet server via a telephone network. Once data is transmitted to the server, it is published to the internet and can be accessed from anywhere. This dataflow is bidirectional, and data may be sent to the ESP32s and Particles, such as for firmware updates.

2.2. Hardware we use

2.2.1 ESP32

The ESP32 is a microcontroller which is used to read sensor data, store it to an SD card, and relay the data via LoRa to the Particle. There will typically be one ESP32 per pump. The ESP32 is small, low power, inexpensive, and compatible with the Arduino environment, making it convenient to use. More information, including the datasheet, can be found on Notion in the page ESP32 Docs.

2.2.2.

Clone this wiki locally