Releases: Pioreactor/pioreactor
Releases · Pioreactor/pioreactor
24.5.31
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
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
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:
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-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 topioreactor-<leader-name>
after the next reboot.
24.5.22rc0
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:
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-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 topioreactor-<leader-name>
after the next reboot.
24.5.20rc0
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:
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-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 topioreactor-<leader-name>
after the next reboot. Now, this will now always bepioreactor-<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
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
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
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
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% ofmax_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
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% ofmax_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.