Open specifications for aquariums.
The Open Aquarium Project writes open specifications and publishes open reference designs, so equipment from any maker works together, your tank runs without a cloud account, and its data stays yours.
Every specification is an early draft, and comments are welcome.
Five principles, in every specification.
Each specification explains how it meets all five. It may set one aside, with reasons, except Safety, which every specification must address.
-
Openness
Build on it without asking.
Anyone can implement, build, modify, and sell products based on the specifications and designs, without permission or payment. Reference designs publish everything needed to reproduce them, in formats that free tools can edit.
-
Interoperability
Equipment from any maker works together.
Equipment connects through specified interfaces, and existing open standards are reused wherever they fit. A specification is approved only after independent implementations show that it works.
-
Local control
No cloud required.
An aquarium keeps running, and its owner keeps full control, without an internet connection, a cloud account, or any particular vendor. Owners can read and export all the data their equipment collects.
-
Safety
Fails toward keeping animals alive.
Mains power, water, and living animals share one cabinet. Every specification defines how equipment fails, so that losing power, a network, a controller, a sensor, or a cable leads toward keeping livestock alive and people safe.
-
Sustainability
Built to be repaired.
Equipment should be efficient, repairable, and long-lived. The specifications favor replaceable modules, parts with more than one source, and documented repair.
When something fails, the tank comes first.
Every output has a fail-safe setting. If a device stops hearing from its controller for longer than its timeout, from 5 seconds to an hour, it applies that setting on its own, and it keeps it until the controller sends a real command.
| Equipment | Normally | If contact is lost | Why |
|---|---|---|---|
| Return pump | Runs its flow program | Keeps running | Stopping it stops filtration and gas exchange. |
| Heater | Heats to the set temperature | Turns off | A heater stuck on can kill livestock within hours, while a tank cools slowly. |
| Doser | Doses on schedule | Stops | A missed dose is safer than an overdose. |
| Light | Follows the controller’s program | Keeps its own program | The day and night cycle goes on. |
From the recommended settings in Open Aquarium Fail-Safe BehaviorPDF, revision 0.2. Owners can change them.
One set of specifications. Two ways in.
If you keep an aquarium
- Choose equipment from any maker that implements the specifications, and have it work together.
- Keep full control with no internet connection, no cloud account, and no app from one company.
- Take your history with you: measurements, lab results, livestock, and maintenance, in one open format with explicit units.
- Get firmware updates that are signed, and never forced.
If you build equipment or software
- Implement the specifications without permission or payment, with royalty-free patent commitments from their contributors.
- Test against schemas, test vectors, validators, and a module bus simulator that runs without hardware.
- Start from the reference designs, licensed so you can combine them with your own parts in your own products.
- Help a specification reach Approved: each one needs two independent implementations that work together.
The work so far.
Sixteen specifications in two areas, and a library that implements them. All early, and all open.
Monitoring and control
Controllers and connected equipment from any maker, working together and failing safe.
Connectivity
Functions
Hardware interfaces
All sixteen are Pre‑Drafts: candidate documents, open for comment. How a specification is approved
Control hardware
A wired bus for modules, isolated probe ports, devices on the local network, and switched mains outlets, each with what it does when something fails, and open reference designs in progress.
See the hardwareData Model library
A Python library that reads, writes, validates, converts, and merges Data Model documents, and imports CSV files and laboratory ICP results.
Help write the first drafts.
Read a draft and open an issue. Try the Data Model with your own tank’s data. Build something that reads or writes it.