Skip to content

Releases: Pioreactor/pioreactor

24.7.7

05 Jul 16:51

Choose a tag to compare

24.7.5 & 24.7.6 & 24.7.7

Hotfix release for 24.7.3. This pins blinka to a specific version which does not install numpy.

24.7.5rc0

05 Jul 14:27
6262f07

Choose a tag to compare

24.7.5rc0 Pre-release
Pre-release

24.7.5rc0

Testing hotfix for numpy 2.0 incompatibility.

24.7.3

03 Jul 19:55

Choose a tag to compare

24.7.3

Enhancements

  • A new live preview in the UI's experiment profile editor. This preview tool is useful for getting immediate feedback when writing a profile. We'll keep on adding to this to improve the edit-profile workflow - please send us feedback!
  • new when action type in experiment profiles that will execute an action (or list of actions) when some expression is true. For example, start a chemostat when a threshold OD is first achieved, log a message when event is triggered, or monitor a bioreactor parameter and execute an action if it goes out of bounds.
  • New config turbidostat.config that can be used to modify some internal turbidostat settings:
    [turbidostat.config]
    signal_channel=2
    od_smoothing_ema=0.5
    
  • Better user interaction on the Pioreactors page when the assigned experiment and "viewing" experiment are different.
  • Select / Deselect all Pioreactors to assign to an experiment faster.
  • Added unit() function to experiment profiles expressions that returns the unit name the expression is evaluated for. Ex: if: ${{ unit() == worker01 }}.
  • Added job_name() function to experiment profiles expressions that returns the job_name the expression is evaluated for. Ex: if: ${{ job_name() == stirring }}.
  • Added experiment() function to experiment profiles expressions that returns the experiment the expression is evaluated for. Ex: if: ${{ experiment() == exp001 }}.

Breaking changes

  • significant web backend API changes! See list of rules in docs.

Bug fixes

  • Fix UI code editor from being unresponsive when all the text was removed.
  • Experiment profiles won't be overwritten if providing the same filename as an existing profile.

24.7.3rc0

03 Jul 17:29

Choose a tag to compare

24.7.3rc0 Pre-release
Pre-release

Upcoming

Highlights

  • A new live preview in the UI's experiment profile editor. This preview tool is useful for getting immediate feedback when writing a profile. We'll keep on adding to this to improve the edit-profile workflow - please send us feedback!
  • new when action type in experiment profiles that will execute an action (or list of actions) when some expression is true. For example, start a chemostat when a threshold OD is first achieved, log a message when event is triggered, or monitor a bioreactor parameter and execute an action if it goes out of bounds.

Enhancements

  • New config turbidostat.config that can be used to modify some internal turbidostat settings:

    [turbidostat.config]
    signal_channel=2
    od_smoothing_ema=0.5
    
  • Better user interaction on the Pioreactors page when the assigned experiment and "viewing" experiment are different.

  • Select / Deselect all Pioreactors to assign to an experiment faster.

  • Added unit() function to experiment profiles expressions that returns the unit name the expression is evaluated for. Ex: if: ${{ unit() == worker01 }}.

  • Added job_name() function to experiment profiles expressions that returns the job_name the expression is evaluated for. Ex: if: ${{ job_name() == stirring }}.

  • Added experiment() function to experiment profiles expressions that returns the experiment the expression is evaluated for. Ex: if: ${{ experiment() == exp001 }}.

Breaking changes

  • significant web backend API changes! See list of rules in docs.

Bug fixes

  • Fix UI code editor from being unresponsive when all the text was removed.
  • Experiment profiles won't be overwritten if providing the same filename as an existing profile.

24.6.10

10 Jun 19:20

Choose a tag to compare

Important

We strongly recommend you be on 24.5.1 or higher before updating. If not, update to 24.5.1 first!

Enhancements

  • we changed the "auto" algorithm for picking a good ir_led_intensity. We now try to maximize the intensity, up to some constraints around saturating ADCs, LED longevity, and signal. In general, we expect a higher IR intensity, but this will help with noise and detecting lower signals.
  • More improvements on the Pioreactor-specific page: added charts and a logs table.
  • Added a "retry failed tests" to the UI's self-test dialog.
  • pio run self_test has a new flag --retry-failed to only retry tests that failed in the previous run (if any).
  • better clean up when a worker is removed from a cluster.
  • reduce the mosquitto logs to reduce writes to disk and speed up connections.
  • Use lexicographical ordering for all displays of workers in the UI
  • This only applies to new installed images, and not updates. Updated to the latest RPI image, 2024-03-15, -> linux kernel update to 6.6. Recent versions of linux have improved support for usb wifi devices.
  • This only applies to new installed images, and not updates. leader-only images will install worker Python libraries.
  • This only applies to new installed images, and not updates. all experiment data will be deleted when the experiment is deleted.
  • performance improvements

Breaking changes

  • Changed the web backend API endpoints for time-series, logs, shutdown, reboot, and plugins to be more RESTful. See docs for updated rules in the docs.

Bug fixes

  • fix performing an "undo" when editing the config.ini and experiment profiles.
  • fix Pioreactor v1.1 bug when change target temperature mid cycle causing the inferred temperature to change significantly.
  • if a worker disconnected from the network, messages are queued in memory until the network reconnects. This has two problems. The first is that there is a finite amount of memory, and we don't want to OOM. The second is that when the worker(s) reconnect, there is a flurry of messages. For some jobs that use messages as events, this can cause multiple triggers in quick succession. We've added some logic that helps avoid these situations:
    1. we max the queue of unsent messages to 100 (arbitrary)
    2. in important jobs, like temperature automations, it will only respond to "recent" messages and not old messages.

24.6.10rc0

10 Jun 15:11

Choose a tag to compare

24.6.10rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • we changed the "auto" algorithm for picking a good ir_led_intensity. We now try to maximize the intensity, up to some constraints around saturating ADCs, LED longevity, and signal. In general, we expect a higher IR intensity, but this will help with noise and detecting lower signals.
  • More improvements on the Pioreactor-specific page: added charts and a logs table.
  • Added a "retry failed tests" to the UI's self-test dialog.
  • pio run self_test has a new flag --retry-failed to only retry tests that failed in the previous run (if any).
  • better clean up when a worker is removed from a cluster.
  • reduce the mosquitto logs to reduce writes to disk and speed up connections.
  • Use lexicographical ordering for all displays of workers in the UI
  • This only applies to new installed images, and not updates. Updated to the latest RPI image, 2024-03-15, -> linux kernel update to 6.6. Recent versions of linux have improved support for usb wifi devices.
  • This only applies to new installed images, and not updates. leader-only images will install worker Python libraries.
  • This only applies to new installed images, and not updates. all experiment data will be deleted when the experiment is deleted.
  • performance improvements

Breaking changes

  • Changed the web backend API endpoints for time-series, logs, shutdown, reboot, and plugins to be more RESTful. See docs for updated rules in the docs.

Bug fixes

  • fix performing an "undo" when editing the config.ini and experiment profiles.
  • fix Pioreactor v1.1 bug when change target temperature mid cycle causing the inferred temperature to change significantly.
  • if a worker disconnected from the network, messages are queued in memory until the network reconnects. This has two problems. The first is that there is a finite amount of memory, and we don't want to OOM. The second is that when the worker(s) reconnect, there is a flurry of messages. For some jobs that use messages as events, this can cause multiple triggers in quick succession. We've added some logic that helps avoid these situations:
    1. we max the queue of unsent messages to 100 (arbitrary)
    2. in important jobs, like temperature automations, it will only respond to "recent" messages and not old messages.

24.5.31

31 May 17:03

Choose a tag to compare

24.5.31

Important

We strongly recommend you be on 24.5.1 or higher before updating. If not, update to 24.5.1 first!

Highlights

  • New /pioreactor/worker-name page in the UI for a detailed view of an individual Pioreactor, including a realtime visualization of the Pioreactor!

Enhancements

  • UI now supports external MQTT broker. This configuration lives in the same place as the exiting MQTT settings: in the config.ini, under [mqtt].
  • Added groupings on the Experiment drop down to organize "Active" and "Inactive" experiments. An active experiment has >= 1 Pioreactor assigned to it.

Breaking changes

  • New log topic that partitions by the level. This should make subscribers to the log topic slimmer (like the UI, who previosly would have to accept all messages and filter to what they needed). Should result in a performance increase.

Bug fixes

  • Fix for Pioreactors page when no workers are added to the cluster.
  • Fix for UI labels when trying to remove labels from Pioreactors.
  • Improvements to REF self-tests.

24.5.31rc0

31 May 15:01

Choose a tag to compare

24.5.31rc0 Pre-release
Pre-release

Upcoming

Highlights

  • New /pioreactor/worker-name page in the UI for a detailed view of an individual Pioreactor, including a realtime visualization of the Pioreactor!

Enhancements

  • UI now supports external MQTT broker. This configuration lives in the same place as the exiting MQTT settings: in the config.ini, under [mqtt].
  • Added groupings on the Experiment drop down to organize "Active" and "Inactive" experiments. An active experiment has >= 1 Pioreactor assigned to it.

Breaking changes

  • New log topic that partitions by the level. This should make subscribers to the log topic slimmer (like the UI, who previosly would have to accept all messages and filter to what they needed). Should result in a performance increase.

Bug fixes

  • Fix for Pioreactors page when no workers are added to the cluster.
  • Fix for UI labels when trying to remove labels from Pioreactors.
  • Improvements to REF self-tests.

24.5.22

22 May 17:13

Choose a tag to compare

24.5.22

Important

We strongly recommend you be on 24.5.1 or higher before updating. If not, update to 24.5.1 first!

Enhancements

  • Significant performance increase by using force_turbo=1 in the Raspberry Pi. Expect a noticeable improvement in interacting with the Pioreactor. This pushes the Pi to always run "hot" (but we aren't overclocking). This does slightly increase the Pi's internal temperature, so be wary about putting the Pioreactor in very hot environment. This settings requires a reboot to take affect.
  • adding support for changing the port and protocol of the Pioreactor UI webserver in the software. Add the following to your config.ini:
    [ui]
    port=80
    proto=http
    
    This doesn't set the port and proto, that involves changing settings in the lighttpd configuration.

Bug fixes

  • more sane defaults for OD reading for v1.1 when using auto.
  • fix pios plugins uninstall
  • fix leader not correctly being identified in pio workers status
  • For RPi Zero W (first gen), sometimes the load_rp2040 script was failing. A new script will retry a few times. This only applies to new images.
  • fix pio workers update-active using the wrong HTTP verb.
  • Fix using ethernet cable to connect Pioreactor to a router: a new simple ethernet nmconnection has been added, and has higher connection priority than the PioreactorLocalLink nmconnection.
  • Fix race conditions occurring between stirring and growth-rate when they were started too quickly.

Known issues

  • When the local access point would start on a fresh boot, the SSID would start as pioreactor, and then change to pioreactor-<leader-name> after the next reboot.

24.5.22rc0

22 May 13:52

Choose a tag to compare

24.5.22rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • Significant performance increase by using force_turbo=1 in the Raspberry Pi. Expect a noticeable improvement in interacting with the Pioreactor. This pushes the Pi to always run "hot" (but we aren't overclocking). This does slightly increase the Pi's internal temperature, so be wary about putting the Pioreactor in very hot environment. This settings requires a reboot to take affect.
  • adding support for changing the port and protocol of the Pioreactor UI webserver in the software. Add the following to your config.ini:
    [ui]
    port=80
    proto=http
    
    This doesn't set the port and proto, that involves changing settings in the lighttpd configuration.

Bug fixes

  • more sane defaults for OD reading for v1.1 when using auto.
  • fix pios plugins uninstall
  • fix leader not correctly being identified in pio workers status
  • For RPi Zero W (first gen), sometimes the load_rp2040 script was failing. A new script will retry a few times. This only applies to new images.
  • fix pio workers update-active using the wrong HTTP verb.
  • Fix using ethernet cable to connect Pioreactor to a router: a new simple ethernet nmconnection has been added, and has higher connection priority than the PioreactorLocalLink nmconnection.
  • Fix race conditions occurring between stirring and growth-rate when they were started too quickly.

Known issues

  • When the local access point would start on a fresh boot, the SSID would start as pioreactor, and then change to pioreactor-<leader-name> after the next reboot.