Pioreactor

Latest version: v24.12.10

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 17

23.10.23

Not secure
Bookworm release!

The Raspberry Pi Foundation provides new operating system every few years (built off of Debian's work). Earlier this month, they released RPi OS Bookworm. There are lots of nice changes, but the important details for us:

- New Python version
- New GPIO libraries
- New local-access-point improvements

**We strongly recommend you upgrade to this release. However, upgrading to this new operating system requires a full SD rewrite. See steps below on how to preserve and transfer your data**.


Optimizations

With some other optimizations, we have significantly improved the performance and responsiveness of the Pioreactor software. You should notice things will feel snappier! For example, the command-line responsiveness is about 33% faster, which means actions from the the UI will start faster. Because of this new performance, we can even squeeze some more data into our algorithms and get improved accuracy.

Along with Python being faster, our database is also faster now => faster inserts, UI graphs, and data exports.


Export and import your existing data into a new image

Note: you don't _need_ to do this. This is only if you want to move existing data to the new Pioreactor.

See instructions [here](https://docs.pioreactor.com/user-guide/export-import-existing-data).


Full Changelog

- Replaced `RPi.GPIO` with `lgpio`
- Python 3.9 is replaced by 3.11
- Ability to choose the x-axis scale in the UI Overview: clock time, or elapsed time. Use (or add) `time_display_mode` under section `[ui.overview.settings]`, with values `clock_time` or `hours` respectively.
- Fixed bug that was not clearing OD blanks from the UI
- dropped RaspAP for a native solution. The native solution is much simpler, and should show up faster than our RaspAP solution.
- If your leader Raspberry Pi has an ethernet port, you can connect this into an internet-accessible router and give your cluster access to the internet!
- Updated lots of our Python dependencies
- Improved start up time by hiding dependencies
- Added database table to track experiment profile starts.

23.10.12

Not secure
Bug fixes
- Web server was crashing on start! Solution was to upgrade flask.

23.10.10

Not secure
Bug fixes

- Fix bug that wasn't allowing for manual dosing / LED updates.
- Fix bug that was disconnecting workers with using "stop all activity" in the UI when pumps were running.

Enhancements

- `pios update` now has a `--source` parameter.

23.10.5

Not secure
Bug fixes

- Fix an OD calibration bug that would produce an extremely high value when the signal was below the minimum signal (the blank) during OD calibration.
- IPv4 is really IPv4 now.

Enhancements

- Adding ability to install plugins by name via the UI.
- New tools to update Pioreactors on a local access point. More docs coming soon!
- New `turbidostat_targeting_od` dosing automation. This is just like the existing `turbidostat`, but
targets the raw OD instead of normalized OD. This is most useful post-OD calibration.
- In the UI, the dosing automation "Turbidostat" has been renamed "Turbidostat Targeting nOD"

23.9.20

Not secure
The previous change:

> - Base automations now subclass from `pioreactor.automations.BaseAutomationJob`. You may need to change custom automation imports from, for example, `from pioreactor.automations import DosingAutomationJobContrib` to `from pioreactor.automations.dosing.base import DosingAutomationJobContrib`

had an import error that we didn't see in testing. We changed this to:

- Base automations now subclass from `pioreactor.automations.base.AutomationJob`.
- Fix bug on /updates page.

23.9.19

Not secure
- When installing plugins, any leader-only commands would not be run. This is fixed.
- Base automations now subclass from `pioreactor.automations.BaseAutomationJob`. You may need to change custom automation imports from, for example, `from pioreactor.automations import DosingAutomationJobContrib` to `from pioreactor.automations.dosing.base import DosingAutomationJobContrib`
- Fixed bug that ignored `.yml` files in the UI.
- Improvements to experiment profiles, both in the UI and in the backend. Executing now verifies common mistakes in experiment profiles before it runs.
- Fixed a bug that could cause controllers to have a disconnected automation. 422
- SPI is on by default on all new image installs
- Plugin author information is presented on the `/plugins` page in the UI.

Page 6 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.