cRIO-9951 Module Developer Kit (MDK) Overview

Publish Date: May 08, 2013 | 1 Ratings | 4.00 out of 5 |  PDF


The CompactRIO I/O Module Development Kit enables third parties, such as system integrators, alliance members, and individual users, to create the custom CompactRIO modules necessary to complete their system. Custom modules have the same mechanical and electrical requirements as National Instruments (NI) modules. The software interface presented to the end-user of the CompactRIO module is the primary difference between a custom and a standard module. Users interact with standard modules using high-level Device I/O functions that abstract the user from the details of the physical interface to the module. The Device I/O functions for each NI module are included with the NI-RIO software. The I/O Module Development Kit includes Device I/O function support for a target called cRIO-Generic. The cRIO-generic target provides low-level software access to the custom module directly through the CompactRIO C Series connector pins. This enables you to create low level driver Vis written in the LabVIEW FPGA Module, which can provide a similar level of abstraction as standard Device I/O functions. You can also use the NI CLIP node to link to existing Xilinx based VHDL for your module driver.

Table of Contents

  1. Mechanical Overview
  2. Electrical Overview
  3. Software Overview
  4. Certification
  5. Supporting Material

1. Mechanical Overview

A  CompactRIO module circuit board is 0.062 in. thick and has outer dimensions of 2.889 in. × 2.600 inches.  All CompactRIO module designs use the female, high-density 15-position DSUB connector. Vendors and part numbers are listed in the user manual.  Lower profile DSUBs are available if you have an application that requires additional PCB space (0.300 in. × 1.213 in. per side).   The primary side of the printed circuit board (PCB) is the top side of the PCB where you place most of the components. The maximum height on the primary side is 0.530 in. The maximum height on the secondary side is 0.104 in. The maximum width for the I/O connector is 2.889 in. The maximum connector height above the PCB is 0.530 in. and the maximum connector height below the PCB is 0.104 in. The maximum pin length is 0.166 in. from the top of the PCB for through-hole parts. This is the same as the guidelines for components.  The maximum backshell height above PCB is 0.670 in., and the maximum backshell height below PCB is 0.150 in.

National Instruments uses strict guidelines to create versatile CompactRIO modules that can meet different certifications as needed. You should set keep-out guidelines according to the requirements of your design and the standards to which you wish to conform.  You should design your module to meet thermal guidelines for proper operation to 70 °C ambient temperature.  NI has defined two thermal guidelines, with the maximum being 1.5 W total dissipation at 30 °C temperature rise and 100 °C rated components.

You can purchase enclosures for CompactRIO modules from NI. NI offers a variety of CompactRIO module enclosures for different connector options. NI also offers an enclosure with no I/O connector cutouts so that you can create your own custom connector option.  Finally, on you can find example layout templates in NI Ultiboard, as well as mechanical templates stored in standard computer automated design tool format.

Back to Top

2. Electrical Overview

A module connects to the CompactRIO chassis through a 15-pin DSUB connector. The communication, power, and ground signals in this connection are available for your custom design. An ID EEPROM is required to store identification information.   The EEPROM can also be used for module specific calibration data.  The I/O circuitry implements the primary functionality of the module.

The module interface supports two modes of communication between the CompactRIO chassis and individual modules. The first is ID mode, which is used to access the ID EEPROM on the module. As noted, the ID EEPROM contains information about the module, such as the vendor ID, product ID, and serial number. All modules are required to support ID mode. 

NI requires that you use a default vendor ID as described in the module development kit user manual if you do not plan to re-sell your module per the NATIONAL INSTRUMENTS AGREEMENT (NI cRIO MODULE DEVELOPMENT KIT) license.   You will obtain a vendor ID after purchase by way of email to

The second is Operation mode, which is used to communicate with the I/O circuitry on the module. It can be used to initiate communicate and retrieve data. Although most modules support Operation mode, it is not a requirement. You may create a module that does not require any communication with the system and only provides an external interface through its front panel. There are 11 signal lines defined in the module interface. Two of these signals have predefined, fixed functionality. The definition of the remaining nine signals changes depending on the selected communication mode.

The communication requirements for most modules have one of two general templates, SPI or parallel. NI recommends that you use one of the two provided templates within the module development kit.  The SPI template is used to implement a serial interface to the I/O circuitry and is used for EEPROM communication.  The parallel template provides simple, direct access to your I/O circuitry.   Some modules have requirements that the two general templates cannot meet. For example, a custom module may require two independent serial interfaces across the module interface. In this case, you can implement your own arbitrary interface with the user template. In the user template, you can use the CompactRIO IO lines as general-purpose user lines.

CompactRIO I/O modules have stringent power and ground requirements necessary to provide an electrically robust system. This includes traditional specifications such as power consumption from the module interface and chassis power supply characteristics. Additional specifications include in-rush current for hot insertion and overall power dissipation.  The CompactRIO module must support hot insertion. Hot insertion is the ability to insert a module into the CompactRIO chassis while power is applied to the chassis. To prevent the disruption of other modules in the chassis during hot insertion, the module must meet the in-rush current specification. If the in-rush current for the module is greater than the specification, the voltage supplied to the other modules in the chassis may fall below the minimum power required by the modules and cause a fault in the system.  The in-rush current charge transfer must not exceed the specified limit before the current falls below the peak allowable power consumption. 

I/O Signals

Power-on                                             Inputs tri-stated until module is configured

Sleep mode                                         Inputs tri-stated

Signal rate                                           40 MHz max

Driver slew rate                                   0.2 V/ns min, 1 V/ns max Pull-ups

All signals (except sleep)                      1.5 k Ohms min

ID_Select*                                          3.3 k  Ohms max

Sleep                                                  10 k  Ohms min

Latch-up current                                  <20 mA per line, powered off

ESD protection                                     2 KV


Back to Top

3. Software Overview

After you develop the hardware and program the module EEPROM, you must create driver VIs for the module. A driver VI is used in the block diagram of a LabVIEW FPGA Module VI to define the functionality of a CompactRIO module. For example, if you developed an input module, you can create a driver VI that commands the module to return a result. You can place this driver VI as a subVI in the FPGA VI of an application to acquire a value. The complexity of the module determines the functionality of the driver VI.

End-users of CompactRIO modules interact with standard modules using high-level Device I/O functions, which hide the details of the physical interface to the module. These I/O functions are provided by the NI-RIO software, and support four basic I/O types including analog input, analog output, digital input, and digital output.  For National Instruments modules, the end-user selects the I/O function from the palette, places it on the diagram, and selects the particular I/O resource from a dialog box.  End-users configure I/O functions by selecting I/O resources from different modules and adding multiple I/O resources to a single function.  The NI-RIO software hides much of the complexity from the user by generating module-specific logic for the particular I/O function configuration when the user compiles the FPGA VI. This logic performs all of the functionality and communication necessary to perform the high-level functionality specified by the I/O function.  Consider a module that uses an A/D converter. The I/O circuitry requires a convert pulse to initiate a conversion.  It generates a busy signal during conversion and provides a serial interface to return data.  When the I/O function executes in the FPGA VI, the module-specific logic must pulse the convert signal in the module circuit, wait for the busy signal in the module interface to de-assert, and then read the data using the SPI signals in the module interface.

As a custom module developer, you must develop driver VIs that abstract the LabVIEW FPGA module programmer from the complexities of the module-specific logic.  To simplify programming, you can create driver VIs using the LabVIEW FPGA Module and the cRIO-generic plug-in. The cRIO-generic plug-in enables you to access the signals in the module interface with the Digital Input and Digital Output I/O functions.  The driver VI’s that you create with cRIO-generic are CompactRIO slot-specific. You must create a driver VI for each slot in which you use the custom module.   The slot information is contained in the cRIO-generic I/O function that is inside the driver VI. You can set the configuration information for an I/O function through its dialog box. You cannot set it programmatically.  The user manual provides example template drivers for your use and modification.

Back to Top

4. Certification

A component of the CompactRIO Module Developer Kit Suite version, NI requires you to send two modules to National Instruments, Austin Texas for power certification testing to the CompactRIO electrical specification. Testing by NI does not include any electromagnetic certifications (EMC) or safety certification testing.  Testing by NI does not include any verification or quality testing of firmware, driver level software or application level LabVIEW VI’s.  Testing at NI facilities includes: Inrush current, Power consumption, Power dissipation, Interface signal levels.  It is also recommend you provide a design analysis of environmental testing you have performed or are planning to perform.  The goal of the testing is to verify CompactRIO modules meet integration specifications by testing the inputs to the 15 pin DSub of the Module.  All testing performed is non-destructive and modules will be returned upon completion.

To schedule certification email    

The module development kit base is for internal-only distribution or used by designers packaging a custom CompactRIO or Single Board RIO value added reseller (VAR) system.  The kit is for academic and internal only use, and does not include support or certification testing.  It is recommended you purchase certification testing to the CompactRIO electrical specification to ensure your custom module operates properly within a CompactRIO system.  Do not purchase this kit if you plan to market or resell a custom module independently.

Back to Top

5. Supporting Material

Please review the following material:

Product Support for the CompactRIO-9951 Module Development Kit



Originally Authored By: Greg Crouch, National Instruments

Back to Top

Bookmark & Share


Rate this document

Answered Your Question?
Yes No