Skip to content

24.5.1

Compare
Choose a tag to compare
@CamDavidsonPilon CamDavidsonPilon released this 01 May 16:52
· 120 commits to master since this release

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.