Pioreactor Dev log #14

Pioreactor Dev log #14
Happy holidays! This week we look at our latest iteration of the Pioreactor HAT. New features include cleaner interfacing with the heater PCB, an EEPROM, StemmaQT connection, and more.

We've been working on the version 2 of our HAT for over 6 months now, putting together all the improvements, learnings, and ideas since testing our version 1 board. In this post, we'll go through some of the changes that we are most excited about. 

Figure 1. Version 2 of our Pioreactor HAT, showing connections to peripheral hardware.

Official HAT status

The Raspberry Pi Foundation actually has very precise definitions of what a HAT, or "Hardware Attached on Top", is. Relevant for us is the following:

  • Must attach to the 40-pin GPIO header, and expose a 40-pin GPIO header.
  • Must be a specific footprint, and have correction location for mounting holes.
  • Must have an EEPROM chip, with specific information stored on it.

The full list of recommendations for a HAT is here. Our new Pioreactor PCB version now includes an EEPOM, and was already the correct size, so we now officially have a Raspberry Pi HAT (this is relevant for marketing purposes, and for compatibility purposes). 

We store the HAT version on the EEPROM, and can read of it at runtime in Python, so now the Pioreactor software can dynamically detect what HAT is available and adjust accordingly. 

StemmaQT/Qwiic connection 

The StemmaQT (from Adafruit), and the Qwiic (from Sparkfun) connector protocol is a great way to interact with the rich hardware and sensor ecosystem that these two companies offer. We've included a StemmaQT/Qwiic connector on our new HAT to allow users to add their own sensors. For example, if users wish to record ambient temperature, it's easy to connect the Adafruit Si7021 breakout board directly to the Pioreactor. 

This new connector also is how we will connect future Pioreactor devices and sensors to improve our bioreactors.

Less wires 

We condensed the 7 wires going from the onboard heating PCB to the HAT into a single flexible flat cable. We were also able to remove a PWM output connection that was previously dedicated for the heating. 

Four photodiodes to two

We originally had four photodiodes on the Pioreactor. The idea was that more photodiode signals would a) reduce the amount of noise, and b) be able to simultaneously measure multiple wavelengths (ex: fluorescence). However, we found that we rarely used more than two photodiodes. More photodiodes is certainly better for signal accuracy, but it costs more, and has a more confusing user experience. By focusing on the simpler use case (1 photodiode for culture, 1 photodiode for IR LED reference), we can optimize our software and hardware to get back signal accuracy anyways. 

 

Pioreactor dev log #13

Pioreactor dev log #13
Each Pioreactor has built-in heating <i>and</i> temperature sensors. I emphasize temperature sensors, since I've used enough hot plates to not trust a graduated knob to have any reliability. With a combination of heating and temperature sensors, the Pioreactor is able to keep a set temperature for the culture, regardless of the Pioreactor variations in the construction, ambient temperature, etc.

Pioreactor dev log #12

Pioreactor dev log #12

💅 This past week we've done two site redesigns! The first is what you are seeing now - more "purpler", and gives a better impression of our features and better explains how the Pioreactor works.

The second redesign is of our documentation site. It's powered by the really cool documentation library, docusaurus, and hosted on Github pages. There's still lots of work to do on it, but there's probably double the content there now (and it's more rich content) than what we had on Shopify before (btw this is a Shopify site). 

Finally, our cofounder Evan goes on paternity leave this week! He'll be off for three months, so expect a slight slow down in output, but we are still on track for a first-half of 2022 launch. 

Pioreactor dev blog #11 - creating custom Raspberry Pi images

Pioreactor dev blog #11 - creating custom Raspberry Pi images
We care a lot about onboarding. I've seen enough Raspberry Pi projects that seem to require deep experience in software compilers and package management (don't worry if you don't know what those are...) before you can get started. This is an immediate barrier to your project! From a "funnel" perspective, you may end up losing up a large fraction of your users just at this stage. Can we do better?

Pioreactor development log #8

Pioreactor development log #8
The role of stirring in the Pioreactor is important for a few reasons: i) it allows for modest gas exchange between the media and the air, ii) more importantly: it creates a homogenous environment for microbes and nutrients alike. This last point also means that our optical signals won't vary spatially - something that would make the whole system much more complicated. 

Pioreactor development log #5

Pioreactor development log #5
One of our goals with the Pioreactor is design it such that you don't need to be a biologist,  or an electrical engineer, or relevant for this article: a statistician. This article describes our internal algorithm that computes the culture's growth rate, but importantly: you don't need to know this algorithm to use the Pioreactor! We've designed the internal statistical algorithm to be robust enough that you can sit back and watch. This article is for the users who really want to dig deep into how we compute growth rates and the statistics behind it.