OD Calibration- Blank Reading is Too High, Calibration Aborted

Hey!

i’ve recently updated my cluster to 25.5.1 all the way from 24.10.1 (incrementally of course!) to take advantage of the OD600 calibration.
I was using the single vial protocol and measuring OD600 in a spectrophotometer (blanked with Lennox Broth (LB)) whenever prompted.

I’ve tried to run this calibration protocol a few times but it always seems to fail when I get to the end, where I’m asked to provide the OD of my media.

At first I assumed the best way to do this would be to blank my spectrophotometer with water, then measure the OD600 of LB (silly on my part, but I was not too sure what was being asked of me). I entered this value (~0.061), which resulted in the following:

Reading blank...
Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Why is the blank reading, 0.007061387502738081V, higher than everything else: [0.08381068184289237, 0.07215648153036494, 0.059990495649226594, 0.05049483620097249, 0.04423651213430242, 0.004209839326557134, 0.04119455321826533, 0.03336294465594032, 0.02946311569797438, 0.025674508836002266, 0.003870240992258537, 0.02760270349113583, 0.018774914875512375, 0.01613189389916026, 0.014452835004165283, 0.01590998482902551, 0.013372906049932187, 0.010782692998190914, 0.009790551716845626, 0.008856914993584195, 0.009094404629279238, 0.008290732050476476, 0.0070388222592080085, 0.006004920923917221, 0.005065548401484521, 0.005502664548161679, 0.005096614296223755, 0.0038720353411301565, 0.003920031518861105, 0.003423386589185564, 0.0037728271909961706, 0.004304656479406765, 0.005460199925158296, 0.005269595377488636]V?
Aborted!

So I repeated the entire process but this time when I was asked to provide the media OD, I kept the spectrophotometer blanked with LB and remeasured a sample of the same LB. = -0.006… basically zero, and definately lower than my other OD readings. Resulted in the same:

Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Reading is too high, trying again...
Why is the blank reading, 0.011804623729992577V, higher than everything else: [0.08572887852644015, 0.06913144112255011, 0.06055490458238791, 0.05343759899909553, 0.04884866447429399, 0.050517903532944566, 0.04250005741519082, 0.036254001121569984, 0.0331974130194098, 0.032081688791327445, 0.03146681145075177, 0.02784498121982694, 0.024038525857615747, 0.02209818950719277, 0.020272632813524847, 0.020731640539264115, 0.018113063005095027, 0.016773509531510813, 0.01545209817316242, 0.014024421185487917, 0.014980939113016057, 0.014124397378338177, 0.013436110830258531, 0.012556146641814607, 0.012526279286657657, 0.012476324362991481, 0.012708805337619988, 0.012860070246445247, 0.012968241865586785, 0.012190359031105035, 0.01266155225709167, 0.012146777486722512, 0.012030540999525217, 0.011592140435842562, 0.011631321204746416, 0.012906408419762342, 0.011877456060977131, 0.011984718381705617, 0.0115640098727537, 0.011383139760435099, 0.01305428554705593, 0.012505476041388491, 0.013109017645274711, 0.011919741775265492, 0.012259949400437106]V?
Aborted! 

I know it could be a case of the first obviously failing because the blank value I provided was very high, and the second was negative. But writing zero here feels equally incorrect so I’m a bit stuck.

A few other bits:

  • The curve for attempt 1 looked normal, though there were a few outliers.

  • The second attempt was estimated to need 26 2mL dilutions, it actually required 36… So I assumed there may be an issue with the LEDs or something. I ran a self test and everything was normal. I also tried changing the REF value as Cameron outlined here: PD Blank signal too high - #3 by sharknaro, everything worked normally. The curve looked normal but with way more data points.

So, any advice on how to successfully calibrate the OD would be really appreciated!

Hi @Grace_h,

We’re looking into this. The restriction that the blank voltage is strictly less than all other samples voltage is probably too strong. We’ll be relaxing that. For now, I would suggest increasing the value you enter for “minimum OD600” during the initial set up - this will also save you time & samples. I highlight voltage because the issue is not with what you enter, but with what the Pioreactor is recording.

To answer your confusion about what value to enter for the blank (water-blank or LB-blank): use the same you used for the other samples, so probably water.

Does that make sense? Otherwise, your data collection looks good!

1 Like

Thanks @CamDavidsonPilon!

I’ll give it another go now. I was using 0.040 as my minimum voltage, I’ll up it to about 0.060.

The sample I’m using to do this calibration is bacteria in some LB, and I was using fresh LB to blank my spectrophotometer. At the end of the calibration I filled the reactor vial with fresh LB.
Just checking that I’m re-measuring my LB with the spectrophotometer (still blanked to LB), and entering this value for the reactor calibration blank?

I’m dreading going through the calibration for the third time to have it abort right at the end!

I’m dreading going through the calibration for the third time to have it abort right at the end!

Yes, this stinks.

@Grace_h if you are interested, we just released a release-candidate for the next version: Release 25.5.22rc0 · Pioreactor/pioreactor · GitHub

You can update your cluster/single Pioreactor using the release_25.5.22rc0.zip file. This has a fix for the od-blank issue here, and other nice changes.


Just checking that I’m re-measuring my LB with the spectrophotometer (still blanked to LB), and entering this value for the reactor calibration blank?

yes, that sounds correct

1 Like

Ok amazing, I’ll update to the pre-release then run the calibration again.

Thanks so much for your help @CamDavidsonPilon!

Hi Cam, sorry to be back with more questions so soon!

I’ve come into the lab to try the above (calibration issues were yesterday) and now it seems I can’t reach the reactors at all.

I connected to the local network and attempted to access the UI to update the cluster but this failed to load. I tried to ssh too and no luck here. Soon the network completely disappeared from the list of available networks and hasn’t come back since.

I tried power cycling and when that didn’t work, internet sharing. In the network connections control panel the connection was just greyed out. I’m completely locked out of my reactors and not sure what do to about this.

Hi @Grace_h,

Hm, sorry about this. I would suggest trying to power cycle the leader a few more times.

  1. Can you observe the pioreactor network on other devices?
  2. Does the leader do its blue blinking when it powers up? Is it constantly blinking blue?

Hey @CamDavidsonPilon

I’ve power cycled a few more times and still no luck, and there’s no blue light at all.
I’m not too sure where to go from here!

Hm, can you swap the SD card into another Pioreactor to test that? (And vice versa). Just trying to pinpoint where the fault might be?

The issue stays when swapping SD cards between reactors.

  • The workers have a solid red light, and green flashes before switching off. The blue LED flashes twice as expected here.
  • The leader always boots up with no local network and no flashing blue lights. The red and green LEDs stay solid.

Hm, and what RPi model is the leader on? Can you read the leader SD card in a computer?

When attempting to read the SD card nothing comes up (I think I’m meant to see boot files). Leader is Rasp Pi 4, Model B.

Yes, you should see some data on the SD card. I worry that the card might be dead =(

This unfortunately does happen, but it’s rare. Is it an SD card we provided, or did you purchase it separately?

You can try to flash a leader onto a new SD card, with the same local access point. Then you can re-add the workers (they don’t need to be reflashed). The database is backed up (somewhat recently) on a worker in your cluster. I can help recover it. All calibrations exist on the workers, so they aren’t affected.

Welp… I had a closer look at the card to see if it was one you provided and immediately found the issue, the card is cracked down the middle!

I’m very glad to hear the workers have stored my calibrations. I ran a back up before all this happened and also downloaded my experiment files a couple of days ago so I luckily don’t need to work on recovering these.

I’ll grab a new one and go from scratch. To have the same local access point is there anything different I need to do from normal set up?

Sorry for not noticing it sooner, and thank you for your support with it all! xD

How strange!

To have the same local access point is there anything different I need to do from normal set up?

No, I believe you can just use the local_access_point file which will use the same wifi name and password as before (default: pioreactor, password: raspberry) – the workers will reconnect when it’s back online.

1 Like