New Pioreactor release: 25.4.3 (pulled) & 25.4.11


:bulb: We recommend your cluster be on version 25.3.5 or later before updating

:arrow_down: Download release_25.4.11.zip

25.4.11

  • Fix for heater PCB not shutting down correctly. This was a bug introduced in 25.4.3, and we highly suggest updating to 25.4.11.
  • Fix OD Reading not displaying correctly on Pioreactor pages
  • Fix duplicates in Raw OD Reading chart’s legend
  • Improvements to pump calibration flow that will ask user what volumes they wish to calibrate for.
  • Fix self-test “REF is correct magnitude”
  • self-tests don’t use calibrated OD readings anymore.

25.4.3

:bangbang: This release was pulled due to an issue with the heater PCB.

Enhancements

  • Support for Pioreactor 40mL
    • UI and backend now accommodates the new Pioreactor 40mL. Change the Pioreactor model on the Inventory page.
  • Device models and versions now tracked in the database
    • Models and versions for each Pioreactor are now stored in the workers database table. We’re deprecating the [pioreactor] section in config.ini. You can manage models and versions on the Inventory page.
  • Improvements to dosing automation settings:
    • When starting a dosing automation, you can set the initial and max culture volumes.
  • Raw vs. calibrated OD readings now separated
    • When a calibration is applied in the ODReading job:
      • New MQTT topics are published:
        • od_reading/raw_od1 and od_reading/raw_od2 for raw (un-calibrated) values
        • od_reading/calibrated_od1 and od_reading/calibrated_od2 for calibrated values
    • The raw readings will be stored in new database tables, raw_od_readings. The calibrated values still occupy the table od_readings.
    • Existing topics like od_reading/od1, od_reading/od2, and od_reading/ods remain unchanged, but note they may contain either calibrated or raw data depending on calibration status.
    • To display a chart of the raw OD readings when a calibration is being used, switch the config entry raw_optical_density from 0 to 1 in the section [ui.overview.charts]

Breaking changes

  • Changes to pio workers add
    • This command has been updated to better reflect the new model/version management.
  • Removed config parameter max_volume_to_stop.
    • This is now hardcoded into the software. For 20ml, it’s 18ml, and for 40ml, it’s 38ml.

Bug Fixes

  • Fixed occasional crash on the Overview page in the UI.
  • Stirring dodging now correctly respects the first OD reading.
  • Stirring (and other software PWM-based jobs) now clean up properly more often on disconnect.
  • Fixed issue where dodging background jobs would run a final, incorrect action_to_do_before_reading after OD reading stops.
  • The OD calibration flow now correctly ignores existing calibrations when creating a new one.
  • UI page /pioreactors/<some_unit> now uses that unit’s specific configuration from config_<some_unit>.ini.
  • Fix error “cannot schedule new futures after shutdown” when stopping a dosing automation during a pump execution.
  • Reverted a change to job’s exit protocol introduced in 25.3.5 that would cause on_disconnected to run twice sometimes.
  • Fixed “manual adjustments” pump actions not firing an MQTT event.
  • Fixed OD calibrations using the wrong min, max thresholds.
  • pio calibrations analyze --device od will use regression weights for OD calibrations (like they do during the OD calibration)

Known issues:

  1. OD Readings on the /pioreactor/<unit> page isn’t displaying historical data, only real-time data
  2. 40ml temperature inference can be improved
  3. Raw OD readings chart have duplicates in the legend.
  4. Self-test “Reference PD is the correct magnitude” always fails due to a bug.
  5. Heater PCB is not shutting down correctly. This is a serious bug, and we suggest not updating for the time being. If you have already updated, you can downgrade to 25.3.5, or monitor your Pioreactor’s heater PCB closely.

Hi Cameron!

After updating to 25.4.3, I get the error model_name when I start my Pioreactors and whenever I want to do a temperature automation. I obtain this from the error log:

'model_name' Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/pioreactor/utils/timing.py", line 156, in _execute_function self.function(*self.args, **self.kwargs) File "/usr/local/lib/python3.11/dist-packages/pioreactor/background_jobs/monitor.py", line 265, in self_checks self.check_heater_pcb_temperature() File "/usr/local/lib/python3.11/dist-packages/pioreactor/background_jobs/monitor.py", line 352, in check_heater_pcb_temperature if observed_tmp >= self.MAX_TEMP_TO_SHUTDOWN: ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/pioreactor/background_jobs/monitor.py", line 47, in __get__ return self.fget(objtype) ^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/pioreactor/background_jobs/monitor.py", line 87, in MAX_TEMP_TO_SHUTDOWN whoami.get_pioreactor_model() == "pioreactor_20ml" and whoami.get_pioreactor_version() == (1, 0) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/pioreactor/whoami.py", line 191, in get_pioreactor_model return data["model_name"] ~~~~^^^^^^^^^^^^^^ KeyError: 'model_name'

As well, on the inventory page, I cannot choose the model/version of the Pioreactor, and obtain: Model: Missing! Fix in the configuration file

Thanks!

Hi @jb1404,

You’re the second user today who had this issue. Can I ask:

  1. How did you update your Pioreactors? Via the zip file or over the internet?
  2. Can you check what version of UI you have? On the Updates page, hover over the “Version installed on leader” to see.
  3. Do you have a leader-only Pioreactor in your cluster?

Hi Cameron, thanks for your answer.

-I updated via zip file and UI, as I don’t have internet access.

-I noticed that the UI version is still 25.3.5. I guess that is why I cannot see the option of updating the model version in “Inventory”. Is there any way to install the UI update via the terminal? I already downloaded the pioreactorui_25.4.3file.

-My leader is a leader-worker.

Thanks :slight_smile:

Hi @jb1404,

Can you try updating using this release (it’s a bug fix, and I think solves your issue): release_25.4.9.zip

I tried to update to 25.4.9, however, the updates failed as the model and version cannot be recognized, so with the update I obtain the error ’’model_name’’. I tried this in the UI and in the terminal and did not work in either

I tried to update to 25.4.9, the updates failed as the model and version cannot be recognized

But did the update finish? Like, is your software & UI on version 25.4.9?

If so, can you check your Inventory page - you might see an empty Model like this:

Go ahead and click on it to update the model:


Let me know if your software didn’t update. If so, can you send me what error messages you are seeing when you try to update?

The software did not update. This is what it appears:

I reinstalled the v 25.3.5. again in the leader to see if this solves the issue but it didn’t.

Ah from your logs, I see what’s going on, and I’m able to reproduce it. Give me a moment to figure out a solution. Thanks for your patience!

Okay, here’s an quick & easy answer for you (but for others reading, I’ll provide a better solution via the release code):

  1. SSH into your leader
  2. Enter pio db - this opens up a shell to your database.
  3. Enter
    ALTER TABLE workers DROP COLUMN model_name;
    ALTER TABLE workers DROP COLUMN model_version;
  4. Exit shell with .q
  5. Try updating again.

Did not work :frowning:

Somehow, in the “Updates” section of the UI it says that the Leader version is v 25.4.3, but in inventory it says it is still 25.3.5

Update: It worked now. It did not let me update to 25.4.3 but the update to 25.4.9 was successful for the leader.

However, my UI is still at 25.3.5. and does not let me change the model name, hence having the same ´model_name` error when I try to run the temperature and dosing automation.

Hm, try this:

pio update ui --source /tmp/release_25.4.9/pioreactorui_25.4.9.tar.gz

It worked!!
Everything is working perfectly now. Thanks so much!

@jb1404 there was a bug in the heater code in 25.4.3 and 25.4.9, so we updating to 25.4.11: release_25.4.11.zip