4-Channel 4-20mA Input USB Wireless endNode reading error


We are using several ‘4-Channel 4-20mA Input USB Wireless endNode’ in a project for an industrial customer. Each of the endnode 4-20mA inputs is connected to a current transducer (2A or 600A) which provides a 4-20mA output signal compatible with the endnode inputs.

Like all current transducers, I believe, the transducers we use do not require calibration.

We use the formula ‘4-20mA Value = ((MSB * 256)+LSB) * 0.0013568521031208’ to convert Endnode signals into 4-20mA values.

For example, for one of the Endnodes we obtain the following values when the current sensors read a current of 0A:

Input 1: 4.013 mA (+0.013 mA, +0.325%)
Input 2: 3.8975 mA (-0.1025 mA, -2.5625%)
Input 3 : 3.885 mA (-0.115 mA, -2.875%)
Input 4 : 3.86725 mA (-0.13275 mA, -3.31875%)

Since, for example, the values read vary by up to -3.3% (-0.13275mA) for input 4, I think we need to implement a calibration function so that the Endnode provides an accurate value of 4mA when the current read by the sensor is 0A.

What do you think would be the best way to do this, given the type of error the Endnode’s inputs can cause?

  1. Simply add 0.13275mA to all read values ? (see input 4 value)
  2. Multiply the values read by 103.3% ? (see input 4 value)

Thank you :slight_smile:

There will always be some variability in electronic components such as the resisters in the 4-20mA End Node input channels. For this reason it’s always a good idea to tune the equation for conversion against calibrated readings.

What I often do is break the 4-20mA signal into 4 zones . With the threshold of those zones being 8mA, 12mA, and 16mA.

I apply a 6mA signal to the input and tune the equation to convert ADC to exactly 6mA, then I apply a 10mA signal and tune the equation to convert ADC to exactly 8mA, then do the same for 14mA, and 18mA. This gives us 4 different equations for each zone. Now when I take a reading I will evaluate which zone the ADC reading falls into and apply the formula for that zone.

This is the best way to get the most accurate reading. It takes some time but if you want extremely accurate results it’s your best bet since the variability is not always linear in this case.

This tuning should be done to each channel individually.

Hello Travis

Thank you very much for sharing your calibration method. It’s really brilliant. This is what I’m going to integrate into the conversion algorithms for future projects :slight_smile:

However, in this case the Endnodes are already installed and working at our customer’s site. So we can’t apply your method. So I guess we have no choice but to :

  1. Simply add the missing fraction needed to make the output value 4 mA when no current is read by the sensor.
  2. Use a multiplication factor for the whole range from 4 to 20 mA.

Knowing that the result won’t be perfect, which method do you think would be closest to the right result?


I would go with solution 1 and see what results you get.

Hello Travis

Thanks for your advice. I will try this way

And next time I’ll use your calibration method.