Skip to main content
Pre-release

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.

License: AGPL-3.0-or-later Contributions welcome

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

Needs uv and just.

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)

Source distribution for openreactor 2.0.0a1
File Size Uploaded
openreactor-2.0.0a1.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openreactor 2.0.0a1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

2.0.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page