New Pioreactor release: 24.8.22

24.8.22

:wave: We hightly recommend your cluster be on 24.7.18 before updating!

Enhancements

  • pio logs now includes the UI logs (if run on leader).
  • introduce a new od_reading config,turn_off_leds_during_reading, which enables / disables turning off the other LEDS during an OD snapshot. By default, it is set to 1 (enables).
  • leader-only Pioreactors also have a config_<hostname>.local file now.
  • a new top-level section in experiment profiles, inputs, allows you to define parameters that can be used in expressions. This is useful if you are copy the same constant over an over again, and want a quick way to change it once. Example:
inputs:
  growth_phase_temp: 37.0
  stationary_phase_temp: 30.0
  od_threshold: 1.6

common:
  jobs:
    temperature_automation:
      actions:
        ...
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od < od_threshold }}
          options:
            target_temperature: ${{ stationary_phase_temp }}
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od >= od_threshold }}
          options:
            target_temperature: ${{ growth_phase_temp }}

Bug fixes

  • more resilience to “UI state” diverging from “bioreactor state”. Often, this occurred when two jobs stared almost immediately (often a networking issue), and the last job would halt since it couldn’t get the required resources, however any MQTT data would be overwritten by the last job. Now, multiple places in the request pipeline will reduce duplication and prevent two jobs from starting too close to each other.
  • improved stirring clean up when stopped in quick succession after starting.
  • if a network isn’t found, the monitor job will not stall, but warn and continue.
  • fixed HAT warning for HAT-less leaders.

Breaking changes

  • the RP2040 firmware is now on i2c channel 0x2C (previously 0x30). This is to solve an annoying i2cdetect issue where the i2c channel would lock up.
  • the web server now writes its logs to the same location as the app: /var/log/pioreactor.log. Those wishing to keep the old location can use a new configuration parameter ui_log_file to [logging] section and set it to /var/log/pioreactorui.log.
  • removed psutil and zeroconf Python packages from new images. We replaced their functionality with built-in routines.
  • in config.ini, the section od_config renamed to od_reading.config, and stirring is stirring.config. When you update, a script will run to automatically update these names in your config.inis.

How to update

1 Like

Known issues:

  1. For users that upgraded their cluster: you will likely see the following error from workers

    :red_circle: Unable to find i2c channel 48. Is the HAT attached? Is the firmware loaded

    This is a consequence of the new firmware not being populated to all the Pioreactor processes. The error is harmless, but annoying.

    You can either power-cycle the worker, or run sudo systemctl restart pioreactor_startup_run@monitor.service to fix it (do either after an experiment is concluded, not during an experiment)

  2. On non-leader workers, you’ll see tail: cannot open '' for reading: No such file or directory at the end of pio logs - you can ignore this.