Onion Omega2+ with 12 channel 4-20mA Receiver Board - Inconsistant Readings

Hi Bhaskar,

I Just received my order of 3 x 12 port 4-20mA Boards (PR33-28) with Onion Omega 2+ and I2C + Ethernet board for onion omega. Looking for examples I only found the python script.

Being more of an infrastructure kind of guy I was hoping to use i2cget and i2cset in a bash script to do the work for me. Have you managed to get that working reliably?

Anyway in the interest of science i decided to give the python script a go.

I have set the jumper addresses on the board to 0x6A, 0x6B and 0x6C respectively.

I have taken your python code example from github changed the address and extended the sleep time as I read somewhere that can have an impact on reliable readings.

I’m just testing with one port (as I only 1 4-20 signal generator) Here’s the Code:

# Distributed with a free-will license.
# Use it any way you want, profit or free, provided it fits in the licenses of its associated works
# MCP3428
# This code is designed to work with the MCP3428 4-20mA current receiver board available from Contr
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-20ma-current
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-channel-4-20
from OmegaExpansion import onionI2C
import time
DL = 0.01
DL1 = 1.01
# Get I2C bus
i2c = onionI2C.OnionI2C()

# MCP3428 address, 0x6A(104)
# Send configuration command
while True:
#0x10(16)Continuous conversion mode, Channel-1, 12-bit Resolution
        data = [0x11]
        i2c.write(0x6A, data)
        time.sleep(DL1)
# MCP3428 address, 0x68(104)
# Read data back from 0x00(0), 2 bytes
# raw_adc MSB, raw_adc LSB
        data = i2c.readBytes(0x6A, 0x00, 2)

# Convert the data to 12-bits
        raw_adc = (data[0] & 0x0F) * 256 + data[1]
        if raw_adc > 2047 :
                raw_adc -= 4095
        current = (raw_adc * 0.01109)
# Output data to screen
        print "Current Input at Channel One is    : %.3f" %current
        time.sleep(DL)

I notice that the readings from the board are all over the place.

Here’s the Output:

root@Omega-E70F:~/Onion-Omega-2-4-20mA-Current-Receiver# python sams_4-20mA_G2.py
Current Input at Channel One is : 3.815
Current Input at Channel One is : 2.983
Current Input at Channel One is : 3.039
Current Input at Channel One is : 3.105
Current Input at Channel One is : 3.815
Current Input at Channel One is : 3.638
Current Input at Channel One is : 3.704
Current Input at Channel One is : 2.861
Current Input at Channel One is : 3.094
Current Input at Channel One is : 3.815
Current Input at Channel One is : 3.693
Current Input at Channel One is : 3.571
Current Input at Channel One is : 2.883
Current Input at Channel One is : 3.094
Current Input at Channel One is : 3.116
Current Input at Channel One is : 3.815
Current Input at Channel One is : 3.671
Current Input at Channel One is : 3.748
Current Input at Channel One is : 2.861
Current Input at Channel One is : 3.094
Current Input at Channel One is : 3.316
Current Input at Channel One is : 3.815
Current Input at Channel One is : 2.906
Current Input at Channel One is : 3.016
Current Input at Channel One is : 3.771
Current Input at Channel One is : 3.649
Current Input at Channel One is : 3.449
Current Input at Channel One is : 2.894
Current Input at Channel One is : 3.016
Current Input at Channel One is : 3.771
Current Input at Channel One is : 3.649
Current Input at Channel One is : 3.405
Current Input at Channel One is : 3.760
Current Input at Channel One is : 3.682
Current Input at Channel One is : 3.726
Current Input at Channel One is : 2.906
Current Input at Channel One is : 3.094
Current Input at Channel One is : 3.161
Current Input at Channel One is : 3.793

The current generator is sending a 4.00mA signal

Any Ideas as to why it might be so wonky ? I was reading a thread on the onion omega forum about the omega2+ having issues with I2C implementation http://community.onion.io/topic/2312/i2c-detect-slave-method not sure if this has anything to do with it.

Hi,
what was your sleep time settings during the testing
DL = 0.01
DL1 = 1.01

one other thing you can try is changing the resolution to 16 bit and read the ADC, this will slow down the refresh rate but you should get much reliable readings.

i did try i2c set, get , detect but didnt get much out of them. i think there are some patch which can be used to fix the i2c.

Thanks

HI there,

yes thats correct the sleep times were as per the code.

I have tried to modify the code to do 16bit but I am lost when it comes to doing the conversion… I realise I need to change the way I get the raw adc value and how i convert it to current but I just cant see how. I did look at the arduino code but still couldnt work out what to do the for the raw value. I also took a look at the datasheet (page 16) but I am way out of my depth. Please can you help me out. It seems the values are far more stable at 16bit if only I could convert them into something meaningful ! Your assitance with this would be greatly appreciated.

# Distributed with a free-will license.
# Use it any way you want, profit or free, provided it fits in the licenses of its associated works
# MCP3428
# This code is designed to work with the MCP3428 4-20mA current receiver board available from Contr
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-20ma-current
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-channel-4-20
from OmegaExpansion import onionI2C
import time
DL = 1.01
DL1 = 2.01
# Get I2C bus
i2c = onionI2C.OnionI2C()

# MCP3428 address, 0x6A(104)
# Send configuration command
while True:
#0x10(16)Continuous conversion mode, Channel-1, 16-bit Resolution
        data = [0x19]
        i2c.write(0x6A, data)
        time.sleep(DL1)
# MCP3428 address, 0x68(104)
# Read data back from 0x00(0), 2 bytes
# raw_adc MSB, raw_adc LSB
        data = i2c.readBytes(0x6A, 0x00, 2)

# Convert the data to 16-bits
        raw_adc = (data[0] & 0x0F) * 256 + data[1]
        if raw_adc > 2047 :
                raw_adc -= 4095
        current = (raw_adc * 0.01109)
# Output data to screen
        print "Raw ADC Value at Channel One is    : %.3f" %raw_adc
        print "Current Input at Channel One is    : %.3f" %current
        time.sleep(DL)

Here’s the output from the 12bit resolution (0x11) code this is with a value of 8mA on the current generator

Raw ADC Value at Channel One is : 647.000
Current Input at Channel One is : 7.175
Raw ADC Value at Channel One is : 682.000
Current Input at Channel One is : 7.563
Raw ADC Value at Channel One is : 652.000
Current Input at Channel One is : 7.231
Raw ADC Value at Channel One is : 663.000
Current Input at Channel One is : 7.353
Raw ADC Value at Channel One is : 648.000
Current Input at Channel One is : 7.186
Raw ADC Value at Channel One is : 668.000
Current Input at Channel One is : 7.408
Raw ADC Value at Channel One is : 660.000
Current Input at Channel One is : 7.319
Raw ADC Value at Channel One is : 681.000
Current Input at Channel One is : 7.552
Raw ADC Value at Channel One is : 653.000
Current Input at Channel One is : 7.242
Raw ADC Value at Channel One is : 663.000
Current Input at Channel One is : 7.353

and here’s the output from the 16bit (0x19) code

Raw ADC Value at Channel One is : -1679.000
Current Input at Channel One is : -18.620
Raw ADC Value at Channel One is : -1681.000
Current Input at Channel One is : -18.642
Raw ADC Value at Channel One is : -1679.000
Current Input at Channel One is : -18.620
Raw ADC Value at Channel One is : -1680.000
Current Input at Channel One is : -18.631
Raw ADC Value at Channel One is : -1682.000
Current Input at Channel One is : -18.653
Raw ADC Value at Channel One is : -1683.000
Current Input at Channel One is : -18.664
Raw ADC Value at Channel One is : -1678.000
Current Input at Channel One is : -18.609
Raw ADC Value at Channel One is : -1681.000
Current Input at Channel One is : -18.642
Raw ADC Value at Channel One is : -1682.000
Current Input at Channel One is : -18.653
Raw ADC Value at Channel One is : -1682.000
Current Input at Channel One is : -18.653
Raw ADC Value at Channel One is : -1682.000
Current Input at Channel One is : -18.653

Regards,

Sam

from OmegaExpansion import onionI2C
import time
DL = 1.01
DL1 = 2.01

Get I2C bus
i2c = onionI2C.OnionI2C()

MCP3428 address, 0x6A(104)
Send configuration command
while True:
#0x10(16)Continuous conversion mode, Channel-1, 16-bit Resolution
data = [0x18]
i2c.write(0x6A, data)
time.sleep(DL1)

MCP3428 address, 0x68(104)
Read data back from 0x00(0), 2 bytes
raw_adc MSB, raw_adc LSB
data = i2c.readBytes(0x6A, 0x00, 2)
Convert the data to 16-bits
raw_adc = ((data[0] * 256) + data[1])
if raw_adc > 32767:
raw_adc -= 65536
current = (raw_adc * 0.001380)
Output data to screen
print “Raw ADC Value at Channel One is : %.3f” %raw_adc
print “Current Input at Channel One is : %.3f” %current
time.sleep(DL)

let me know if this works.

Hi thanks for getting back to me on a Sunday morning, much appreciated :smile:

I ran up the code

# Distributed with a free-will license.
# Use it any way you want, profit or free, provided it fits in the licenses of its associated works
# MCP3428
# This code is designed to work with the MCP3428 4-20mA current receiver board available from Contr
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-20ma-current
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-channel-4-20
from OmegaExpansion import onionI2C
import time
DL = 1.01
DL1 = 2.01
# Get I2C bus
i2c = onionI2C.OnionI2C()

# MCP3428 address, 0x6A(104)
# Send configuration command
while True:
#0x10(16)Continuous conversion mode, Channel-1, 16-bit Resolution
        data = [0x18]
        i2c.write(0x6A, data)
        time.sleep(DL1)
# MCP3428 address, 0x68(104)
# Read data back from 0x00(0), 2 bytes
# raw_adc MSB, raw_adc LSB
        data = i2c.readBytes(0x6A, 0x00, 2)

# Convert the data to 16-bits
        raw_adc = ((data[0] * 256) + data[1])
        if raw_adc > 32767:
                raw_adc -= 65536
        current = (raw_adc * 0.001380)
# Output data to screen
        print "Raw ADC Value at Channel One is    : %.3f" %raw_adc
        print "Current Input at Channel One is    : %.3f" %current
        time.sleep(DL)

Current generator Output at 10mA My cheap multi meter has it at 10.03

now I am getting values of:

Current Input at Channel One is : 9.446
Raw ADC Value at Channel One is : 6846.000
Current Input at Channel One is : 9.447
Raw ADC Value at Channel One is : 6844.000
Current Input at Channel One is : 9.445
Raw ADC Value at Channel One is : 6844.000
Current Input at Channel One is : 9.445
Raw ADC Value at Channel One is : 6840.000
Current Input at Channel One is : 9.439
Raw ADC Value at Channel One is : 6841.000
Current Input at Channel One is : 9.441
Raw ADC Value at Channel One is : 6840.000
Current Input at Channel One is : 9.439
Raw ADC Value at Channel One is : 6841.000
Current Input at Channel One is : 9.441
Raw ADC Value at Channel One is : 6840.000
Current Input at Channel One is : 9.439
Raw ADC Value at Channel One is : 6841.000
Current Input at Channel One is : 9.441
Raw ADC Value at Channel One is : 6843.000
Current Input at Channel One is : 9.443

Set the generator to 4mA and got this:

Raw ADC Value at Channel One is : 2472.000
Current Input at Channel One is : 3.411
Raw ADC Value at Channel One is : 2471.000
Current Input at Channel One is : 3.410
Raw ADC Value at Channel One is : 2473.000
Current Input at Channel One is : 3.413
Raw ADC Value at Channel One is : 2473.000
Current Input at Channel One is : 3.413
Raw ADC Value at Channel One is : 2474.000
Current Input at Channel One is : 3.414
Raw ADC Value at Channel One is : 2476.000
Current Input at Channel One is : 3.417
Raw ADC Value at Channel One is : 2475.000
Current Input at Channel One is : 3.415
Raw ADC Value at Channel One is : 2476.000
Current Input at Channel One is : 3.417
Raw ADC Value at Channel One is : 2478.000
Current Input at Channel One is : 3.420
Raw ADC Value at Channel One is : 2478.000
Current Input at Channel One is : 3.420

Then set it to 20mA and got this

Current Input at Channel One is : 19.499
Raw ADC Value at Channel One is : 14126.000
Current Input at Channel One is : 19.494
Raw ADC Value at Channel One is : 14124.000
Current Input at Channel One is : 19.491
Raw ADC Value at Channel One is : 14122.000
Current Input at Channel One is : 19.488
Raw ADC Value at Channel One is : 14119.000
Current Input at Channel One is : 19.484
Raw ADC Value at Channel One is : 14115.000

according to your setup, this should provide the best results
change this
current = (raw_adc * 0.001380)
to this
current = (raw_adc * 0.001461)
the on board parts have around 2% tolerance, so you might see some fluctuations.

Cheers!!!

Hi there,

I updated the code with the new value and got the following results:

Signal mA Raw ADC Calculated Value Diff
4 2512 3.67 -0.33
5 3237 4.73 -0.27
6 3962 5.78 -0.22
7 4685 6.85 -0.15
8 5412 7.9 -0.1
9 6136 8.98 -0.02
10 6871 10.04 0.04
11 7601 11.1 0.1
12 8321 12.15 0.15
13 9044 13.2 0.2
14 9768 14.27 0.27
15 10500 15.33 0.33
16 11222 16.39 0.39
17 11947 17.45 0.45
18 12670 18.5 0.5
19 13390 19.56 0.56
20 14120 20.62 0.62

This seems like a pretty big slide in values.

If we are using 16bit resolution then shouldn’t we have a wider range of ADC values and therefore see less error in the calculation ?

could you share the part number of your 4-20mA signal generator ?
could you perform the above test with 12bit?

yes, the values should be much linear, i never seen this kind of non linearity. i use this meter for testing
https://www.theautomationstore.com/analog-simulator-and-generator-with-lcd-0-10vdc-and-4-20ma/?gclid=Cj0KCQjwxN_XBRCFARIsAIufy1YThW_RDFOx74ePY1U2OjEt7PmJwgq54m5o7AMhcGnzTeFk0xwemaQaAkZgEALw_wcB

try adding a 10uf capacitor at the channel inout as well.

Thanks

Hi,

Here’s a picture of the generator along with some tests of the output to my meter.

Ran the 12bit example code again

# Distributed with a free-will license.
# Use it any way you want, profit or free, provided it fits in the licenses of its associated works
# MCP3428
# This code is designed to work with the MCP3428 4-20mA current receiver board available from Contr
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-20ma-current
# https://shop.controleverything.com/collections/4-20-ma-current-loop-input/products/4-channel-4-20
from OmegaExpansion import onionI2C
import time
DL = 0.01
DL1 = 1.01
# Get I2C bus
i2c = onionI2C.OnionI2C()

# MCP3428 address, 0x6A(104)
# Send configuration command
while True:
#0x10(16)Continuous conversion mode, Channel-1, 12-bit Resolution
        data = [0x11]
        i2c.write(0x6A, data)
        time.sleep(DL1)
# MCP3428 address, 0x68(104)
# Read data back from 0x00(0), 2 bytes
# raw_adc MSB, raw_adc LSB
        data = i2c.readBytes(0x6A, 0x00, 2)

# Convert the data to 12-bits
        raw_adc = (data[0] & 0x0F) * 256 + data[1]
        if raw_adc > 2047 :
                raw_adc -= 4095
        current = (raw_adc * 0.01109)
# Output data to screen
        print "ADC Input at Channel One is    : %.3f" %raw_adc
        print "Current Input at Channel One is    : %.3f" %current

        time.sleep(DL)

and got the follwing results starting with nothing connected then generating 4mA then 10mA then 20mA

ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 6.000
Current Input at Channel One is : 0.067
ADC Input at Channel One is : 209.000
Current Input at Channel One is : 2.318
ADC Input at Channel One is : 11.000
Current Input at Channel One is : 0.122
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 3.000
Current Input at Channel One is : 0.033
ADC Input at Channel One is : 2.000
Current Input at Channel One is : 0.022
ADC Input at Channel One is : 297.000
Current Input at Channel One is : 3.294
ADC Input at Channel One is : 281.000
Current Input at Channel One is : 3.116
ADC Input at Channel One is : 297.000
Current Input at Channel One is : 3.294
ADC Input at Channel One is : 334.000
Current Input at Channel One is : 3.704
ADC Input at Channel One is : 326.000
Current Input at Channel One is : 3.615
ADC Input at Channel One is : 338.000
Current Input at Channel One is : 3.748
ADC Input at Channel One is : 306.000
Current Input at Channel One is : 3.394
ADC Input at Channel One is : 283.000
Current Input at Channel One is : 3.138
ADC Input at Channel One is : 297.000
Current Input at Channel One is : 3.294
ADC Input at Channel One is : 291.000
Current Input at Channel One is : 3.227
ADC Input at Channel One is : 333.000
Current Input at Channel One is : 3.693
ADC Input at Channel One is : 331.000
Current Input at Channel One is : 3.671
ADC Input at Channel One is : 306.000
Current Input at Channel One is : 3.394
ADC Input at Channel One is : 289.000
Current Input at Channel One is : 3.205
ADC Input at Channel One is : 293.000
Current Input at Channel One is : 3.249
ADC Input at Channel One is : 331.000
Current Input at Channel One is : 3.671
ADC Input at Channel One is : 329.000
Current Input at Channel One is : 3.649
ADC Input at Channel One is : 330.000
Current Input at Channel One is : 3.660
ADC Input at Channel One is : 325.000
Current Input at Channel One is : 3.604
ADC Input at Channel One is : 283.000
Current Input at Channel One is : 3.138
ADC Input at Channel One is : 293.000
Current Input at Channel One is : 3.249
ADC Input at Channel One is : 500.000
Current Input at Channel One is : 5.545
ADC Input at Channel One is : 566.000
Current Input at Channel One is : 6.277
ADC Input at Channel One is : 752.000
Current Input at Channel One is : 8.340
ADC Input at Channel One is : 833.000
Current Input at Channel One is : 9.238
ADC Input at Channel One is : 839.000
Current Input at Channel One is : 9.305
ADC Input at Channel One is : 841.000
Current Input at Channel One is : 9.327
ADC Input at Channel One is : 880.000
Current Input at Channel One is : 9.759
ADC Input at Channel One is : 871.000
Current Input at Channel One is : 9.659
ADC Input at Channel One is : 881.000
Current Input at Channel One is : 9.770
ADC Input at Channel One is : 864.000
Current Input at Channel One is : 9.582
ADC Input at Channel One is : 829.000
Current Input at Channel One is : 9.194
ADC Input at Channel One is : 842.000
Current Input at Channel One is : 9.338
ADC Input at Channel One is : 834.000
Current Input at Channel One is : 9.249
ADC Input at Channel One is : 853.000
Current Input at Channel One is : 9.460
ADC Input at Channel One is : 882.000
Current Input at Channel One is : 9.781
ADC Input at Channel One is : 843.000
Current Input at Channel One is : 9.349
ADC Input at Channel One is : 830.000
Current Input at Channel One is : 9.205
ADC Input at Channel One is : 845.000
Current Input at Channel One is : 9.371
ADC Input at Channel One is : 832.000
Current Input at Channel One is : 9.227
ADC Input at Channel One is : 881.000
Current Input at Channel One is : 9.770
ADC Input at Channel One is : 868.000
Current Input at Channel One is : 9.626
ADC Input at Channel One is : 884.000
Current Input at Channel One is : 9.804
ADC Input at Channel One is : 868.000
Current Input at Channel One is : 9.626
ADC Input at Channel One is : 827.000
Current Input at Channel One is : 9.171
ADC Input at Channel One is : 841.000
Current Input at Channel One is : 9.327
ADC Input at Channel One is : 847.000
Current Input at Channel One is : 9.393
ADC Input at Channel One is : 880.000
Current Input at Channel One is : 9.759
ADC Input at Channel One is : 873.000
Current Input at Channel One is : 9.682
ADC Input at Channel One is : 859.000
Current Input at Channel One is : 9.526
ADC Input at Channel One is : 827.000
Current Input at Channel One is : 9.171
ADC Input at Channel One is : 844.000
Current Input at Channel One is : 9.360
ADC Input at Channel One is : 832.000
Current Input at Channel One is : 9.227
ADC Input at Channel One is : 869.000
Current Input at Channel One is : 9.637
ADC Input at Channel One is : 878.000
Current Input at Channel One is : 9.737
ADC Input at Channel One is : 877.000
Current Input at Channel One is : 9.726
ADC Input at Channel One is : 965.000
Current Input at Channel One is : 10.702
ADC Input at Channel One is : 1340.000
Current Input at Channel One is : 14.861
ADC Input at Channel One is : 1701.000
Current Input at Channel One is : 18.864
ADC Input at Channel One is : 1681.000
Current Input at Channel One is : 18.642
ADC Input at Channel One is : 1738.000
Current Input at Channel One is : 19.274
ADC Input at Channel One is : 1753.000
Current Input at Channel One is : 19.441
ADC Input at Channel One is : 1743.000
Current Input at Channel One is : 19.330
ADC Input at Channel One is : 1771.000
Current Input at Channel One is : 19.640
ADC Input at Channel One is : 1789.000
Current Input at Channel One is : 19.840
ADC Input at Channel One is : 1775.000
Current Input at Channel One is : 19.685
ADC Input at Channel One is : 1795.000
Current Input at Channel One is : 19.907
ADC Input at Channel One is : 1747.000
Current Input at Channel One is : 19.374
ADC Input at Channel One is : 1747.000
Current Input at Channel One is : 19.374
ADC Input at Channel One is : 1746.000
Current Input at Channel One is : 19.363
ADC Input at Channel One is : 1740.000
Current Input at Channel One is : 19.297
ADC Input at Channel One is : 1788.000
Current Input at Channel One is : 19.829
ADC Input at Channel One is : 1779.000
Current Input at Channel One is : 19.729
ADC Input at Channel One is : 1793.000
Current Input at Channel One is : 19.884
ADC Input at Channel One is : 1766.000
Current Input at Channel One is : 19.585
ADC Input at Channel One is : 1740.000
Current Input at Channel One is : 19.297
ADC Input at Channel One is : 1758.000
Current Input at Channel One is : 19.496
ADC Input at Channel One is : 1743.000
Current Input at Channel One is : 19.330
ADC Input at Channel One is : 1787.000
Current Input at Channel One is : 19.818
ADC Input at Channel One is : 1778.000
Current Input at Channel One is : 19.718
ADC Input at Channel One is : 1792.000
Current Input at Channel One is : 19.873
ADC Input at Channel One is : 1742.000
Current Input at Channel One is : 19.319
ADC Input at Channel One is : 1794.000
Current Input at Channel One is : 19.895

I’ll see if I can dig out a capacitor today and test again.

Regards,

Sam

Hi

I didnt have a capicitor so I havent been able to test with one. However, when I measure the signal with the meter it is stable so it seems the current generator is outputing a stable signal, its just the reads from the ncd board that fluctuate. Could this be an onion omega issue ?

Regards,

Sam

the other thing we can check the power supply, if its noisy it could create some issue.
i never seen non linearity with these boards.

Thanks

Now you say that ,this is how the power is set up…

220V comes from an APC UPS

The plan is htere are 5 systems, each system will have a single 24v PSU and consisit of an array of sensors the ncd board and an onion omega.

Phoenix contacts 24v 2.4A -> (Powering sensors up to 12 4-20mA)
Phoenix contacts 24v 2.4A -> 24/12 DCDC isolator (Used as a stepdown) -> NCD Board
Phoenix contacts 24v 2.4A -> 24/5v DCDC isolator (used as a step down) -> Onion Omega

Could the isolators be causing an issue ?

you could try it without the isolators and see if the noise goes away ( i doubt it will).
do you have any arduino? you could test it using an arduino and see if that changes anything.