Project
Contributing
Issues, pull requests, and what a good contribution looks like for a project that mixes chemistry, CAD and code.
Repository layout
openreef/
├── firmware/openreef_analyzer/ Python service: openreef/ package, tests/, deploy/, config.example.yaml
├── hardware/analyzer/cad/ OpenSCAD parts, panels.svg, wiring.svg, bom.csv, make_drawings.py
├── _docs/ _layouts/ _includes/ this website (Jekyll, GitHub Pages)
└── legacy/ the 2025 colorimeter, unchanged
Before you open a PR
- Code:
pytestpasses; new procedures run in the simulator; type hints and docstrings on public functions. - Chemistry: cite the method (APHA number, paper) and include the standards you validated against with the raw curves attached.
- CAD: keep parts parametric; export STLs are not committed (they are built from the SCAD files).
- Docs: one page per subject under
_docs/, front matter withtitleandsummary; preview withbundle exec jekyll serve.
Good first contributions
- Validation data: your calibration curves and side-by-side comparisons with hand kits or ICP.
- A second reagent profile (e.g. the lab-mixed VCl₃ nitrate) characterised end to end.
- A Pi 5 backend (needs a non-pigpio step generator —
rpi-lgpioor a Pico as a step controller). - Localised docs.
Licences
Hardware: CERN-OHL-P v2. Software: MIT. Documentation: CC BY 4.0. Product names (Trident, Hydros, Hanna Checker) belong to their owners; OpenReef is not affiliated with them.