I have Compact RIO 9076 with 4 different modules: NI-9205 (Analog Input), NI-9264(Analog Output), NI-9402 (Bidirectional Digital I/O), NI-9403 (Bidirectional Digital I/O). I have several 3rd party sensors: mass flow sensor , pressure sensor, reed magnetic proximity sensor and another humidity sensor.

For some of the sensor, it's needed to communicate using I2C protocol, which requires in/out port and pull-up resistor. Do the modules include pull-up resistor inside? If so, what is the reference voltage for them, and how should I enable it?

I looked into their manuals and didn't find any information on pull-up/down resistors. Also, I didn't find information online.

Also the OVAL RV21 (Reed magnetic proximity sensor) require pull-down resistor. Do the modules include pull-down resistor inside? If yes, what is the reference voltage for them and how should I enable them?

Does CompactRio have modules with builtin pull-up/down resistors?


  • Sensirion SFM3000 (mass flow sensor) - powered with 5 V and I2C High is 3-5V;
  • First-Sensor HDI0611ARZ8P5 (pressure sensor) - powered with 5V and I2C high is 5V;
  • OVAL RV21 (Reed magnetic proximity sensor) - powered with 10V and requires pull-down;
  • Humidity sensor - powered with 3V and I2C high is 3V.
  • \$\begingroup\$ If it's not mentioned I any of the datasheets, then they probably don't. But even if they did, I would still use external resistors for I2C as the required resistance for good communication will be less than most internal pull up resistors (they are usually of the order of 20k+, whereas I2C likes <10k depending on load). \$\endgroup\$ Jul 14, 2015 at 11:43
  • \$\begingroup\$ Wouldn't NI, or an NI forum, be the most direct place to ask? \$\endgroup\$ Jul 14, 2015 at 12:18
  • 1
    \$\begingroup\$ Yes, for the amount that compactRIOs costs they can support many field applications engineers! \$\endgroup\$
    – Xcodo
    Jul 14, 2015 at 12:22

2 Answers 2


Thank you all I got answer from NI support

in general, it is possible to power up sensors using the AO NI-9264 since it acts as a floating voltage supply. You can out put any voltage in the ranges you specifies however, you should consider the fact that the output current of the module (Current Drive) is only 16mV. If this is enough for your sensors, then it should be OK.

NI-9264 Specs http://www.ni.com/pdf/manuals/374404e.pdf

Unfortunately, none of the modules you mentioned have a pull-up resistor.

The NI-9403 has a pull-down resistor on all channels and the reference voltage is 0.8V. You can see the specification of the module in the attached link.

NI-9403 Specs http://www.ni.com/pdf/manuals/374069e.pdf

  • \$\begingroup\$ 16mA output current is terrible, and almost all of your sensors will use more than this, especially in peak demand. \$\endgroup\$
    – KyranF
    Oct 16, 2015 at 21:26

Like my robotics club members did for the NI-ARC robotics competition in Australia, you must design some interface circuits on PCB/breadboard to provide the correct voltages, pull up/down resistors, protection circuits, and capacitors required to correctly interface with your various sensors. Do NOT connect stuff directly to the CompactRIO as it is very weak in terms of onboard protection, and it is very easy to destroy if you make a mistake. They are also terribly expensive.

For the protection of your RIO, I suggest all digital IO signals should have a series 100ohm resistor connecting them to the outside world.

Power rails like 5V or 3.3V should be externally provided from some kind of battery and linear/switching regulators. Do not rely on the onboard regulators for anything significant, it's not worth the risk. Obviously make sure the grounds are tied together/connected between your external power circuits and the RIO.

I2C resistors need to be strong, strong meaning LESS than 4.7K usually. Often i'll use 2.2K - 3.3K in my own designs, to ensure a good fast rising edge. If there were any built in pull up resistors, they are often in the range of 30-40K in these sorts of designs, and are more of an anti-glitch/level float prevention than actual useful communications interface pull up resistors.

I suggest diode clamps (for over and under/reverse voltage protection) on all inputs to the RIO as well, for it's nominal voltage rail (I think is 3.3V). If you interface with an external part which is 5 or more volts, use a voltage level conversion circuit (there are many, google them) before connecting to the RIO.

Good luck!

  • \$\begingroup\$ @OrHirshfeld Sorry it was very late.. \$\endgroup\$
    – KyranF
    Nov 25, 2015 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.