Pioreactor

Latest version: v24.12.10

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 15 of 17

22.4.0

- store more experiment metadata, like strain and media, in the database.
- adding temporary labels of Pioreactors into the database in `pioreactor_unit_labels` table
- renaming some tables, `alt_media_fraction` -> `alt_media_fractions`, `ir_led_intensity` -> `ir_led_intensities`
- pumps now throw a `CalibrationError` exception if their calibration is not defined.
- default user is no longer `pi`. It is now `pioreactor`. Any coded paths like `/home/pi/` should be updated to `home/pioreactor/`.
- new image metadata file added to `home/pioreactor/.pioreactor/.image_metadata`

22.3.0

- fixed memory leak in MQTT connections
- better clean up after a job disconnects
- If the temperature of the heating PCB gets too high, the automation switches to Silent (previously it did not switch at all.)
- "datatype" field in `published_settings` is now used to cast before being given to `set_*` methods.
- Internally, the repo uses the `msgspec` library for complex MQTT message validation. This also introduces the `pioreactor.structs` module which details the structure of the messages.
- Name change: `DosingAutomation` -> `DosingAutomationJob`, `TemperatureAutomation` -> `TemperatureAutomationJob`, `LEDAutomation` -> `LEDAutomationJob`.
- New json-encoded datatype for changing automations over MQTT: see `pioreactor.struct.Automation`
- `pio run led_intensity` has new API: use the flags, ex: `--A 10.0`, to set the intensities on different channels.
- `pioreactor.actions.led_intensity` has a new API that accepts the desired state as a dict.
- pump actions are now under `pioreactor.actions.pump` instead of their own files.

22.2.0

- Added more error codes for the ADC, network issues, and high temperature
- Reduce chance of running multiple growth_rate_calculating jobs
- Custom exceptions thrown in the Python software.
- New checks for HAT being present, and Heating PCB being present, before a job is run (if required in the job).
- QOL improvements to stirring calibration
- Calibrations now store the data locally, alongside the calibration results, in the local storage.
- New API in `DosingController` to add custom pumps
- Some `job_name`s are disallowed to avoid MQTT conflicts
- ADCReader now will estimate the local AC hertz to get a better OD reading signal.
- Custom Python exceptions were introduced.
- `pioreactor.hardware_mappings` is renamed to `pioreactor.hardware`
- New `is_HAT_present` and `is_heating_pcb_present` functions
- ErrorCodes is gone - use global variables in error_codes
- Adding logic for 180° sensor to growth_rate_calculating
- Pumps now have a state broadcast to MQTT, and thus can be "disconnected" over MQTT.
- Improved the response time of stopping pumps from the web UI.

22.1.0

- improved temperature-recording frequency (10m to 4m)
- removed the PWM's DC maximum on the heating output.
- New `pioreactor.version.hardware_verion` which reads from the HAT's EEPROM which version
of board is being used.
- removed PD channels 3 & 4.
- `angle` column in `od_readings_raw` table in database is now an integer.

21.12.0

- `pid_stable` automation renamed to `stable`
- jobs can now publish to `pioreactor/<unit>/+/monitor/flicker_led_with_error_code/<error code>`
to have the LED flash a specific error code.
- fixed errors raised when not able to connect to leader's MQTT
- improvements to error handling in monitor job.
- replaced `turn_off_leds_temporarily` with the more useful and more general `change_leds_intensities_temporarily`
- UX improvements to the `pump_calibration` action
- improving \*-Controller jobs:
- `automation` is now a dict attribute (json in MQTT)
- `automation_name` is a new published_setting, with string. This is what is read from the UI.
- CLI has a slightly changed API to pick the automation
- `pio_jobs_running` renamed to `pio_processes_running`

21.11.1

- a version cut to test building images

Page 15 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.