In our system, OD readings are taken every 10 seconds and the air bubbler runs for 3 seconds during each interval (see config below). We’ve had a few instances where the air bubbler failed to dodge the OD readings and just switched on constantly during an experiment. This results in excessive evaporation and spills from the air outflow tube.
From reviewing the logs, the issue appears to occur when an experiment profile attempts to restart activities that are already active.
In one example, OD readings were already running, so the restart was skipped. However, the air bubbler seems to have received a message that OD readings had been turned off—even though they were still active. Immediately after this, the air bubbler stopped dodging OD readings.
| timestamp | message | level | task |
|---|---|---|---|
| 2025-11-13T09:41:42.041Z | od_reading is already running. Skipping. | WARNING | od_reading |
| 2025-11-13T09:41:42.140Z | OD reading turned off. Stop dodging. | DEBUG | air_bubbler |
In another example, both the OD readings and the air bubbler were already running when the profile attempted to activated them again. In this case, there were no logs from the air bubbler about dodging OD readings, but the air bubbler stopped dodging immediately after this restart attempt:
| timestamp | message | level | task |
|---|---|---|---|
| 2025-09-11T18:12:32.168Z | od_reading is already running. Skipping. | WARNING | od_reading |
| 2025-09-11T18:12:33.276Z | air_bubbler is already running. Skipping. | WARNING | air_bubbler |
We will try not to restart activities that are already started, but it may be a more general issue.
[od_reading.config]
samples_per_second=0.1
ir_led_intensity=50
pd_reference_ema=0.9
smoothing_penalizer=6.0
duration_between_led_off_and_od_reading = 0.125
turn_off_leds_during_reading=0
[air_bubbler.config]
duty_cycle=10
hertz=200
pre_delay_duration=6
post_delay_duration=1
enable_dodging_od=1