Overview
OpenReef is an open-source Raspberry Pi-based colorimeter for automated water quality testing. The web-controlled system provides phosphate and nitrate measurements for ๐ Reef aquarium monitoring, hydroponics, and environmental testing.
Key Features
- Web-Based Control: Access from phone, tablet, or computer on your network
- Remote Monitoring: Check water quality from anywhere
- Automated Sequences: Pre-programmed test protocols with motors, valves, and timers
- Real-Time Display: Live sensor readings and interactive controls
- Multi-Channel: Support for 4 motors and 8 solenoid valves
- Editable Calibrations: Web-based JSON configuration for custom calibrations
- Open Source: Complete hardware designs, Python code, and documentation
- Cost Effective: ~$200-250 build cost using Raspberry Pi and Adafruit components
- No Display Required: Headless operation with web interface
Quick Links
๐ Documentation
- Full Documentation - Detailed Pi colorimeter guide
- Introduction & Overview - System overview and measurement theory
๐งช Assay Protocols
- Phosphate Assay - 880nm colorimetric method (0-30 ppm)
- Nitrate Assay - 528nm colorimetric method (0-90 ppm)
- All Tests
๐ง Hardware
- Raspberry Pi Hardware Guide - Complete parts list and assembly
๐ป Software
- Web Interface Documentation - Flask app, API, automation
- Calibration Guide - Calibration procedures
- Configuration Files - Edit mappings, sequences, calibrations
System Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Raspberry Pi + Flask Server โ
โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โ โ TSL2591 โ โ Motor HAT โ โ
โ โ Sensor โ โ Solenoid Driver โ โ
โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ โ
Measurement Hardware Control
โ โ
โ โโโโโโผโโโโโโโโโโ
โ โ Motors (4ร) โ
โโโโโโผโโโโโ โ Solenoids(8ร)โ
โ Cuvette โ โ Reagents โ
โโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โฒ
โ
โโโโโโดโโโโโโโโโโโโโโโโโ
โ Web Browser UI โ
โ (Phone/Tablet/PC) โ
โโโโโโโโโโโโโโโโโโโโโโโ
Component Summary
| Component | Function | Details |
|---|---|---|
| Raspberry Pi | Main controller | Web server, automation, remote access |
| TSL2591 | Light sensor | Absorbance measurements |
| Motor HAT | Motor control | 4 DC motors for pumps/stirring |
| MCP23017 | Solenoid driver | 8-channel valve control |
| Web UI | User interface | Responsive web app, any device |
Assay Comparison
| Feature | Phosphate | Nitrate |
|---|---|---|
| Chemistry | Ascorbic acid method | Cadmium reduction + Griess |
| Wavelength | 880 nm (NIR) | 528 nm (Green) |
| Range | 0-30 ppm POโ | 0-90 ppm NOโ |
| Reaction Time | 5-10 min* | 5+ min |
| Total Time | ~12 min | ~10 min |
*Critical timing - phosphate measurements must be taken within 5-10 minute window
Project Status
โ Raspberry Pi Version - Ready to Build!
Completed
- โ Raspberry Pi web interface (Flask)
- โ Hardware control (motors, solenoids, sensor)
- โ Automated command sequences
- โ Web-based configuration editors
- โ Calibration system
- โ Real-time measurements and display
- โ Systemd service automation
- โ Comprehensive documentation
In Progress
- ๐จ CAD designs (3D printable enclosure and mounts)
- ๐จ Hardware assembly guide with photos
- ๐จ Assay-specific calibration protocols
- ๐จ PCB design (optional, for cleaner wiring)
Planned
- ๐ Sensor multiplexer support (multi-sensor switching)
- ๐ Data visualization and trending
- ๐ Additional assays (ammonia, silicate)
- ๐ Mobile app (optional)
Getting Started
Build Your Raspberry Pi Colorimeter
Estimated Cost: $200-250
- Order Components
- Hardware Guide - Complete parts list with Adafruit PIDs
- Raspberry Pi 3/4/5
- TSL2591 light sensor
- Motor HAT, solenoid driver
- Fluidics components
- Install Software
- Setup Guide - Step-by-step instructions
- Install Raspberry Pi OS or Ubuntu Server
- Clone repository and install dependencies
- Run automated service installer
- Connect Hardware
- Stack Motor HAT on Raspberry Pi GPIO
- Connect TSL2591 sensor via I2C
- Connect MCP23017 solenoid driver
- Wire motors and valves
- Configure & Calibrate
- Access web interface at
http://raspberrypi.local:5000 - Edit device names in mappings.json
- Create calibration curves
- Calibration Guide
- Access web interface at
- Run Automated Tests!
- Create command sequences
- Mix motors, solenoids, waits, blanking, measurements
- Monitor from any device on your network
- Save and load test protocols
Contributing
This is an open-source project. Contributions welcome!
- ๐ Documentation: Improvements and corrections
- ๐ป Firmware: CircuitPython code development
- ๐ง Hardware: Enclosure designs, PCB layouts
- ๐งช Testing: Validation and QC data
License
This project is licensed under the MIT License.
Based on:
- IoRodeo Open Colorimeter - Hardware designs (CC BY 4.0)
- IoRodeo BioRodeo Assay Protocols - Assay methods
Acknowledgments
Built with:
- AdaFruit - PyBadge, sensors, electronics
- CircuitPython - Embedded Python platform
- Red Sea Pro Test Kits - Reagent chemistry
Built with passion for the reef keeping and maker communities.
๐ ๐ชธ ๐งช ๐ฌ ๐ค