Atlas pH sensor - Sensor read unsuccessful: 254

My hydroponic system with Atlas Scientific sensors (pH, EC, temperature probe etc) was working well for several months. Then I took it out of commission to clean it, and it was a little while before I could get time to rebuild it - nearly 2 months. During this time I had my pH and EC probes stored with their tips in water (not ideal, I know, but I wasn’t expecting it to be such a long gap in operation.)

Anyway, I have put it all together again and I am not getting good results - I can’t get anything out of the pH sensor except 254 which according to page 46 of the manual, this means “still processing, not ready”.

I am using the sensors in i2c mode, and again - as far as I can tell, nothing has changed since the last time I had the system working. I am worried that the sensor itself has been damaged but I wondered if anyone else had had this issue.

The last lines of the /var/log/mycodo/mycodo.log are as follows (note i’m also getting this issue with the EC probe, though not consistently - occasionally it gets a reading.)

I got the same 254 responses direct from a python interpreter on the Pi, using smbus, so i don’t think its an issue with Mycodo. Thanks

    2022-07-08 12:28:45,129 - INFO - mycodo.controllers.controller_widget - Activated in 184.6 ms
    2022-07-08 12:28:46,131 - INFO - mycodo.daemon - Mycodo daemon started in 13.196 seconds
    2022-07-08 12:28:46,338 - INFO - mycodo.daemon - 58.32 MB RAM in use
    2022-07-08 12:28:58,761 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:29:18,795 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:29:38,784 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:29:58,812 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:30:18,777 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:30:38,733 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:30:58,783 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:31:38,812 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:31:58,780 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:32:18,728 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:32:38,765 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:32:58,804 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:33:18,756 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:33:38,814 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:33:58,756 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:34:18,825 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:34:38,780 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:34:58,814 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:35:18,749 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:35:38,788 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:35:58,750 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:36:18,795 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:36:38,739 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:36:58,794 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:37:18,729 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:37:38,821 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:37:58,810 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:38:18,777 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:38:38,835 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:38:58,791 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:39:18,746 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:39:38,788 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:39:58,755 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:40:18,801 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:40:38,768 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:40:58,809 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:41:18,758 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:41:38,826 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:42:18,793 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:42:58,808 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:43:18,774 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:43:38,757 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:43:58,812 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:44:18,746 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:44:38,792 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:44:58,736 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:45:18,813 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:45:38,785 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:45:58,736 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:46:18,971 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:46:38,803 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:46:58,818 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:47:18,755 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:47:38,821 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:47:58,783 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:48:18,692 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:47:21,563 - INFO - mycodo.daemon - Mycodo daemon v8.13.10 starting
    2022-07-08 12:47:22,597 - INFO - mycodo.devices.atlas_scientific_i2c_1_105 - Atlas Scientific Board: PMP, Rev: 2, Firmware: 1.04
    2022-07-08 12:47:22,597 - INFO - mycodo.outputs.pump_atlas_ezo_pmp_19abc25a - Initialized in 482.8 ms
    2022-07-08 12:47:23,071 - INFO - mycodo.devices.atlas_scientific_i2c_1_104 - Atlas Scientific Board: PMP, Rev: 2, Firmware: 1.04
    2022-07-08 12:47:23,072 - INFO - mycodo.outputs.pump_atlas_ezo_pmp_14291b56 - Initialized in 472.9 ms
    2022-07-08 12:47:23,557 - INFO - mycodo.devices.atlas_scientific_i2c_1_102 - Atlas Scientific Board: PMP, Rev: 2, Firmware: 1.04
    2022-07-08 12:47:23,557 - INFO - mycodo.outputs.pump_atlas_ezo_pmp_0decab3e - Initialized in 484.2 ms
    2022-07-08 12:47:24,067 - INFO - mycodo.devices.atlas_scientific_i2c_1_103 - Atlas Scientific Board: PMP, Rev: 2, Firmware: 1.04
    2022-07-08 12:47:24,068 - INFO - mycodo.outputs.pump_atlas_ezo_pmp_4d4d53c3 - Initialized in 502.3 ms
    2022-07-08 12:47:24,068 - INFO - mycodo.controllers.controller_output - Activated in 2242.7 ms
    2022-07-08 12:47:24,568 - INFO - mycodo.daemon - All activated Conditional controllers started
    2022-07-08 12:47:24,569 - INFO - mycodo.daemon - All activated Trigger controllers started
    2022-07-08 12:47:25,311 - INFO - mycodo.devices.atlas_scientific_i2c_1_99 - Atlas Scientific Board: pH, Rev: 2, Firmware: 2.14
    2022-07-08 12:47:27,694 - INFO - mycodo.controllers.controller_input_f5291b66 - Activated in 2959.9 ms
    2022-07-08 12:47:28,380 - INFO - mycodo.devices.atlas_scientific_i2c_1_100 - Atlas Scientific Board: EC, Rev: 2, Firmware: 2.15
    2022-07-08 12:50:31,415 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:50:33,582 - INFO - mycodo.controllers.controller_input_9d7b1d8c - Activated in 4403.6 ms
    2022-07-08 12:50:33,890 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 12:50:34,224 - INFO - mycodo.devices.atlas_scientific_i2c_1_101 - Atlas Scientific Board: RTD, Rev: 2, Firmware: 2.10
    2022-07-08 12:50:35,737 - INFO - mycodo.controllers.controller_input_71aa2c36 - Activated in 1985.3 ms
    2022-07-08 12:50:36,008 - ERROR - mycodo.inputs.atlas_ec_9d7b1d8c - Sensor read unsuccessful: 254
    2022-07-08 12:50:36,117 - INFO - mycodo.controllers.controller_input_2f632bea - Activated in 244.1 ms
    2022-07-08 12:50:36,494 - INFO - mycodo.controllers.controller_input_3c760159 - Activated in 288.4 ms
    2022-07-08 12:50:36,494 - INFO - mycodo.daemon - All activated Input controllers started
    2022-07-08 12:50:36,495 - INFO - mycodo.daemon - All activated PID controllers started
    2022-07-08 12:50:36,495 - INFO - mycodo.daemon - All activated Function controllers started
    2022-07-08 12:50:36,732 - INFO - mycodo.controllers.controller_widget - Activated in 237.0 ms
    2022-07-08 12:50:37,734 - INFO - mycodo.daemon - Mycodo daemon started in 14.879 seconds
    2022-07-08 12:50:37,738 - INFO - mycodo.daemon - 57.68 MB RAM in use
    2022-07-08 12:52:32,296 - INFO - mycodo.inputs.atlas_ph_f5291b66 - Command: T,23.00
    2022-07-08 12:52:32,603 - INFO - mycodo.inputs.atlas_ph_f5291b66 - Command returned: ('success', '')
    2022-07-08 12:52:32,909 - INFO - mycodo.inputs.atlas_ph_f5291b66 - Stored temperature value: ('success', '?T,23.00')
    2022-07-08 12:53:51,074 - INFO - mycodo.controllers.controller_input_f5291b66 - Deactivated in 27.4 ms
    2022-07-08 12:54:07,712 - INFO - mycodo.devices.atlas_scientific_i2c_1_99 - Atlas Scientific Board: pH, Rev: 2, Firmware: 2.14
    2022-07-08 12:54:10,114 - INFO - mycodo.controllers.controller_input_f5291b66 - Activated in 3051.7 ms
    2022-07-08 12:54:10,467 - ERROR - mycodo.inputs.atlas_ec_9d7b1d8c - Sensor read unsuccessful: 254
    2022-07-08 15:20:40,860 - INFO - mycodo.controllers.controller_input_f5291b66 - Deactivated in 34.2 ms
    2022-07-08 15:20:54,173 - INFO - mycodo.devices.atlas_scientific_i2c_1_99 - Atlas Scientific Board: pH, Rev: 2, Firmware: 2.14
    2022-07-08 15:20:56,554 - INFO - mycodo.controllers.controller_input_f5291b66 - Activated in 2848.4 ms
    2022-07-08 15:21:28,840 - ERROR - mycodo.inputs.atlas_ph_f5291b66 - Sensor read unsuccessful: 254
    2022-07-08 15:22:10,473 - ERROR - mycodo.inputs.atlas_ec_9d7b1d8c - Sensor read unsuccessful: 254

Have you tried issuing the factory reset command?

I had not tried that but I have now:

from atlas_i2c import atlas_i2c

device = atlas_i2c.AtlasI2C()
sensor_address = 99                                  # 0x63
dev.set_i2c_address(sensor_address)

result = dev.query("Factory", processing_delay=2000) # factory reset
print(result.status_code).                           # 1

reading = dev.query("R", processing_delay=1000)      # Read data
print(reading.status_code)                           # 1
print(reading.data)                                  # b'14.000'

So i’m not sure the factory reset made any difference. I’m still getting the same errors in the logs about 254 responses, and all the readings in the Live Readings page are 14

0 is typically a success status code. 1 indicates there’s an issue. I’d make sure the probe is securely connected. Have you attempted to perform a calibration since the reset?

1 Like

I thought a status code of 1 was a success - according to the image from the manual i’ve added above it should be? I may be mixing my response codes between applications though…

I have been reluctant to perform a calibration until i see numbers coming from the sensor as i don’t want to waste calibration fluid. I will triple check the connections.

You are correct, however Atlas Scientific has chosen to use status codes that are the opposite of the long-standing programming convention of 0 success, 1 failure.

I would absolutely do a calibration. Or buy a bottle of the storage solution which is a 4.0 and will last you a long time.

1 Like

Thanks @KyleGabriel and @PenguinPonics - in the end I did a calibration and it seems to have done the trick, I am getting readings now. So, it seems like I was a bit misguided in the first place! Anyway, much appreciate folk taking the time to help - I will also get some storage solution for next time.

1 Like

It turns out that the calibration has not solved the issue. Both pH and EC sensors are acting strangely. I have recalibrated both, but both are having regular, though not consistent, 254 read errors. The pH calibrates OK to midpoint 7 but then doesn’t react to changes in the solution, except within a very small range. I basically am not able to trust the outputs of the sensors. I still think this is probably an issue with the underlying hardware, though i am also getting irregular errors in the Mycodo daemon logs that look like

mycodo.inputs.atlas_ph_f5291b66 - Error 100: Cannot set a value of 'None' of type <class 'NoneType'>. 

or

ERROR - mycodo.inputs.atlas_ph_f5291b66 - Could not determine pH from returned value: '6.903@'

or

 ERROR - mycodo.inputs.atlas_ec_9d7b1d8c - Sensor read unsuccessful: 'utf-8' codec can't decode byte 0xae in position 4: invalid start byte

etc.

So i think there are rather a lot of strange things happening that I need to get to the bottom of. Any advice welcome, through perhaps contacting Atlas Scientific would be a good place to start.

No change in any of the wiring or power supply? I’ve had one error recently where I noticed my readings had gone flat. I forgot what the error message was but I just restarted the backend from the UI and everything went back to normal.

Sorry for the delay - no change in the wiring. I have tried calibration multiple times now but i just can’t get satisfactory results and the readings are not convincing. I think I am unable to get a replacement from Atlas now as I purchased the thing at the start of the year, and it worked great for many months before the current issues.

This is strange. Only strings representing decimal values should be returned when querying the device.

There could be an issue with the EZO board or there could be a communication issue.