Lower OD registering as higher voltage

Hey all,

I am currently calibrating the new 40mL pioreactors v1.5 that we ordered. In my previous setup I was utilising the 45 degree angle, as it was the best for high density cultures. However, for these calibrations, I am using the 90 degree angle as I realised there isn’t any space for the 45 degree.

I have ten standards, with Standard 1 being at OD 6.2 and Standard 10 being at OD 0.1. The final calibration can be seen below


I am not sure if I misplaced something during setup, or if this is the side-effect of using a high-density culture in the 90 degree angle.

Any help would be very welcome!

hm, can you check what software version you are on:

pio version 

For all angles, there does exist a saturation point where the reported voltages fall with increasing OD (see chart here), however, for 90deg, its usually much higher up than 0.1 OD600.

(45deg was removed in the base kit, but it’s available, and more, in the XR kit)

Hey Cam, thank you for your quick reply!

I checked the version and its 26.2.26, which for some reason doesn’t align with the version I’m seeing on the UI (which informs me that its not aligned with the leader’s version at 26.2.3?) I used the zip file during the update but its weird as SSHing into the leader tells me that its at 26.2.26.

I did another calibration and the 0.1 OD still registers as the highest for some reason…

I think this is just a UI bug =\

I did another calibration and the 0.1 OD still registers as the highest for some reason…

Can you try the calibration from the UI? CalibrationProtocols → choose the pioreactor & device od90.

Do you get the same results? (I’m wondering if the bug is localized to the CLI version)

Hi Cam, yes I got the same results! It mirrors the calibration I made through SSHing perfectly.

I am kind of suspicious that I haven’t managed to install the latest software update to be honest. I tried re-downloading it to the leader, and I got these warnings:

2026-03-02T17:17:05+0000 DEBUG [update_app] Update step 6 stderr: WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (262 kB/3.6 MB, attempt 1)
WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (1.6 MB/3.6 MB, attempt 2)
WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (1.6 MB/3.6 MB, attempt 3)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ProtocolError(‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’))’: /Pioreactor/pioreactor/releases/download/26.2.26/pioreactor-26.2.26-py3-none-any.whl
WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (1.6 MB/3.6 MB, attempt 4)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘NewConnectionError(’<pip._vendor.urllib3.connection.HTTPSConnection object at 0xf5e4f030>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’)': /github-production-release-asset/283318287/58cb0a84-87ad-49fb-8f04-72a9e91e4fbd?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-03-02T17%3A56%3A39Z&rscd=attachment%3B+filename%3Dpioreactor-26.2.26-py3-none-any.whl&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-03-02T16%3A56%3A35Z&ske=2026-03-02T17%3A56%3A39Z&sks=b&skv=2018-11-09&sig=BfYkeM74hXwsS9iawqEpxz7d%2B0CdoX3pTryaQl9ObrI%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc3MjQ3MjA2MCwibmJmIjoxNzcyNDcxNzYwLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.6VBXv-anqnvTaZ17Ub61p3jHICBahoF2qi8iHB8_6uw&response-content-disposition=attachment%3B%20filename%3Dpioreactor-26.2.26-py3-none-any.whl&response-content-type=application%2Foctet-stream

[notice] A new release of pip is available: 25.3 → 26.0.1
[notice] To update, run: pip install --upgrade pip

2026-03-02T17:17:05+0000 DEBUG [update_app] Running update step 7/7: sudo systemctl restart pioreactor-web.target
2026-03-02T17:17:07+0000 NOTICE [update_app] Updated Pioreactor app to version 26.2.26.

So maybe I’m not in the latest update after all, which could be causing these issues?

AFAIK that update was successful. How turbid is your 0.1? If you dilute it in half, or less, do you still see an increasing signal?

A few other things to check first actually:

  1. Add (if not present) the following under config [od_reading.config]:
ref_normalization=unity
  1. Actually, another thing that might be wrong is the placement of the REF vs 90 eye-spys. This would be consistent with your data. Double check that the eye-spy with the white “mark” in the top-left is in the REF position. Connect the optics system | Pioreactor Docs
1 Like

Hi Cam!

Yup, I misplaced the white eye-spy in the wrong position! It was in the 90 degree angle.

I will check tomorrow with another attempt at calibrating. Thank you for your help!

1 Like

Update:


Calibration looks great!