New Pioreactor OS release: 23.10.23

This is both a software release and an operating system release for your Pioreactor! Upgrading is different from our previous releases, see below. Read more about this release on our blog.


Bookworm release!

The Raspberry Pi Foundation provides new operating system every few years (built off of Debian’s work). Earlier this month, they released RPi OS Bookworm. There are lots of nice changes, but the important details for us:

  • New Python version
  • New GPIO libraries
  • New local-access-point improvements

We strongly recommend you upgrade. However, upgrading to this new operating system requires a full SD rewrite with the new image (that has our new release). Follow instructions here to install the new image. See steps below on how to preserve and transfer your data.


With some other optimizations, we have significantly improved the performance and responsiveness of the Pioreactor software. You should notice things will feel snappier! For example, the command-line responsiveness is about 33% faster, which means actions from the the UI will start faster. Because of this new performance, we can even squeeze some more data into our algorithms and get improved accuracy.

Along with Python being faster, our database is also faster now => faster inserts, UI graphs, and data exports.

Export and import your existing data into a new image

Note: you don’t need to do this. This is only if you want to move existing data to the new Pioreactor.

See instructions here.

Full Changelog

  • Replaced RPi.GPIO with lgpio
  • Python 3.9 is replaced by 3.11
  • Ability to choose the x-axis scale in the UI Overview: clock time, or elapsed time. Use (or add) time_display_mode under section [ui.overview.settings], with values clock_time or hours respectively.
  • Fixed bug that was not clearing OD blanks from the UI
  • dropped RaspAP for a native solution. The native solution is much simpler, and should show up faster than our RaspAP solution.
  • If your leader Raspberry Pi has an ethernet port, you can connect this into an internet-accessible router and give your cluster access to the internet!
  • Updated lots of our Python dependencies
  • Improved start up time by hiding dependencies
  • Added database table to track experiment profile starts.

Some known issues

  1. Unable to get Raspberry Pi Zero Ws and Raspberry Pi Bs (not B+) to connect to another Pioreactor’s local-access-point. Partial solution here: RPi 3B vs RPi Zero W aren't able to connect to LAP · Issue #439 · Pioreactor/pioreactor · GitHub