OD calibration incorrectly reading IR intensity setting

On the latest release 24.10.29, I recently tried running the OD calibration and after entering a name for my calibration keep getting the error: Can't use ir_led_intensity=auto with OD calibrations. Change ir_led_intensity in your config.ini to a numeric value (70 is good default). Aborting!
I’ve tried modifying this value in the shared config.ini and specific ones for individual workers, multiple different numeric values, and rebooted each worker and the cluster multiple times; and I’m still getting the same error message. Any advice on what settings to change/look into to diagnose this would be greatly appreciated! Sorry for multiple posts in one day :smiling_face_with_tear:

Hm, that’s strange @DonalC. Can you confirm you’re editing ir_led_intensity under the [od_reading.config] section? (It was renamed from [od_config] a few versions ago).

It should look something like:


[od_reading.config]
# how many optical density measurements should be published per second? Recommended maximum is 1.
samples_per_second=0.2

# default intensity of IR LED. The value `auto` will automatically choose an IR LED intensity that matches an internal value.
# Or set an integer between 0 and 100. Higher is usually better (>= 50), but keep less than 90 for longevity.
ir_led_intensity=70

Otherwise, on a machine you’re calibrating, check what config actually exists there:

cat .pioreactor/config.ini

and look for the ir_led_intensity field there, confirm it’s in section [od_reading.config] and it’s not equal to auto.

Hi @CamDavidsonPilon. Yes, ir_led_intensity is modified as you’ve described under [od_reading.config] both in the shared config.ini and for individual workers. However when I run cat .pioreactor/config.ini, that section appears as expected, but the value is set to auto there, despite being set otherwise in the UI.

Is there a way to directly change values in the local worker config.ini file from the command line to make sure the change has been saved?

Is there a way to directly change values in the local worker config.ini file from the command line to make sure the change has been saved?

You can certainly edit that file on the worker (below is how), but it’s very strange why it’s not updating…Some simple checks:

  • the worker is part of the cluster?
  • Hitting [Save] gives a success prompt (“saving and syncing…”) and no error messages?

We’re trying to reproduce this, too.


You can edit .pioreactor/config.ini on the worker, but it will be overwritten by changes on the leader (when it next successfully syncs). Try:

nano .pioreactor/config.ini

make your changes to ir_led_intensity, and crt-x to save and exit. Then try running od_calibration again.

1 Like

Yes the worker is part of the cluster, I do not get any error messages - I tried yet again and took a screen recording but can’t upload that file type, so here are some screenshots from checking this:

Another interesting thing is when I went in and edited the config files with nano, 3/7 I did this with already had the changes published to them, so it is not a consistently occurring error for whatever reason.

Hm, we did change how config sync-ing occurs (changed from serially - one after another - to in parallel via threads), but I don’t see how this might cause incomplete transfers on some units.

A reliable way to sync configs from leader to ex worker01, is:

pios sync-configs --units worker01 -y

This may be faster than editing each worker.

1 Like