Pioreactor dev log #15

Pioreactor dev log #15

It's been a while! We're back at it again after one us took some time off as a new parent. We've got updates on improvements to the experiment workflow, and mechanical improvements. Let's jump back in:

Development checkpoint

We are making steady progress on the Pioreactor. Some small tweaks are left to the electronics, so we expect one, maybe two more PCB development runs. We've been procuring parts for manufacturing from suppliers for an initial run of 250 units for late 2022 (plus extras for spare parts and replacements). 

We've also hired an intern for this summer! They'll be working with the Pioreactor to build out our Experiments repository. More on that in a future blog post...

Making it easier to (re)label Pioreactors

If you are using multiple Pioreactors in a cluster for experiments, it's convenient to want to assign experiment-specific labels to the Pioreactors instead of the default names. Assigning labels makes it easier to 1. understand the incoming results from your experiment, 2. make it easier to analyze your data after the experiment. 

(Previously there was an option in the config.ini to edit labels, but this was clunky to use and the data was not persisted anywhere, meaning you may lose which Pioreactor was assigned to which variant of your experiment.) 

In the "Start new experiment" workflow, there's now a page that lets you easily add labels to Pioreactors in your cluster: 

Of course, labels can be edited during the experiment as well. This is done in the Manage -> Settings menu on the Pioreactors page: 

These labels show up everyone in the user interface, including in the graphs:

The labels are also saved to a database table, so it's possible to retrieve historical labels when needed. However, it only stores the most recent label assigned per experiment. 

Update to the mechanics

We spent some time rethinking the base of the Pioreactor (where the stirring motor sits). Previously, the vial holder would sit on 3D printed stands from the base. The base itself would sit on top of the Raspberry Pi's top faceplate. Nothing was secure, modulo any friction between the parts. There often wasn't enough friction to keep things feels "solid". Furthermore, the 3D printed stands had a habit of snapping. Not good. 

 

We fixed this by first merging the RPi's top faceplate with the 3D printed base:

 

Next, we hollowed the stands such that a M3 screw could fit inside. The screw is inserted from the bottom, and screws into a nut now embedded in the vial holder. See below:

This idea of inserting a nut into a 3D printed piece was inspired while building a Prusa Mini Printer, which uses this technique often, and it works really well. Shout out to the Prusa team!  

These changes together provide a much more solid feel to the Pioreactor. And it's fun to assemble!