Skip to content

Releases: Pioreactor/pioreactor

23.12.4rc1

04 Dec 20:14
Compare
Choose a tag to compare
23.12.4rc1 Pre-release
Pre-release

23.12.4rc1

23.12.4rc0

04 Dec 20:05
Compare
Choose a tag to compare
23.12.4rc0 Pre-release
Pre-release

23.12.4rc0

23.11.29

29 Nov 15:21
Compare
Choose a tag to compare

23.11.29

  • fix for exporting data from the UI

23.11.28

29 Nov 00:55
Compare
Choose a tag to compare

23.11.28

Breaking changes

Enhancements

  • Both "Target OD" and "Target nOD" displayed and editable in the UI.
  • Previously, if the LED channel was locked (most common when OD reading was running), then any changes to the LED intensity (via the UI) would be silently rejected. This is changed: we have added retry logic that will attempt to keep changing it a few more times (hopefully to avoid the lock)
  • Added some light form validation in the automations dialog in the UI.
  • New environment variable to skip loading plugins, SKIP_PLUGINS. Useful for debugging. Ex:
    SKIP_PLUGINS=1 pio run stirring
    

Bug Fixes

  • Fix experiment profile validation error
  • The "Stop" button is always available now in the "Dosing" tab for "Manage all Pioreactors".
  • Fix for Ngrok remote access.
  • Fixed a race condition between starting an automation and not getting OD data in time.
  • The automation form in the UI for pid_morbidostat was missing volume, that's been added now.

23.11.18

18 Nov 21:45
Compare
Choose a tag to compare

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.18rc0

18 Nov 14:35
Compare
Choose a tag to compare
23.11.18rc0 Pre-release
Pre-release

Upcoming

  • 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.

23.11.15rc0

16 Nov 01:51
Compare
Choose a tag to compare
23.11.15rc0 Pre-release
Pre-release

Upcoming

  • 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.

23.11.08

08 Nov 17:28
Compare
Choose a tag to compare

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.

  • Experiment profiles now supports changing LEDs like any other job (i.e. they can use start, update and stop directives). See example here.

  • 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! Its easier to unwanted users to get onto this wifi

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

23.11.06rc0

06 Nov 17:08
Compare
Choose a tag to compare
23.11.06rc0 Pre-release
Pre-release

Upcoming

  • fix bug in timeout in Stirrer.block_until_rpm_is_close_to_target that wasn't using it correctly.
  • Workers can now also be the local-access-point (aka the "router" in a network). Previously only leaders could.
  • Slight change to the API initialization of ADCReader. Take a look if you were using that class.
  • 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.
  • Experiment profiles now supports changing LEDs like any other job (i.e. they can use start, update and stop directives). See example here.
  • 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!

23.10.23

23 Oct 14:09
Compare
Choose a tag to compare

23.10.23

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.

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.