New Pioreactor release: 24.1.26

24.1.26

Conditionals and expressions in experiment profiles!

  • adding if directives to experiment_profiles, with dynamic expressions. See full docs here
...
   stirring:
     actions:
       ...
       - type: update
         hours_elapsed: 12.0
         if: pio1:od_reading:od1.od > 2.0
         options:
           - target_rpm: 600
  • adding dynamic options via expressions, see full docs here
...
   stirring:
     actions:
       ...
       - type: update
         hours_elapsed: 12.0
         options:
           - target_rpm: ${{ pio1:stirring:target_rpm * 1.1 }}

Breaking changes

Breaking changes to experiment profiles:

  1. the common block requires a jobs block. Previously:

    experiment_profile_name: demo_stirring_example
    
    metadata:
      author: Cam Davidson-Pilon
      description:
    
    common:
      stirring:
        actions:
          - type: start
            hours_elapsed: 0.0
            options:
              target_rpm: 400.0
    

    Now:

    experiment_profile_name: demo_stirring_example
    
    metadata:
      author: Cam Davidson-Pilon
      description:
    
    common:
     jobs:            # this text is required
       stirring:
         actions:
           - type: start
             hours_elapsed: 0.0
             options:
               target_rpm: 400.0
    
  2. labels has moved into the pioreactors block. Previously,

    experiment_profile_name: simple_stirring_example
    
    labels:
     worker1: PR-001
    
    metadata:
      author: John Doe
      description:
    
    pioreactors:
      worker1:
        jobs: {}
    

    Now,

    experiment_profile_name: simple_stirring_example
    
    metadata:
      author: John Doe
      description:
    
    pioreactors:
      worker1:
        label: PR-001
        jobs: {}
    

    Related, you can’t use the label as an alias in the pioreactor block.

    Need a hand updating your profiles? Let us know, support@pioreactor.com!

  • removing ODReadings.latest_od_reading and it’s replaced by ODReadings.ods.
  • removed the topic pioreactor/{unit}/.../od_readings/od/{channel}. Use pioreactor/{unit}/.../od_readings/od1 or pioreactor/{unit}/.../od_readings/od2. This change was made to fit more and more published data into the same format (and it makes od1 and od2 published settings on ODReader)

Enhancements

  • ods, od1, od2 now a published settings of ODReadings.
  • when a worker is first turned on, and pre-connected to a cluster, the LED is turned on to give some feedback to the user.
  • using the 2023-12-11 RPi base image

Bug fixes

  • fixed the UI crashing if trying to edit a blank experiment profile

Experimental builds

We’ve released new 64 bit builds, and a 64 bit “headful” build. These builds are experimental, and require a RPi4, RPi5, or RPi400 due to their larger memory requirements.

  • 64 bit leader-worker and worker builds will be marginally more performant, at the cost of some additional memory consumption.
  • The “headful” leader-worker build allows you to attach a monitor, keyboard, mouse, etc. to the Raspberry Pi and use it as an interface for your cluster.

These builds are available only on our nightly page.

How to update:

Here’s a few methods to update your software: Updating the Pioreactor software | Pioreactor Docs