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.).
👾 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.
