New Pioreactor release: 24.2.26



  • Experimental introducing outlier filtering in growth rate calculations. This is tunable with the new ekf_outlier_std_threshold parameter under [growth_rate_calculating.config]. To turn off outlier filtering, set this parameter to some very large number (1000s). Don’t put it less than 3.0 - that’s silly.

  • With this new filtering, we can provide more reasonable values for the parameters of the growth rate Kalman filter. We previously had to artificially increase the measurement std. deviation (obs_std) to allow for some outliers. This had the knock-on effect of hiding growth-rate changes, so we had to also increase that parameter rate_std. With better outlier protection in the model, we can move these values back. New installs will have the following parameters, and we encourage existing users to try these values if you plan to use the outlier filtering.

  • added configuration for alternative mqtt brokers with the new configuration



  • clear the growth-rate cache with pio run growth_rate_cacluating clear_cache
  • added Pioreactor specific software version to the UI: Page Pioreactors → Manage → System → Version. this requires a restart to display correctly
  • new UI MQTT library. Is it faster? Maybe!
  • increased the default max_subdose to 1.0.

Bug fixes

  • fixed a case where dosing automation IO execution would not run due to a floating point rounding error. Sorry!
  • fixed a memory leak in long running dosing automations that had thousands of dosing events. Sorry!
  • fixed a race condition that caused an error to occur when a software PWM channel was closed too quickly. Sorry!
  • fixed bug that was partially crashing the UI if some bad syntax was entered into a custom yaml file. Sorry!
  • fixed bug that was causing bad json from the server, causing empty / non-loading areas in the UI. Sorry!
  • fixed datum bug in the Overview that was crashing the UI. Sorry!

How to update

Some notes, post-release:

  • If you’re using ngrok or tailscale for remote access, the mqtt config has changed. See some changes to the docs, specfically broker_address: Setting up remote access | Pioreactor Docs
  • There is likely a (existing) bug when using the achive-update method and distributing the archive to the workers. Here’s a workaround if you get errors on the workers:
    # run these commands on your leader
    pios cp /tmp/
    pios update --source /tmp/ -y
  • You may see a warning message “Unable to set versions in monitor. versions is read-only” - ignore that. This is related to the note “this requires a restart to display correctly” above.