This release is a pre-release and may not be stable for production use.
openreactor
Supervise benchtop lab reactors from a Raspberry Pi: temperature, mixing, dosing and water chemistry, with recorded runs.
Overview
openreactor runs batch and semi-batch reactors on the bench, for biology, wet chemistry and thermal work such as melting and curing. It reads sensors and drives heaters, motors and pumps over I2C from a Raspberry Pi, and records each run.
In 2.0, the heater and motor boards run their own control loops and stop their outputs if they lose contact with the Pi. openreactor supervises them: it applies setpoints and profiles, reads water-chemistry sensors, records each run, and stops every output on request.
Status
2.0 is being rewritten on main and is not usable yet. Progress is tracked in
#17.
For a working install, use 1.x: the latest release is
v1.2.1, and the
1.x branch has its setup
and usage instructions.
Development
git clone https://github.com/uwo-fast/openreactor.git
cd openreactor
just setup # create the environment
just check # format check, lint, type-check
just test # run the tests
To validate a configuration file, run
just run check-config examples/openreactor.toml. The example lists every
setting with a comment. just --list shows the other recipes. Optionally, install the pre-commit hooks
with pre-commit install.
Contributing
Contributions are welcome. See the organization contribution guide.
Citation
If you use openreactor in your work, please cite it. Use the Cite this
repository button on GitHub, or see CITATION.cff.
Acknowledgements
openreactor was originally written by Etienne Michels, Wilson J. Holmes and Finn Hafting in the MOST Research Group.
Icons from Feather; open source logo from Remix Icon.
License
Copyright © 2021–2026 the openreactor contributors.
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version. See LICENSE.
It was first released in 2021 under GPL-2.0-only by the MOST Research Group. In January 2025 the FAST Research Group reworked it and relicensed it under the AGPL-3.0, so that improvements stay available to everyone who uses it.
Contact
Maintained by the FAST research group. For research collaboration inquiries, contact Dr. Joshua Pearce (joshua.pearce@uwo.ca).
Metadata
Release files for openreactor 2.0.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openreactor-2.0.0a1.tar.gz | 21.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openreactor-2.0.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.1 kB
Release files / openreactor-2.0.0a1.tar.gz
| Download URL | openreactor-2.0.0a1.tar.gz |
|---|---|
| Size | 21.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13b26fd7577702e95e1332aba1e4109cee19a0d3062f1711c8e441222702afcb
|
|
BLAKE2b-256 checksum How to use checksums |
448beb79d73a3b241086742897d968ad81e57052973c262e8991e546ec705bbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / openreactor-2.0.0a1-py3-none-any.whl
| Download URL | openreactor-2.0.0a1-py3-none-any.whl |
|---|---|
| Size | 21.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac0112a0e9eaf4b8f5eb1392d70bb55f0dc81befc10cc7f9f88e766fdbfb1124
|
|
BLAKE2b-256 checksum How to use checksums |
eee62577e155f9d9e118993de00458a3373ca23c5c56143191c4cf6ac477144f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log