Support Forum

Share your projects and post your questions

Register   or   Sign In
The Forum

IOError: [Errno 121] Remote I/O error

The ADC Pi is an Analogue to Digital converter for the Raspberry Pi

25/08/2022

Posted by:
taarhaug

taarhaug Avatar

Hei,

I've been using ADCPi to read values off an Alphasense AFE for years. Suddenly, reading has become unstable. I've seen this before when temperature has been close to 60C. In this case, temperature is only 50C and it has been stable at this temperature before.

i2cdetect -y 1 reports both channels working so no error there.

Suggestions?



Error reproduction:



Channel 1: 1.934793

Channel 2: 1.969387

Channel 3: 0.516439

Traceback (most recent call last):

File "./demo_readvoltage.py", line 61, in <module>

main()

File "./demo_readvoltage.py", line 51, in main

print("Channel 4: %02f" % adc.read_voltage(4))

File "../ADCPi.py", line 140, in read_voltage

raw = self.read_raw(channel)

File "../ADCPi.py", line 187, in read_raw

__adcreading = self.__bus.read_i2c_block_data(address, config, 4)

IOError: [Errno 121] Remote I/O error

25/08/2022

Posted by:
andrew

andrew Avatar

Hi

The temperature range of the MCP3424 ADC used on the ADC Pi is -40°C to +125°C so it should be well within range at 60°C.

Do you get the same problem when reading from the second ADC on pins 5 to 8 or just on the first ADC? If the problem only occurs on one ADC then that would suggest a problem with that ADC, if it happens on both then the problem is somewhere between the ADCs and the Raspberry Pi.

A remote I/O error means the Raspberry Pi is having trouble communicating with the ADC Pi so if the problem is only happening at high temperatures one possible cause is a dry joint on one of the solder connections. If there is a dry joint or loose connection when the metal in the connectors heats up it could expand breaking the connection across the joint.

Try reflowing the solder on the 40-pin header and the address select header. Hopefully, this will fix the problem.

25/08/2022

Posted by:
taarhaug

taarhaug Avatar

Hei,



I tried both

adc = ADCPi(0x68, 0x68, 12)

adc = ADCPi(0x69, 0x69, 12)

if that's what you are asking. It did not make a difference.

I will check the soldering.

Thor

Sign in to post your reply


Note: documents in Portable Document Format (PDF) require Adobe Acrobat Reader 5.0 or higher to view.
Download Adobe Acrobat Reader or other PDF reading software for your computer or mobile device.

Home

Shop

Learn

Forum

FAQ

Contact

0 item

Your cart is empty

Please browse our shop to order from the wide range of Raspberry Pi boards and accessories.

Subtotal:£0.00
View Basket Continue to Checkout