Skip to content

Releases: Pioreactor/pioreactor

24.5.31

31 May 17:03
Compare
Choose a tag to compare

24.5.31

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
Compare
Choose a tag to compare
24.5.31rc0 Pre-release
Pre-release

Important

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

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

24.5.20rc0

21 May 02:11
Compare
Choose a tag to compare
24.5.20rc0 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.
  • 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. Now, this will now always be pioreactor-<leader-name>.
  • 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.

24.5.13

13 May 19:46
Compare
Choose a tag to compare

24.5.13

Important

We strongly recommend you be on 24.5.1 (the previous release) before updating. If not, update to 24.5.1 first!

Enhancements

  • UI chart legend's will support more than 8 Pioreactors.
  • UI chart colors are consistent across charts in the Overview.
  • reduce the severity of some messages, so there will be less pop-ups in the UI.
  • UI performance improvements.
    • Upgraded to React 18.3.1
    • Removed unused dependencies
  • UI's code sections use syntax-highlighting and other nicer features for editing yaml and ini files.
  • App performance improvements
    • Upgrade paho-mqtt to 2.1
    • faster pio kill
    • faster job start from UI
  • more humane error messages.
  • updated temperature inference model.
  • added exponentiation ** to profile expressions. Ex: ${{ pio1:growth_rate_calculating:growth_rate.growth_rate ** 0.5 }}
  • added random() to profile expressions. This returns a number between 0 and 1. Ex: ${{ 25 + 25 * random() }}

Bug fixes

  • fix pio plugins not working on workers.
  • fix enable_dodging_od=0 for background jobs that can dodge OD.
  • fix PWM jobs not cleaning up correctly if too many jobs try to end at the same time.
  • fix pio kill not returning the correct count of jobs being killed.
  • fix older Pioreactor HATs, with the ADS1115 chip, not have the method from_voltage_to_raw_precise.
  • fix "Manage all" not sending the correct dosing command to workers.

24.5.13rc1

13 May 15:11
Compare
Choose a tag to compare
24.5.13rc1 Pre-release
Pre-release

Upcoming

Enhancements

  • UI chart legend's will support more than 8 Pioreactors.
  • UI chart colors are consistent across charts in the Overview.
  • reduce the severity of some messages, so there will be less pop-ups in the UI.
  • UI performance improvements.
    • Upgraded to React 18.3.1
    • Removed unused dependencies
  • UI's code sections use syntax-highlighting and other nicer features for editing yaml and ini files.
  • App performance improvements
    • Upgrade paho-mqtt to 2.1
    • faster pio kill
    • faster job start from UI
  • more humane error messages.
  • updated temperature inference model.
  • added exponentiation ** to profile expressions. Ex: ${{ pio1:growth_rate_calculating:growth_rate.growth_rate ** 0.5 }}
  • added random() to profile expressions. This returns a number between 0 and 1. Ex: ${{ 25 + 25 * random() }}

Bug fixes

  • fix pio plugins not working on workers.
  • fix enable_dodging_od=0 for background jobs that can dodge OD.
  • fix PWM jobs not cleaning up correctly if too many jobs try to end at the same time.
  • fix pio kill not returning the correct count of jobs being killed.
  • fix older Pioreactor HATs, with the ADS1115 chip, not have the method from_voltage_to_raw_precise.
  • fix "Manage all" not sending the correct dosing command to workers.

24.5.13rc0

13 May 14:59
Compare
Choose a tag to compare
24.5.13rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • UI chart legend's will support more than 8 Pioreactors.
  • UI chart colors are consistent across charts in the Overview.
  • reduce the severity of some messages, so there will be less pop-ups in the UI.
  • UI performance improvements.
    • Upgraded to React 18.3.1
    • Removed unused dependencies
  • UI's code sections use syntax-highlighting and other nicer features for editing yaml and ini files.
  • App performance improvements
    • Upgrade paho-mqtt to 2.1
    • faster pio kill
    • faster job start from UI
  • more humane error messages.
  • updated temperature inference model.
  • added exponentiation ** to profile expressions. Ex: ${{ pio1:growth_rate_calculating:growth_rate.growth_rate ** 0.5 }}
  • added random() to profile expressions. This returns a number between 0 and 1. Ex: ${{ 25 + 25 * random() }}

Bug fixes

  • fix pio plugins not working on workers.
  • fix enable_dodging_od=0 for background jobs that can dodge OD.
  • fix PWM jobs not cleaning up correctly if too many jobs try to end at the same time.
  • fix pio kill not returning the correct count of jobs being killed.
  • fix older Pioreactor HATs, with the ADS1115 chip, not have the method from_voltage_to_raw_precise.
  • fix "Manage all" not sending the correct dosing command to workers.

24.5.1

01 May 16:52
Compare
Choose a tag to compare

Important

We strongly recommend you be on 24.4.11 (the previous release) before updating. If not, update to 24.4.11 first!

24.5.1

Highlights

  • initial support for Pioreactor 20ml v1.1! This is our latest iteration of Pioreactor. Even though it's a minor 0.x release, there's lots of positives about it. We encourage you to check out the upgrade kit here.
  • some further support for tracking the model and version of the Pioreactor you are using. Users can change the version in the config file. For example:
[pioreactor]
model=pioreactor_20ml
version=1.1

If you have a mixed cluster (some 1.0, some 1.1), then you should put this configuration in the unit specific config files.

  • For v1.1: New temperature inference algorithm makes reaching the thermostat setpoint quicker, and the Pioreactor can reach higher temperatures (our internal testing could easily reach up to 45C in a cool room). This algorithm uses the magic of ✨statistics✨. We may update the themostat PID values in the future, but the default ones work okay for now. A Pioreactor v1.0 update for this algorithm should come out soon, too.

Enhancements

  • When using turbidostat, there is now a small moving average filter on the raw OD readings. This will prevent the turbidostat from firing when an OD outlier occurs.
  • MQTT data is no long persisted between leader power-cycles. This was the cause of a lot of bad UI state issues where users couldn't interact with the Pioreactor via the UI after a power-cycle (intentional or not). We originally persisted the data since we previously used MQTT as more like a database, but our engineering style has moved away from that idea, and we now only use MQTT for "ephemeral" data. Taking out the persistent MQTT data forces this style change. Users shouldn't notice anything different.
  • The leader is now the source-of-truth for the cluster's clocks. For example, when a worker boots up, it will ask the leader what the time is, and will periodically continue asking. If the leader has access to the internet, it will pull the correct time (and periodically continue asking). If the leader doesn't have access to the internet, it will use the default time on the Pi. This solves the problem of workers' clocks getting out of sync when powered down, especially in a local-access-point network.
    ![https://i.imgur.com/vt5gxyy.png]
  • Lots of small UI improvements, including accessibility, empty-state, and loading improvements.
  • Previously, we would "kick" stirring by forcing the DC% to 100% for a moment, and then increasing the running DC% slightly. Going forward, we'll actually try the following when the
    sensor fails to read a signal: DC% to 0%, then DC% to 100%, and then a slight increase in the DC%. Why?
    • If the mixing fan has stalled, setting the DC% to 0% does nothing, since the fan is already stopped.
    • If the mixing fan is running, but the stir bar isn't in sync, this step will align the stir bar and fan again.
    • If the mixing fan is running too fast, but the sensor isn't reading it, this allows for a small pause.
  • The recommend way to upgrade Pioreactors and clusters is now using release archives. We have more control over the upgrade process this way. However, users are still welcome use the command line, pio update, which is what we use in house.
  • A chart legend's in the UI now displays the entire name of the worker, if there is enough room.

Breaking changes

  • Temporary Pioreactor labels, set in the UI, are now unique across an experiment.
  • config max_volume_to_warn was removed, it's now hardcoded as 90% of max_volume_to_stop

Bug fixes

  • Fix pio ... commands that displayed the CLI options not working on workers.
  • Potential fix for heater continuing to be on after requested to be turned off.

24.5.1rc0

01 May 13:18
Compare
Choose a tag to compare
24.5.1rc0 Pre-release
Pre-release

Upcoming

Highlights

  • initial support for Pioreactor 20ml v1.1! This is our latest iteration of Pioreactor. Even though it's a minor 0.x release, there's lots of positives about it. We encourage you to check out the upgrade kit here.
  • some further support for tracking the model and version of the Pioreactor you are using. Users can change the version in the config file. For example:
[pioreactor]
model=pioreactor_20ml
version=1.1

If you have a mixed cluster (some 1.0, some 1.1), then you should put this configuration in the unit specific config files.

  • For v1.1: New temperature inference algorithm makes reaching the thermostat setpoint quicker, and the Pioreactor can reach higher temperatures (our internal testing could easily reach up to 45C in a cool room). This algorithm uses the magic of ✨statistics✨. We may update the themostat PID values in the future, but the default ones work okay for now. A Pioreactor v1.0 update for this algorithm should come out soon, too.

Enhancements

  • When using turbidostat, there is now a small moving average filter on the raw OD readings. This will prevent the turbidostat from firing when an OD outlier occurs.
  • MQTT data is no long persisted between leader power-cycles. This was the cause of a lot of bad UI state issues where users couldn't interact with the Pioreactor via the UI after a power-cycle (intentional or not). We originally persisted the data since we previously used MQTT as more like a database, but our engineering style has moved away from that idea, and we now only use MQTT for "ephemeral" data. Taking out the persistent MQTT data forces this style change. Users shouldn't notice anything different.
  • The leader is now the source-of-truth for the cluster's clocks. For example, when a worker boots up, it will ask the leader what the time is, and will periodically continue asking. If the leader has access to the internet, it will pull the correct time (and periodically continue asking). If the leader doesn't have access to the internet, it will use the default time on the Pi. This solves the problem of workers' clocks getting out of sync when powered down, especially in a local-access-point network.
    ![https://i.imgur.com/vt5gxyy.png]
  • Lots of small UI improvements, including accessibility, empty-state, and loading improvements.
  • Previously, we would "kick" stirring by forcing the DC% to 100% for a moment, and then increasing the running DC% slightly. Going forward, we'll actually try the following when the
    sensor fails to read a signal: DC% to 0%, then DC% to 100%, and then a slight increase in the DC%. Why?
    • If the mixing fan has stalled, setting the DC% to 0% does nothing, since the fan is already stopped.
    • If the mixing fan is running, but the stir bar isn't in sync, this step will align the stir bar and fan again.
    • If the mixing fan is running too fast, but the sensor isn't reading it, this allows for a small pause.
  • The recommend way to upgrade Pioreactors and clusters is now using release archives. We have more control over the upgrade process this way. However, users are still welcome use the command line, pio update, which is what we use in house.
  • A chart legend's in the UI now displays the entire name of the worker, if there is enough room.

Breaking changes

  • Temporary Pioreactor labels, set in the UI, are now unique across an experiment.
  • config max_volume_to_warn was removed, it's now hardcoded as 90% of max_volume_to_stop

Bug fixes

  • Fix pio ... commands that displayed the CLI options not working on workers.
  • Potential fix for heater continuing to be on after requested to be turned off.