Type 4 Current Loop with PR33-7

Hi there,

I’ve recently purchased a PR33-7, which I plan to use with an Arduino in order to read the 4-20 mA output signal of a Ricelake SCT-10 Signal Conditioning Transmitter and Weight Indicator Display. The scale transmitter provides a 4-20 mA active signal; that is, the transmitter powers the current loop, so the receiver must act as a floating load (i.e. it is a Type 4 loop current, where the transmitter is the active element). In other words, without the need for an external power supply, I can connect my multi-meter directly the the SCT-10, and read the 4-20 mA current signal, which is proportional to the weight placed on the scale.

It is my understanding that the PR33-7 is, by default, configured to power the current loop itself (i.e. Type 2 loop current, where the receiver is the active element). But, can the current loop power supply from the PR33-7 be disabled so that it can be used in a type 4 loop current setup (e.g. via a jumper, etc.)? If not, should I have purchased a different model?

Thanking you in advance!


Hi Linabond,
The one you have has on board power supply and it can be disabled,
The one you need is this one


1 Like

Thank you for the reply Bhaskar! Just to make sure, did you mean to say that the power supply on the PR33-7 cannot be disabled? I think there might have been a typo in your response.

Thank you for the recommendation. Hopefully the folks at NCD will allow me to return the PR33-7, and credit me towards the purchase of the board you’re suggesting.

my bad… it can not be disabled.


1 Like

Thanks again for all your help Bhaskar!


The sample rate for the ADS1115 in the PR33-7 seems to be 128 SPS at 16-bit resolution, while the sample rate for the MCP3428 is only 15 samples per second at 16-Bit resolution. A sample rate of only 15 SPS is bit too low for my application. I would think that one could read current directly with the ADS115 by means of a shunt resistor (i.e. using the ADS115 to read the voltage drop across a shunt resistor placed in series with the current loop). Is the sole purpose of the INA 196 in the PR33-7 to be the voltage source for the current loop? If so, perhaps there might be a way to by-pass/remove it some how, and use the PR33-7 as a passive receiver. I’ve heard of people using the ADS115 board and a shunt resistor to read 4-20 mA signals. Perhaps a slight modification could be made to the PR33-7 in order to bypass/eliminate the voltage source. Any thoughts?

Thank you again for all of your help.

Best Regards,

Yes, there is a way to disable 16VDC. for this you will need to remove a part( this will void the warranty).

you can remove the diode( right under REV.A) text and this will disable the on board 16V supply.


1 Like


I apologize for the delay in responding. I was really busy at work last week, and didn’t have a chance to check messages. I really appreciate you letting me know about the trick of removing the diode. I don’t mind it if it voids the warranty. I just need it to work.

I was wondering if the folks at NCD would consider, in the future, adding a jumper to disable the diode, to allow sensors with type 4 transmitters.

Thanks again!


Per your suggestion, I removed the diode right under REV.A text on the PR33-7 in order to disable the on board 16V supply. I’ve been trying to get current readings from the PR33-7 with an Arduino Uno, when the PR33-7 is connected to my scale Ricelake SCT-10 Signal Conditioning Transmitter and Weight Indicator Display. (The scale transmitter provides a 4-20 mA active signal; that is, the transmitter powers the current loop, so the receiver must act as a floating load; you had suggested that i remove the diode in order to disable the on board 16V supply). Unfortunately, I’m essentially reading 0mA (with small fluctuations) with the PR33-7, even tough I can measure the correct current values with my multimeter. I’m wondering if I’m reading from the wrong I2C address.

This is my Arduino code:

#include <Wire.h>
#include <ADS1115.h>

ADS1115 ads;

void setup(void) {
ads.getAddr_ADS1115(ADS1115_DEFAULT_ADDRESS); // Default
ads.setGain(GAIN_TWO); // Default
ads.setMode(MODE_CONTIN); // Default is MODE_SINGLE, which is power-down single-shot mode
ads.setRate(RATE_128); // Default
ads.setOSMode(OSMODE_SINGLE); // Set to start a single-conversion

void loop(void) {
byte error;
int8_t address;
address = ads.ads_i2cAddress;
error = Wire.endTransmission();
if (error == 0) {
int16_t adc0;
Serial.println(“Getting Single-Ended Readings from AIN0…3”);
Serial.println(" ");
adc0 = ads.Measure_SingleEnded(0);
Serial.print("Digital Value of Analog Input at Channel 1: ");
float mACurrent = adc0 * 0.000628;
Serial.print("Current Loop Input at Channel 1: “);
else {
Serial.println(“ADS1115 Disconnected!”);
Serial.println(” “);
Serial.println(” ************ “);
Serial.println(” ");

This is a sample of my output:

Digital Value of Analog Input at Channel 1: 231
Current Loop Input at Channel 1: 0.145
Getting Single-Ended Readings from AIN0…3

Digital Value of Analog Input at Channel 1: 231
Current Loop Input at Channel 1: 0.145
Getting Single-Ended Readings from AIN0…3


I’m not sure why I’m not getting any readings. I was wondering if you could shed some light into the problem.

Thanking you in advance,


can you share a picture of your setup and also can you measure voltage across the on board screw terminal.


1 Like


The voltage across the board screw terminals is 11V when connected to the 4-20 mA output signal of a Ricelake SCT-10 Signal Conditioning Transmitter and Weight Indicator Display. It seems that there is something wrong. Below please find pictures of the PR33-7 after removing the diode, pictures of the setup, and pictures of readings with a multi-meter:

Please let me know your thoughts.

Best Regards,


Thanks for the pictures.
to isolate the on board power supply You will need to take couple more parts off the board.

connect the V COM to the round marked spot.
Connect mA to In screw terminal.


Thank you Bhaskar! OK, just to confirm, I must remove the surface mounted components labeled U2 and U7, and use the pad that you circled on your picture (i.e. where the diode used to be) as the “ground” (V com) contact. The “in” contact remains the same. Please confirm.

Yes, that is correct. I believe V com is the common voltage pin in the weight scale machine.

Hello Bhaskar!
Thank you for the prompt reply. I did the modifications you suggested, but I’m not yet getting any results. Here are the pictures of the board modifications, setup, and readings from the Arduino terminal:


Please let me know if there is any thing wrong.



strange I tired the same and it works over here.
Did you change the current output and see if the board reads the change.


Hello Bhaskar,
My apologies. I switched the current outputs/inputs as you suggested and it works now. Thank you again for all of your help!
Best Regards,


I have a laser range senor that has Power, GND and a 4-20 mA output and I bought the 2-Channel 4-20 mA Current Loop Receiver 16-Bit ADS1115 I2C Mini Module (SKU PR33-8).
I did as above where I connect 4-20 mA output from the sensor to IN1 and GND to V COM. The laser sensor is powered by 24 VDC.

I have a multi-meter in series and current reading is fine but i get no data when reading the i2c bus.
I have used the example code from https://github.com/ncdcommunity/Raspberry_Pi_ADS1115_16Bit_4Channel_ADC_Python_Library,
I have tried both single ended and differential and all four channels.

What could be wrong?

After a time I disconnected everything and started over again.
4-20mA from sensor connected to V_COM on board (soldered)
GND Connected to IN1 and GND sensor
24 VDC connected to power sensor

this way works BUT it turns the 2 channel into a 1 channel receiver. I have two sensors to read…
What would be the best way to solve it by 1 receiver?