1-Channel 4-20mA Current Loop Transmitter I2C Mini Module address 0x60/0x61 is not detected

Hey all,
I have an issue with i2c daisy chain of NCD devices on a system which I have inherited from some consultants who are no longer around.

The situation is that I have of multiple devices connected to a Raspberry Pi 3 compute module via a breakout board and everything is working perfectly. I need to extend the system and I want to add a 4-20 mA transmitter. I have connected it into the daisy chain and it should appear at address 0x60 or 0x61 (depending on the jumper pins) but it is not detected using i2c and I get an idea trying to communicate with it.

Full daisy chain
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: 20 21 22 23 24 25 26 27 – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – 48 – – 4b – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – UU – 6a – 6c – 6e 6f
70: – – – – – – – –

If it plug it directly into the break out board it is detected.
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – 61 – – – – – – UU – – – – – – –
70: – – – – – – – –

If I then try to daisy chain the other devices off the 4-20 transmitter, via the i2cout then it disappears and all the other devices appear.
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: 20 21 22 23 24 25 26 27 – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – 48 – – 4b – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – UU – 6a – 6c – 6e 6f
70: – – – – – – – –

It seems as if there is a driver, possibly located at address 0x68 that could be interfering. I have also noticed that the changing the address jumper pins on the 4-20 receivers does not appear to change the address at which they are detected; i.e. the device that appears at address 0x6f should appear at 0x6d according to the address jumper pins.

Looking for some ideas / guidance on where to go is resolving this as I am running out of ideas.

BTW I have setup the 4-20 transmitter up on i2c C0 and it works but would prefer to have it in the daisy chain with the other devices on i2c C1.

Any thoughts or feedback would be greatly appreciated.

Cheers

Can you provide photos of the hardware plugged in to the Pi?

PI with breakout board

The daisy chain off all boards


These are the lower boards

That’s a pretty long chain of boards. There may be some voltage drop on the I2C bus when adding boards to it. Try externally powering the lower boards instead of Bus powering them. They will need 12VDC.

All boards in the current daisy chain are externally powered and everything in this chain works. I want to add the 4-20 transmitter. If i plug it directly off the expansion board, without any other devices then I can see it at address 0x61 but as soon as I plug it into the daisy chain I cannot.

The guys who set the system up have disconnected the 5v power that feeds the bus from the expansion board, which you can see in the pictures above, which is why I plug the 4-20 transmitter first in line off the expansion board (so that has bus power) and piggy back the rest of the daisy chain from there.
image

If I replace this lead with one that is complete I get the same result and the transmitter is not displayed.

Can I hot swap board or should I reboot after changing the address on any of the NCD boards, particularly the 4-20 receivers?

There are a number of rails in this system 5V, 12V and 24V. I am pretty sure the boards are all externally powered off the 12v rail and can check tomorrow. In any case, all the current boards are working, the only problem is adding the new board.

I can only assume this is caused by too much voltage drop on the SCL/SDA lines for the I2C bus. The longer the chain the lower that voltage drops. This may simply be exceeding the bus length capability. It does not appear to be a bus address conflict.

Hi Travis,

This is not voltage drop issue. I have another unit with the identical daisy chain but have the 4-20 transmitter board working on it, i.e. all ncd devices appears in the daisy chain. The I2C is daisy chain is identically wired however one system is running the Buster (Debian 10) os on the raspberry pi module, which is working and this system is running the Bullseye (Debian 11) os.

I believe that the issue is linked to something new or different in the Bullseye os so I am currently trialling modules with various os versions and a smaller device chain to see if I can get this working on the Debian 11 os. Once I have it working there and have identified the problem I’ll retrofit the changes but into this unit with the larger I2C daisy chain.

Hi Travis,

Further digging has revealed the following and I was hoping you (or someone else)may shed some light on.

When I do a i2cdetect -y 1 n the Pi without any devices, I get either a device at 0x68 or a UU (driver). This is on 2 different pi which are both running Debian 11 (Bullseye). The only difference I can see is on the systems that doesn’t identify the 4-20 transmitter there is a UU on at address 0x68 on the other system there is 0x68 appearing (see below).

I think there is back to what the UU means at 0x68 and if it is a driver or some configuration on the pi how to change or remove it.

The issue is resolved and appears to be due to a driver or software that is loaded on the pi and is not associated with voltage drop. I build a new pi with a fresh install of the debian 11 os (Bullseye) and i2cdetect correctly identifies the 4-20 transmitter.

Not sure what the driver or software or software was but I don’t think it is worth any more effort in chasing it down.