We purchased a Pioreactor 1.1 about a year ago but I only flashed the firmware now to get it running for a student’s thesis project. However I am seeing persistent issues with I2C and ADC signals in the log below. Stirring works however the heater PCB is not detected and no signals from the photodiodes or thermistor are obtained. I assumed the rpi zero 2w I was using had an issue but I could reproduce the problem on a rpi 3
I’m guessing this is a failure in the RP2040 on the hat board or some of the ADC circuitry that is causing failure to interpret analogue signals? I’m ok with buying a replacement board but if this is something fixable I’d prefer that so we don’t have to wait for shipping. Any suggestions would be much appreciated.
Starting test test_positive_correlation_between_temperature_and_heating…
“Heater PCB is not connected, or i2c is not working.
Traceback (most recent call last):
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/actions/self_test.py”“, line 477, in _run
test(managed_state, logger, unit, testing_experiment)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/actions/self_test.py”“, line 386, in test_positive_correlation_between_temperature_and_heating
assert is_heating_pcb_present(), ““Heater PCB is not connected, or i2c is not working.””
~~~~~~~~~~~~~~~~~~~~~~^^
AssertionError: Heater PCB is not connected, or i2c is not working.”
test positive correlation between temperature and heating: Heater PCB is not connected, or i2c is not working.
test_positive_correlation_between_temperature_and_heating: âŒ
Starting test test_aux_power_is_not_too_high…
test_aux_power_is_not_too_high: ✅
Using smoothing penalizer = 0.0
AC hz estimate: 50.0
Using ADC class Pico_ADC for pd1 with initial gain 1.0.
Using ADC class Pico_ADC for pd2 with initial gain 1.0.
“Heating PCB must be present to measure RPM.
Traceback (most recent call last):
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/actions/self_test.py”“, line 477, in _run
test(managed_state, logger, unit, testing_experiment)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/actions/self_test.py”“, line 163, in test_all_positive_correlations_between_pds_and_leds
with stirring.start_stirring(
~~~~~~~~~~~~~~~~~~~~~~~^
target_rpm=500, unit=unit, experiment=experiment, enable_dodging_od=False
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
) as st:
^
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/background_jobs/stirring.py”“, line 650, in start_stirring
stirrer = Stirrer(
target_rpm=target_rpm,
…<7 lines>…
target_rpm_outside_od_reading=target_rpm_outside_od_reading,
)
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/background_jobs/base.py”“, line 106, in call
obj = type.call(cls, *args, **kwargs)
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/background_jobs/base.py”“, line 262, in wrapped_init
orig_init(self, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File “”/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/background_jobs/stirring.py”“, line 232, in init
raise exc.HardwareNotFoundError(”“Heating PCB must be present to measure RPM.”“)
pioreactor.exc.HardwareNotFoundError: Heating PCB must be present to measure RPM.”
test all positive correlations between pds and leds: Heating PCB must be present to measure RPM.
Using smoothing penalizer = 0.0
Using smoothing penalizer = 0.0
Using smoothing penalizer = 5.217391304347826