Forum >I²C Timeout and Bus Lock Issues with DFRobot IIC-UART Converter

I²C Timeout and Bus Lock Issues with DFRobot IIC-UART Converter

userHead Domokos.Kertesz 2025-03-31 19:07:05 1163 Views1 Replies

Hi,

 

I am experiencing I²C communication issues when using the DFRobot IIC-UART converter on a shared I²C bus. The issue appears as timeout errors or I/O error, and the bus stops responding. I'm using a Raspberry pi 5 as a master device.

 

I modified the Pyhton lib's init function, because I want to use a shared bus as a parameter to the constructor.

 

Setup and Connections

Raspberry Pi as I²C master (3.3V logic)

DFRobot IIC-UART converter connected via I²C

Pull-up resistors: 10kΩ on SDA/SCL

I²C speed: 50 kHz (also tested 400, 100 kHz)

Power supplied from external power supply (up to 5A)

Common ground

RST pin connected to 3v3

 

Observed Behavior

The I²C bus works initially but eventually becomes unresponsive.

If I disconnect the DFRobot IIC-UART converter, I can restart the I²C communication without rebooting, and the bus works fine.

If I reboot the Raspberry Pi, the issue does not occur again immediately, but occur after a few minutes (1-3 min), even if i dont even initialize the lib.

The issue persists across different I²C speeds (50 kHz, 400 kHz).

 

What I Have Tried

Running i2cdetect -y 1 shows multiple I²C addresses for the converter (as expected), but no conflicts.

Reducing I²C speed to 50 kHz and 10 kHz to handle potential clock stretching.

Adding stronger pull-up resistors (4.7Ω) instead of 10kΩ.

Disconnecting the converter resolves the issue.

Reloading the I²C driver (rmmod i2c_bcm2835 && modprobe i2c_bcm2835) sometimes helps temporary.

 

Questions

Has anyone encountered similar timeout issues with this module?

Could the converter be holding SDA LOW due to UART buffering?

Is there a known hardware or firmware issue when using this module on a shared I²C bus?

Would adding a GPIO-controlled reset circuit for the converter help?

Any insights or suggestions would be appreciated. Thanks in advance.

 

Thanks!

2025-07-26 00:49:40

Hi

You do not need to add the sda/scl pullup resistors because the are   already installed in the module. They are 5.1K. You have to be careful if you have other modules connected to the I2c . You need to have just only one pullup resistors connected at the end of the I2C line. You may need to remove them from the modules and let only one connected. Hope it works for you

userHeadPic TomasRosario