Pioreactor

Latest version: v24.6.10

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

Scan your dependencies

Page 4 of 15

23.11.18

- No more waiting around for growth-rate-calculating to get to "Ready" state
- The "Label" step in the New Experiment flow is skipped if there is only 1 active Pioreactor in the cluster.
- Silenced the "LED is locked" warning - now it's a DEBUG level message.
- Fixed bug that wasn't passing lists correctly in `TopicToParserToTable`
- Faster boot times.
- Faster UI load times by gzip-ing assets.
- Fixed a bug where a plugin would not be loaded if it's name collided with a module in the stdlib. For example, putting `test.py` in `.pioreactor/plugins` would not be loaded, since when we tried to import `test`, it would load the stdlib's `test`, not the local plugin. This has been fixed.
- Simplify some UI elements.
- Security improvements.
- Reduce the default LED intensity in `light_dark_cycle` from 50% to 5%. This is more appropriate for sparse cultures.
- Fixed a race condition when starting a hotspot with boot config.ini.
- changed how `is_HAT_present` determine is the HAT is on the Pi. Previously, it used the i2c bus to check if the RP2040's firmware was active. This would fail if the HAT was present, but the firmware or i2c wasn't working. Now we check the EEPROM, which is a much more robust test.

23.11.08

- fix bug in `timeout` in `Stirrer.block_until_rpm_is_close_to_target` that wasn't using time correctly.
- Workers can now also be the local-access-point (aka the "router" in a network). Previously only leaders could.
- Experiment profiles now support a `log` directive with some dynamic templating:

- type: log
hours_elapsed: 0.025
options:
message: "{job} increasing to 800 RPM" alerts the message: "stirring increasing to 800 RPM"

See full example [here](https://github.com/Pioreactor/experiment_profile_examples/blob/main/08_logging.yaml).
- Experiment profiles now supports changing LEDs like any other job (i.e. they can use `start`, `update` and `stop` directives). See example [here](https://github.com/Pioreactor/experiment_profile_examples/blob/main/03_dosing_and_leds.yaml).
- Experiment profile clean up. I think there are less bugs!
- `pio clear_cache` now has an `as_int` option to look for ints - useful when clearing caches with ints as keys.
- fix issue where if an extra config.ini was provided in the /boot dir before a worker startup, adding the worker to a cluster would fail due to a permission issue.
- potential fix for RPi 3B and RPi Zeros not connecting to hotspots: change the `proto` to `wpa` in your config.ini on the Pioreactor with the local-access-point, and restart that Pioreactor. You config.ini should look like:


[local_access_point]
ssid=pioreactor
passphrase=raspberry
proto=wpa


**Changing to WPA does weaken the security however! It's easier for unwanted users to get onto this wifi.**

A more robust solution is in the works for RPi 3B and Zeros.

- Slight change to the API initialization of ADCReader. Take a look if you were using that class.

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"

Page 4 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.