Pioreactor Dev log #14 - Our hardware, version 2
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.
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.
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.
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.