# OSError: \[Errno 5\] EIO - Related to i2c

**URL:** <https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497>\
**Category:** Support\
**Created:** [October 15, 2024, 7:12pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497 "2024-10-15T19:12:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jeff](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jeff](https://xrp.discourse.group/u/Jeff)\
**Post date:** [October 15, 2024, 7:12pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497/1 "2024-10-15T19:12:49Z")

</div>

Running the following code:

try:  
with open(‘/lib/phew/ID.py’, mode=‘r’) as exfile:  
code = exfile.read()  
execCode = compile(code, ‘lib/phew/ID.py’, ‘exec’)  
exec(execCode)  
except Exception as e:  
import sys  
sys.print\_exception(e)  
finally:  
import XRPLib.resetbot

I get the following error:

MPY: soft reboot  
Traceback (most recent call last):  
File “”, line 5, in   
File “lib/phew/ID.py”, line 1, in   
File “/lib/XRPLib/defaults.py”, line 19, in   
File “/lib/XRPLib/imu.py”, line 26, in get\_default\_imu  
File “/lib/XRPLib/imu.py”, line 59, in **init**  
File “/lib/XRPLib/imu.py”, line 155, in is\_connected  
File “/lib/XRPLib/imu.py”, line 106, in \_getreg  
OSError: [Errno 5] EIO

running an i2c scan:

from machine import Pin, SoftI2C

# You can choose any other combination of I2C pins

i2c = SoftI2C(scl=Pin(5), sda=Pin(4))

print(‘I2C SCANNER’)  
devices = i2c.scan()

if len(devices) == 0:  
print(“No i2c device !”)  
else:  
print(‘i2c devices found:’, len(devices))

for device in devices:  
print("I2C hexadecimal address: ", hex(device))

I get:

I2C SCANNER  
i2c devices found: 112  
I2C hexadecimal address: 0x8  
I2C hexadecimal address: 0x9  
I2C hexadecimal address: 0xa  
I2C hexadecimal address: 0xb  
I2C hexadecimal address: 0xc  
I2C hexadecimal address: 0xd  
I2C hexadecimal address: 0xe  
I2C hexadecimal address: 0xf  
I2C hexadecimal address: 0x10  
I2C hexadecimal address: 0x11  
I2C hexadecimal address: 0x12  
I2C hexadecimal address: 0x13  
I2C hexadecimal address: 0x14  
I2C hexadecimal address: 0x15  
I2C hexadecimal address: 0x16  
I2C hexadecimal address: 0x17  
I2C hexadecimal address: 0x18  
I2C hexadecimal address: 0x19  
I2C hexadecimal address: 0x1a  
I2C hexadecimal address: 0x1b  
I2C hexadecimal address: 0x1c  
I2C hexadecimal address: 0x1d  
I2C hexadecimal address: 0x1e  
I2C hexadecimal address: 0x1f  
I2C hexadecimal address: 0x20  
I2C hexadecimal address: 0x21  
I2C hexadecimal address: 0x22  
I2C hexadecimal address: 0x23  
I2C hexadecimal address: 0x24  
I2C hexadecimal address: 0x25  
I2C hexadecimal address: 0x26  
I2C hexadecimal address: 0x27  
I2C hexadecimal address: 0x28  
I2C hexadecimal address: 0x29  
I2C hexadecimal address: 0x2a  
I2C hexadecimal address: 0x2b  
I2C hexadecimal address: 0x2c  
I2C hexadecimal address: 0x2d  
I2C hexadecimal address: 0x2e  
I2C hexadecimal address: 0x2f  
I2C hexadecimal address: 0x30  
I2C hexadecimal address: 0x31  
I2C hexadecimal address: 0x32  
I2C hexadecimal address: 0x33  
I2C hexadecimal address: 0x34  
I2C hexadecimal address: 0x35  
I2C hexadecimal address: 0x36  
I2C hexadecimal address: 0x37  
I2C hexadecimal address: 0x38  
I2C hexadecimal address: 0x39  
I2C hexadecimal address: 0x3a  
I2C hexadecimal address: 0x3b  
I2C hexadecimal address: 0x3c  
I2C hexadecimal address: 0x3d  
I2C hexadecimal address: 0x3e  
I2C hexadecimal address: 0x3f  
I2C hexadecimal address: 0x40  
I2C hexadecimal address: 0x41  
I2C hexadecimal address: 0x42  
I2C hexadecimal address: 0x43  
I2C hexadecimal address: 0x44  
I2C hexadecimal address: 0x45  
I2C hexadecimal address: 0x46  
I2C hexadecimal address: 0x47  
I2C hexadecimal address: 0x48  
I2C hexadecimal address: 0x49  
I2C hexadecimal address: 0x4a  
I2C hexadecimal address: 0x4b  
I2C hexadecimal address: 0x4c  
I2C hexadecimal address: 0x4d  
I2C hexadecimal address: 0x4e  
I2C hexadecimal address: 0x4f  
I2C hexadecimal address: 0x50  
I2C hexadecimal address: 0x51  
I2C hexadecimal address: 0x52  
I2C hexadecimal address: 0x53  
I2C hexadecimal address: 0x54  
I2C hexadecimal address: 0x55  
I2C hexadecimal address: 0x56  
I2C hexadecimal address: 0x57  
I2C hexadecimal address: 0x58  
I2C hexadecimal address: 0x59  
I2C hexadecimal address: 0x5a  
I2C hexadecimal address: 0x5b  
I2C hexadecimal address: 0x5c  
I2C hexadecimal address: 0x5d  
I2C hexadecimal address: 0x5e  
I2C hexadecimal address: 0x5f  
I2C hexadecimal address: 0x60  
I2C hexadecimal address: 0x61  
I2C hexadecimal address: 0x62  
I2C hexadecimal address: 0x63  
I2C hexadecimal address: 0x64  
I2C hexadecimal address: 0x65  
I2C hexadecimal address: 0x66  
I2C hexadecimal address: 0x67  
I2C hexadecimal address: 0x68  
I2C hexadecimal address: 0x69  
I2C hexadecimal address: 0x6a  
I2C hexadecimal address: 0x6b  
I2C hexadecimal address: 0x6c  
I2C hexadecimal address: 0x6d  
I2C hexadecimal address: 0x6e  
I2C hexadecimal address: 0x6f  
I2C hexadecimal address: 0x70  
I2C hexadecimal address: 0x71  
I2C hexadecimal address: 0x72  
I2C hexadecimal address: 0x73  
I2C hexadecimal address: 0x74  
I2C hexadecimal address: 0x75  
I2C hexadecimal address: 0x76  
I2C hexadecimal address: 0x77

Not sure what is going on, other than it looks like the code is attempting to read something from memory and its getting an IO error (access?)

---

<div class="post-metadata">

**Author:** ![Fgrossman](https://avatars.discourse-cdn.com/v4/letter/f/b77776/32.png) [@Fgrossman](https://xrp.discourse.group/u/Fgrossman)\
**Post date:** [October 15, 2024, 7:26pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497/2 "2024-10-15T19:26:14Z")

</div>

The on board IMU (gyros and accelerometers) are on the 12C bus. I looks like you are moving the 12C bus to GPIO 4&5 so the IMU code can no longer get data from the IMU on GPIO 18 & 19 casing an Errno 5.

---

<div class="post-metadata">

**Author:** ![Jeff](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jeff](https://xrp.discourse.group/u/Jeff)\
**Post date:** [October 15, 2024, 7:41pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497/3 "2024-10-15T19:41:01Z")

</div>

Missed one thing…

brand-new out of the box… no code changes, all ports setup properly, 19 other one setup the same exact way and they all work…

Any suggestions?

---

<div class="post-metadata">

**Author:** ![Jeff](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jeff](https://xrp.discourse.group/u/Jeff)\
**Post date:** [October 15, 2024, 7:43pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497/4 "2024-10-15T19:43:29Z")

</div>

Oh, and If I insert the i2c scan in the code (inside of the imu.\_getreg() function),  
the scan does not list anything…

Wondering if there a hardware issue?

---

<div class="post-metadata">

**Author:** ![Jeff](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jeff](https://xrp.discourse.group/u/Jeff)\
**Post date:** [October 15, 2024, 8:14pm UTC](https://xrp.discourse.group/t/oserror-errno-5-eio-related-to-i2c/497/5 "2024-10-15T20:14:05Z")

</div>

removed all code from the PICO, and rebuilt from another one…

everything works now.
