What is the unit of stir speed? I see that some examples given are 8, 10, 12 in the code but there is no indication of units. I’d also be happy to make a github issue to fix this.
Here is the place in code where that is used. It isn’t a real unit, it just controls how long the fan receives 12VDC before being shut off. We have plans to implement tachometer functionality to put precise PID control of stir rates but for now it’s fairly coarse.
What, then, is the max speed? Is the increase in speed linear? Is there a common speed (in these non-unit units) for growing bacteria cultures? Also, I don’t see how there are only 10 settings for the speed rate when it goes up to (if I remember correctly) 15?
We are well under the max speed of the fans. If the fans spin at max speed (constant 12VDC) the magnets risk popping off of the fan heads. It is also much too fast for the cultures and would disrupt OD readings. The NBT paper reports RPMs from 0 - 1500, but I don’t know how that relates to the number settings. Maybe @bgwong can elaborate.
We typically use values of 8-10 for growing bacterial cultures. I believe the comment in the code that mentions 10 settings is trying to say values from ~5-15 should work well for growing microbes - I’ll update that comment so that it is more clear. Around 5 is the minimum - the fans will barely be spinning at this setting. You can theoretically go above 15 but that risks damaging the fans and is unnecessary for most culture conditions. If you want to experiment with higher speeds, you can change the value in
custom_script.py to be go higher, and in the GUI you can modify this line of code to enable higher rates.
I haven’t thought too much about it, but I imagine this value relates non-linearly to the speed. The fans are basically being kept at lower speeds than their full potential by applying a low duty cycle PWM signal. The actual duty cycle and period is going to be a function of the SAMD21 clock speed and run-time of those for loops and the main loop of the uC. Most likely there is a log relationship between the number and the actual RPM of the fans, but I haven’t tested this, it’s a just guess.
@bgwong was playing around with fans that have tachometers a while back. The vial boards actually have a pin ready for it, and from what I remember it appeared like we could just plug that in to the current ADC boards that we use for temp/OD measurements. There is some filtering on the signal through the board, but I don’t think it would be difficult to extract the frequency. It’s on our list of things to improve in the near future - it would obviously be much better to be able to state a desired RPM as opposed to an arbitrary value.
The calibration method we have used in the past (using a smartphone high speed camera) is described in the original NBT paper supplement, also available here in our preprint. The plot is shown for a single fan, but you could use this method to calibrate each fan individually if you desired. I have not tried to calibrate a FynchBio device, so those fans may have different values from this calibration curve, though I imagine the shape is generally conserved.