4-20mA receiver design

I'm trying to desing a 4-20mA receiver for arduino and I have a couple of questions. first, this is what I base my desing on:

4-20mA current loop receiver

First, I think I understand most of the design, except for the R5 resistor... I'm not sure but is this resistor divide by 2 the input on the U1B ?

Secondly, that design work with AVR board, but I want to make it compatible with 3.3v base board. I can't have a lower than 1 gain so another solution is to put a serial resistor like R5 to divide the voltage at the input of U1B ( that's were this resistor bugging me).

another thing, if not 4-20 device is connected to the input receiver, the output , with the 1V to 0 offset, will be -1V. so to protect the board, can I put a reverse diode from ground to the receiver output or at the output of the U1B ? or a better solution...


Ok just done my math… and understant the R5 function.

That’s leave me only with the potection diode… What can I do… ?

nitrof: Ok just done my math... and understant the R5 function. That's leave me only with the potection diode... What can I do.. ?

Regarding "Figure 3"?

…that design work with AVR board, but I want to make it compatible with 3.3v base board.

Use a 51ohm 1% metalfilm resistor for the current to voltage conversion.
And a 10k resistor between the 51ohm resistor and analogue-in for pin protecton.
A 100n cap from analogue pin to ground might help in noisy environments.
Post a diagram if you’re not sure.

Read the 0.204 to 1.020volt across the 51ohm resistor with Arduino’s more stable ~1.1volt Aref.
Works on 3.3volt and 5volt Arduinos.

That's what I have done so far...


I had a jumper to selec output mode and add an another pot to trim the ouput to be full 0 3.3 and 0-5V instead of 0-4v.

It doesn't need to be that complex. A MAX14626 chip can provide all the protection functions and then you just need a 150Ohm resistor to convert current to voltage (for a 5V Arduino.) You should not try to remove the 4mA offset in analog circuitry because then your Arduino can't detect the 0mA "broken wire" fault. Remove the offset in your software.

More (parts) is always better....