Skip to content

Contributing to FIRM - Overview

FIRM is a multidisciplinary project that spans:

  • Firmware and embedded software
  • PCB design
  • Higher-level libraries and tools

Purpose of These Instructions

The primary goal of these instructions is to give new members a clear, structured path to follow to help them get started.


👨‍💻 Intended Audience

These docs will provide resources to help anyone contribute to FIRM, but having some or all of the following skills will be helpful:

  • Basic programming knowledge
  • Basic Git familiarity
  • Very basic understanding of electronics/circuitry

🛠️ High-Level Architecture

At a very high level, the FIRM ecosystem includes:

  • Hardware - the FIRM PCB and related circuitry (a microcontroller, sensors, other electrical components, etc.).
  • Firmware - code running on the microcontroller: sensor drivers, data logging, communication.
  • Connected Device - a device that connects to FIRM and receives data (e.g. a laptop, Raspberry Pi, etc.).

FIRM Flowchart.png

👾 Getting Started as a Contributor

If you're new to FIRM, you should probably first skim the user docs so you know what the device looks like from an end user's perspective.

Next, if you're interested in programming, you should follow these steps to set up your development environment.

Or if you're interested in the electronics/PCB design, you should follow the steps to get KiCad and learn our design process/practices.


✏️ Keeping our Docs Up-to-Date

If you notice missing, outdated, or confusing information:

  • Please open an issue or a PR.
  • Add diagrams, screenshots, or small clarifying paragraphs wherever they help.