Releases: Pioreactor/pioreactor
24.7.7
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
24.7.5rc0
Testing hotfix for numpy 2.0 incompatibility.
24.7.3
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
whenaction 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.configthat 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
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
whenaction 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.configthat 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
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_testhas a new flag--retry-failedto 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:
- we max the queue of unsent messages to 100 (arbitrary)
- in important jobs, like temperature automations, it will only respond to "recent" messages and not old messages.
24.6.10rc0
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_testhas a new flag--retry-failedto 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:
- we max the queue of unsent messages to 100 (arbitrary)
- in important jobs, like temperature automations, it will only respond to "recent" messages and not old messages.
24.5.31
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-namepage 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
Upcoming
Highlights
- New /pioreactor/
worker-namepage 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
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=1in 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:
This doesn't set the port and proto, that involves changing settings in the lighttpd configuration.
[ui] port=80 proto=http
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-activeusing 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 topioreactor-<leader-name>after the next reboot.
24.5.22rc0
Upcoming
Enhancements
- Significant performance increase by using
force_turbo=1in 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:
This doesn't set the port and proto, that involves changing settings in the lighttpd configuration.
[ui] port=80 proto=http
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-activeusing 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 topioreactor-<leader-name>after the next reboot.