question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

PCA9685 found in i2cdetect but throws [Errno 121] Remote I/O error

See original GitHub issue

We’re trying a new devkit board for jetson nano (production edition): https://www.leopardimaging.com/product/nvidia-jetson-cameras/nvidia_nano_mipi_camera_kits/li-nano-cb/li-nano-cb/

It has an I2C header, we can see the address 40 in i2cdetect, but it throws errors in python: Screenshot 2020-09-16 at 13 55 51

WARNING: Carrier board is not from a Jetson Developer Kit.
WARNNIG: Jetson.GPIO library has not been verified with this carrier board,
WARNING: and in fact is unlikely to work correctly.
Traceback (most recent call last):
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_bus_device/i2c_device.py", line 172, in __probe_for_device
    self.i2c.writeto(self.device_address, b"")
  File "/home/jetson/.local/lib/python3.8/site-packages/busio.py", line 116, in writeto
    return self._i2c.writeto(address, buffer, stop=stop)
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 49, in writeto
    self._i2c_bus.write_bytes(address, buffer[start:end])
  File "/home/jetson/.local/lib/python3.8/site-packages/Adafruit_PureIO/smbus.py", line 308, in write_bytes
    self._device.write(buf)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_bus_device/i2c_device.py", line 178, in __probe_for_device
    self.i2c.readfrom_into(self.device_address, result)
  File "/home/jetson/.local/lib/python3.8/site-packages/busio.py", line 106, in readfrom_into
    return self._i2c.readfrom_into(address, buffer, stop=stop)
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 56, in readfrom_into
    readin = self._i2c_bus.read_bytes(address, end - start)
  File "/home/jetson/.local/lib/python3.8/site-packages/Adafruit_PureIO/smbus.py", line 179, in read_bytes
    return self._device.read(number)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "gst.py", line 30, in <module>
    pca = PCA9685(i2c, address = 0x40)
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_pca9685.py", line 137, in _init_
    self.i2c_device = i2c_device.I2CDevice(i2c_bus, address)
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_bus_device/i2c_device.py", line 68, in _init_
    self.__probe_for_device()
  File "/home/jetson/.local/lib/python3.8/site-packages/adafruit_bus_device/i2c_device.py", line 180, in __probe_for_device
    raise ValueError("No I2C device at address: %x" % self.device_address)
ValueError: No I2C device at address: 40
Exiting...
Cleaning up pins

Our code:

from board import SCL, SDA
import busio
from adafruit_pca9685 import PCA9685

from adafruit_motor import servo
i2c = busio.I2C(SCL, SDA)
pca = PCA9685(i2c, address = 0x40)

We understand it’s a custom board, but can you please at least point us in the right direction?

Thank you! R

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
razvanphpcommented, Sep 16, 2020

hey, thanks for the hint, worked like this:

from board import SCL_1, SDA_1
import busio
from adafruit_pca9685 import PCA9685

from adafruit_motor import servo
i2c = busio.I2C(SCL_1, SDA_1)
pca = PCA9685(i2c, address = 0x40)
0reactions
ladyadacommented, Sep 16, 2020

yeah it sounds liek you have an i2c pinout issue. check you ahve the right i2c device

Read more comments on GitHub >

github_iconTop Results From Across the Web

PCA9685 found in i2cdetect but throws [Errno 121] Remote I/O ...
IOError is likely a hardware issue. use a scope to look at the traces.
Read more >
i2c and IOError: [Errno 121] Remote I/O error
I've the two ports up, with the display currently connected to i2c0. i2cdetect only randomly detects my OLED (so I think the I/O...
Read more >
Getting IOError: [Errno 121] Remote I/O error with smbus on ...
Here is my python Code. Pretty straight forward but it causes some headache. import smbus import time bus = smbus.SMBus(1) ...
Read more >
I2C issues (121 remote i/o error) - Bela forum
I'm trying to control 14 RGB LED's using 3 PCA9685 pwm drivers, communicating through the Bela using I2C. The boards are chained together ......
Read more >
BME280 detected, but read fails with Remote I/O Error
My i2c bus is enabled. i2c-detect finds the sensor on 0x77: ... Error connecting to Device: 77, [Errno 121] Remote I/O error
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found